Contributing to Drupal even if you're a beginner

5 minutes

Because Drupal is an open-source project, it is maintained by a community in which we all, according to our specialty and level of experience, can contribute.

This article focuses on the concepts we need to know and the ways we can contribute as programmers, I hope to show you that although you have little time using Drupal, you can still participate.

I will keep many terms in English because personally I think that many translations are confusing and also because it is in the language in which you will find all those things.

Your profile on Drupal.org

Before anything else, the first thing you need is to create your user on drupal.org, to go directly to the registration page, click here.

With your user, you will be able to participate in the improvement of the core, contributed modules by other users, and also contribute your own modules, the good thing about this is that all your collaborations will be credited to your name and optionally to your company as well, to give recognition to those who dedicate their time to collaborate.

What is an issue?

Each time someone finds a problem or wants to suggest an improvement in the core or a contributed module, they can do so through an issue, each module of Drupal has a section of issues where you can view the history, this allows everyone to participate in an organized manner in the resolution of each problem or required improvement.

How to create an issue?

First, you can go to the page of the project that has the problem or the one you want to propose an improvement for, being on that page, you will find a block on the right-hand side whose title starts with "Issues for ...", which looks like this:

Issues for domain group

The best thing you can do initially is to use the search option to see if there is already an issue related to it, so write something related to the issue you want to create, it can be part of an error that appeared when using a module.

Then, click on "Search" and this will take you to the list of issues that match your search, in case you do not find any or none of the list is like the one you want to create, then you can click on "Create a new issue", this link appears at the top of the list.

Create new issue

This will show you the form to create a new issue, in which you must fill in the following fields:

  • Category: This serves to classify it, and the available options are:
    • Bug report: If it's an error that appears on the site while you're using a module or something that doesn't work as the module says it should.
    • Task: These are tasks that are normally assigned to project maintainers as part of some 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 something about the configuration or functionality is not explained in the documentation or the module's README file, you can request clarification through this category.
    • Plan: This type of issue is used by project maintainers to define a plan for improvements or significant changes, so that users of the module can know the plan, debate and help in the process.
  • Priority: According to how important you consider the problem or improvement to be, you can give it a priority, although I would say that only Bug reports deserve a priority above normal.
  • Status: Here, the progress of the issue is controlled until it is complete, in this case, since we are just creating it, it will be fine to leave it in "Active".
  • Version: The version of the module in which you found the problem and if it's an improvement, it will usually be the latest development version.
  • Component: This is another level of classification and relates to which aspect of the module the issue is related to, the options are:
    • Code: The code.
    • Documentation: Missing or incorrect documentation.
    • Miscellaneous: Multiple parts or aspects of the module.
    • User interface: Both the administration and the user interface.
  • Assigned: The options that appear here are the module maintainers, when an issue is created, it is left unassigned as default, this can be changed later by the maintainers if any of them is actively working on the issue.

The above would be the most important fields, what remains is to describe it, and in the description of the issue, you can already see a template, my recommendation is to use at least the following parts:

  • Problem/Motivation: Describe the problem or where you think there's an opportunity for improvement.
  • Steps to reproduce: For Bug reports, this is very useful, but for other types of issues, perhaps not, you just need to create a list of steps to follow to reproduce the error.
  • Proposed resolution: As you think it should work or if you have already seen the module's code, which parts could be changed.

With this minimum information, you can already start creating an issue, remember that what you write must be in English, if everything is ready, go to the end of the page and save it.

Providing feedback on issues

Many times it happens that we have a problem that someone has already solved, then we find the issue and try the solution or patch proposed, but later forget to comment on our experience.

The result you obtained after trying that solution is very valuable to other users and also to the module maintainers, with your comments, other users can know if there is any version of Drupal that does not work well, if some part is still incomplete, or if on the contrary everything works perfectly for you.

This saves time for other users and accelerates the process of resolving the issue.

Search for a local Drupal community

There are Meetups of Drupal in many cities and countries, participating in them is a way to contribute, as behind each event is a group of people who dedicate their time voluntarily, your presence is a way to recognize their effort and strengthen the community.

If in your city or country, there is no Meetup, you can search for one in your language and the closest one to your time zone that you can join via video call.

Conclusion

Although there are many things that we cannot yet do or understand when we first start with Drupal, the important thing is to remember that we do this all together and although our contribution may seem small, it is part of a big project where everyone benefits.

In future articles, I will be seeing this topic based on an intermediate and expert level in Drupal.

Jidrone Drupal Developer
J. Ivan Duarte
Drupal Senior Developer

Share