Drupal and the open-source model
Back in 2001, Drupal was released for the first time on the internet for anyone to use and extend. From the start, Drupal adopted the open-source model where the code is available under a license where anyone can study, change and improve the source code.
As most open-source software is typically started by one or two programmers solving a personal problem, Drupal is no different. Drupal was started by Dries Buytaert, then a university student, as a small news and message board site where he and his friends could talk about interesting news, where to have dinner and more. Back then social media sites and apps like WhatsApp did not exist.
What started as a hobby project is now being used by some of the biggest companies all over the world.
Why should we get involved in Drupal core development and the community?
So, how does a hobby open-source software project transition to a mature, widely used project?
Open-source software typically relies heavily on the community and independent programmers to contribute towards the software project. Without these contributions, the software project would never be able to evolve and sustain in the long term. Drupal would never have been this popular, robust or modern if only one or two developers were programming the Drupal core system.
Although some companies sponsor some of the Drupal development work, most of the project relies on programmers using their free time, and for no compensation, to advance and maintain the Drupal core. This brings programmers together who are passionate about the technology and the success of the software and are not just there to make money and get out.
The Drupal community is friendly, helpful and embraces new contributors. So there is no reason to be scared to get your hands dirty and help out.
Ways you can contribute
Most people would think that only experienced programmers will be able to contribute to such a software project. But, in fact, there are a bunch of other ways people can contribute to the Drupal project that does not require you to be a software programmer. And there is also a system to allow programmers of different levels to contribute, which includes access to a mentor.
Here are some ways you can contribute if you are not a programmer.
No matter what your skill level may be, you can give back by sharing what you know with others. You can find out more on how to help here.
Whether you're interested in providing fine-grained API documentation, writing step-by-step tutorials for the handbook, or producing multimedia screencasts to show people how Drupal works, you can help improve Drupal's documentation and provide valuable resources to the community. You can find out more here.
Drupal supports many languages. If you know multiple languages, you can contribute by helping to maintain Drupal core or contribute to module translations. You can find out more here.
Good testing directly contributes to the stability of the platform and is an excellent way for people of all backgrounds to make a valuable contribution to the project. You can find out more here.
If you have knowledge in web accessibility and UX, you can help improve content creation and sitebuilder tools for Drupal. You can find out more about the usability initiative here.
Help get the word out and promote Drupal. Find out more in the Drupal marketing group.
All of the above are just as an important contribution as programming to sustain a successful open-source project.
Contributing as a programmer
If you have programming skills, there are plenty of ways the Drupal community could make use of those skills. There are currently around 2 700 users listed as contributors to the Drupal 8 core, and new contributors are always welcomed. The Drupal community holds a strong "collaboration rather than competition" ethos, which values joining forces on improving existing projects rather than building several sub-standard ones that overwhelm end users with choices.
For newcomers to the projects, or programmers who would like some guidance on which tasks to work on and how to go about working on those tasks, there are mentors available to help you get on your feet. These mentors will usually gauge your skill level and area of expertise and then find the tasks to assign to you that they think will suit you the best. You can follow @drupalmentoring on twitter to find out when mentoring hours are scheduled. Mentoring usually happens on IRC on irc.freenode.net in the #drupal room.
Types of tasks for a programmer
There are also different types of tasks a programmer can contribute to, and it does not just involve writing code. It includes the following.
Cleaning up or rewriting issue descriptions
This involves updating an issue’s description to make it more clear, understandable and relevant. Issues sometimes drag on for a long time and the information in the description gets outdated.
Verify an issue and describe steps to reproduce issue
New issues sometimes get logged in the queue in a haste, and thus might not always be an issue with Drupal core, but rather an issue with a contributed module. Issues need to be verified and the steps need to be listed on how to reproduce the issue, including screenshots where needed.
Identify duplicate issues
Users do not always search the issue queue before submitting a new issue, and this results in them submitting duplicate issues. These need to be identified and flagged as such.
Review a patch
Patches need to be reviewed by multiple users before they will be committed. Patches can have a different status and the following is the usual flow of status for an issue. This is by no means the only status an issue can have.
- Active – There is no patch for the current issue.
- Needs work – There is a patch attached to the issue but the review process identified some improvements needed.
- Needs review – A patch has been created and needs to be reviewed. A test bot will do an automated review and other programmers will also give feedback on the patch. Things like coding standards and performance degradation will also be checked.
- Reviewed & Tested by the Community (RTBC) – The patch has been reviewed and deemed ready to be committed to the project.
- Fixed – The issue has been resolved and committed.
- Closed (fixed) – No new comments have been made on the issue after two weeks of being marked as fixed. This gives users two weeks to reopen an issue if they see an issue with the fix.
All Drupal core issues are logged in an issue queue, which can be searched and filtered.
If you want to contribute to new features being planned and developed for Drupal, there are a few initiatives that have been set up by the community. Drupal initiatives consist of new breakthrough features or technology for the Drupal framework that are well planned out and built among many stakeholders. These initiatives are established and backed up by data, for example, usability studies or surveys, to make Drupal relevant in the current market and provide better user or developer experience. These are an exciting opportunity to take part in advancing an open-source project and getting to work on the newest technology.
There are currently eight active initiatives and here are some of the interesting ones.
As the initiative declares, “If it speaks HTTP, it should work with Drupal”
Site builders and content authors need intuitive tools to build pages, change layouts, and add and rearrange blocks with live preview.
All around the world Drupal events are being held, from big conferences to local meetups. At some of these events, time is set aside where people gather in a room to work together on some Drupal core contributions. This provides a good place to learn from others, meet members of the community and collaborate collectively in person. So, be on the lookout for a Drupal event near you.
Need Assistance with Digital Strategy?
Rogerwilco’s team of strategists, business analysts and data scientists is here to help.