Drupal is an open source project. This means that it is maintained by a community of developers and users who are constantly improving the content management system, regardless of their specialty and level of experience. This article focuses on the concepts and processes that beginning Drupal contributors should know in order to get started with their first contribution on Drupal.org.
Though, the main takeaway from this guide is that, even if you’re new to Drupal, you can contribute something. No one was born knowing PHP, we all learned Drupal at some point and continue to learn about the CMS throughout our careers. Contributing is part of the learning process and an important way to help those around you.
So, here’s what to know when you want to start contributing to the Drupal community:
Your profile on Drupal.org
If you’re going to contribute to Drupal.org, the first thing you need to do is create an account. To go directly to the registration page on Drupal.org, click here. With an account, you’re able to participate in improvements to both core and modules contributed by other users. You can even contribute your own modules.Having an account and contributing to the Drupal community allows you (or your company) to be given recognition for dedicating your time to the project.
What is an issue?
An issue is created by someone who finds a problem or suggests an improvement in Drupal’s core or in a contributed module. Each Drupal module has an issues section where you can see the history of a submitted issue. Having this issue documentation allows everyone to assist in resolving an issue in an organized way.
Creating an issue
Go to the project page that you’re creating an issue for. On the right side of the project page, you’ll find a block whose title begins with “Issues for …” that looks like this:
The first action should be to use the search option to see if there is already a related issue, so write something that has to do with the issue you want to create. Through this search, you might find that this issue is a part of another existing issue or has already been created. For example, you might type in “Add frontpage field” and click “Search.” This will take you to the list of issues that match your search. If you don’t find any issues or any that match your search, click on “create a new issue.” This link appears at the top of the listing.
To create a new issue, you must fill out the following information:
- Category: This is used to classify your issue into the following options:
- Bug report: If this issue is an error that appears on the site while using the module’s functionalities or if a module doesn’t work as expected or described.
- Task: These are normally assigned by the maintainers of the project as part of an improvement or new version.
- Feature request: If you want to propose an improvement or new functionality, this is the category you should choose.
- Support Request: If you feel that the configuration or functionality is not explained in the documentation or the module README file, you can request to clarify this through “Support Request.”.
- Plan: This type of issue is used by the maintainers of the project to define an improvement plan or important change, that way the users of the module can know that plan, give their opinion, and assist with any changes.
- Priority: You can define the priority of an issue depending on how important you consider the problem or the improvement to be. As a general rule, I would say that only bug reports deserve a priority above normal.
- Status: This is where the progress on the issue is tracked. When submitting a new issue, status should be set to “Active”.
- Version: This form field is where you specify the version of the module where you found the problem. If this issue is an improvement, it will usually be the latest development version.
- Component: This is another level of classification and it has to do with where the issue is located, the options are:
- Code: The bug or issue is related to the code.
- Documentation: There is missing or erroneous documentation.
- Miscellaneous: The issue occurs in multiple parts or places in the module.
- User Interface: The issue is in the interface for administrators or end users.
- Assigned: The options here are for the maintainers. When an issue is created, it is left unassigned by default. This can be changed later by the maintainers if they are actively working on resolving the issue.
The above options are the most important fields. After this, however, you can describe the issue. There is already a template for describing issues and my recommendation is to use at least the following parts:
- Problem/Improvement: Describe the problem or where you think there is an opportunity for improvement.
- Steps to reproduce issue: For bug reports, this is extremely useful, though not necessary for other types of issues. You just need to create a list of steps to follow in order to produce the error.Proposed resolution: How do you think a module or core feature should work or, if you have already seen the module code, what parts of the code should be changed?
With this minimum information, members of the Drupal community, which you are now a part of, can begin to resolve the issue. If all of the above is ready; go to the end of the page and save the issue.
Give feedback on issues
Oftentimes in Drupal, we have a problem that someone has already solved. We find the issue and test the proposed solution or patch, but then we forget to comment on our experience. Documenting the outcome of a patch for other users in the community and maintainers of a module is very important. With your comments, other users can understand if there is a specific version of Drupal where it doesn’t work well or if a patch is not complete or if everything works perfectly. Giving feedback on issues saves other users time and will speed up the issue resolution process.
Find a local Drupal community
There are Drupal Meetups in many cities and countries. Participating in them is a way to contribute. Behind each event there is a group of people who volunteer their time, and showing up is a way to recognize their effort and build a stronger community. If there is no meetup in your city or country, you can search for one in your language and time zone that you can join virtually.
Although there might be some parts of Drupal you don’t quite get or can’t help out with right now, it’s important to remember that, even though a contribution may seem small, it is part of a large project that benefits everyone. Engaging with the community, whether it’s through submitting an issue or going to a meetup, helps you become a better developer and helps the community make improvements to Drupal.
In future articles, I will be looking at this topic based on an intermediate level and expert in Drupal.