Drupal is a powerful Content Management System (CMS) that enables web developers to build and design all kinds of websites across the internet. It is an open-source platform that invites contributions from developers and users from across the globe. Such contributions could be in the form of code which comprises patches to the core. It could also include projects in non-code ways like documentation, marketing, financing, and event organization. Here, we will take up the various peculiarities that may be involved in your Drupal code contribution journey.
The primary takeaway from this directory would be to realize that irrespective of your level of proficiency, you can be an active contributor to Drupal. It is an essential part of your learning process which will promote your understanding of CMS and help you throughout your career.
Contributing to Drupal would be a prudent way of reciprocating and giving back to a project that supports your work and career. This acknowledgment should be reason enough for you to volunteer your contribution to enhance the platform. However, if this does not draw motivation, you can also look at the advantages that come with contributing to Drupal—
It can help you acquire more knowledge about Drupal and help you build applications that are more advanced.
It instigates a competitive streak in companies that compensate for the contribution of their developers as it enables them to gain better skills and knowledge. It allows them to advertise themselves as experts and specialists.
It facilitates networking and helps you connect with people who share your interests.
Before you can start contributing to Drupal, you will first need to create an account on their official website and update your profile with relevant information. Once you have an account, you will be allowed to partake in enhancements to the core. You can choose to create your own modules or even make improvements to modules built by other developers. Having an account and an exclusive profile helps you gain recognition for your contributions to the Drupal community.
Each Drupal module comprises a separate section reserved for issues. Here, issues are created by users who either recognize a defect in Drupal’s core or wish to suggest improvements. Issues can be found in the core as well as in a contributed module. Reserving an exclusive section for issue documentation makes it easier for everyone to contribute to its resolution.
Once you have successfully created an account and updated your profile on Drupal, the subsequent action would be to look for an issue. Your search will vary based on your interests.
1. You can locate an issue from the designated issue queue. In case you wish to specify your search, you can proceed by clicking on the ‘Advanced Search’ Option and using the filters.
Tags: Issues come with different tags. To locate a simple issue, a beginner can use the ‘Novice’ tag. Similarly, if an issue is tagged with ‘Needs Documentation’, it means that issue requires some change in documentation.
Status: On creation, issues are moved through various stages. Based on such status, you could determine the next steps in its improvement.
Priority: This essentially defines the level of urgency of the issue. The priority of an issue can help you identify whether it’s a critical bug or a minor defect.
Project: This allows you to specify the project that interests you.
2. You can also participate in the improvement of a project that you were previously interested in. For this, you can access the respective module/theme/profile page using the project name— https://www.drupal.org/project/<project_name>
3. You can even work on a defect in the core or any contributed modules while simultaneously working ,on a project. This is also the correct way to practice contribution. You should always have your "Contributor Hat" ON even while preoccupied with projects.
On creation, a Drupal issue goes through several states. The following explains the different stages that you may stumble upon as a developer or user—
ACTIVE: An issue is said to be in an active state when it is initially created.
NEEDS WORK: When a Drupal issue requires some improvement or fix, it is in a ‘Needs Work’ state.
NEEDS REVIEW: Next, the issue is addressed and when the patches are attached, and the tests are all passing, the issue acquires a ‘Needs Review’ status.
REVIEWED & TESTED BY THE COMMUNITY: After being reviewed by a contributor, the issue is moved to the ‘Reviewed & Tested by the Community’ (RTBC) state. Here, it is examined by a member of the core community.
FIXED: When an issue is passed from the RTBC state, it is said to have a ‘Fixed’ status.
CLOSED (FIXED): Following the fixed state, the issue is moved to the ‘Closed (fixed)’ state automatically within 2 weeks. This is effectively the final state of an issue.
CLOSED (DUPLICATE): In case any issue arises, which is a duplicate of a previously resolved issue, then it is automatically closed as ‘Closed (Duplicate)’.
CLOSED (WON’T FIX): This status essentially indicates that a particular issue has no solution.
CLOSED (WORKS AS DESIGNED): This denotes that an issue created is delivering the designated functionality that it was supposed to. Simply put, the issue is not a defect but a feature.
CLOSED (CANNOT REPRODUCE): When a particular issue is not capable of reproduction, then it is assigned this status.
CLOSED (OUTDATED): When a specific defect raised in an issue is too old to fix or gets addressed in some other module, then it is moved to this state.
PATCH (TO BE PORTED): When a patch applied to an issue is to be ported to other versions of the Drupal module, then this state is used.
POSTPONED: This status is used when an issue is postponed by the Drupal community and does not require a fix.
POSTPONED (MAINTAINER NEEDS MORE INFO): When the maintainer of a contributed module indicates that more information is required to address an issue, it is moved to this state.
If you wish to raise an issue for a Drupal/Contributor module, you will need to visit the issue queue and select “Create a New Issue”.
Next, you will be required to provide the particulars of the issue you wish to create, as explained below—
TITLE: Here, you are required to input the title of the issue.
PROJECT: Here, the name of the project is selected automatically.
CATEGORY: Here, you need to select the category of the project. The available categories are-
A) Bug Report: A bug is an operational defect in the system. For example- PHP errors, memory leaks, data loss, incorrect or misleading user interface, etc.
B) Task: A task does not indicate a functional bug. It is a requirement assigned by the maintainers of the module that needs to be met before the release.
C) Feature Request: If a contributor wishes to add a new feature or improvement to the module, then this is the category they should choose.
D) Support Request: This category can be employed if you wish to clarify any functionality or configuration information.
E) Plan: This category is generally used when you face a problem that requires the creation of multiple issues.
PRIORITY: Here, you will need to select the priority level of the issue. The categories are ‘Critical’, ‘Major’, ‘Normal’, and ‘Minor’. Unless truly serious, you should generally go with ‘Normal’.
STATUS: For new users, the status should always be ‘Active’.
VERSION: Here, you need to select the version of the project where the issue needs to be addressed.
COMPONENT: This is another level of classification related to the location of the issue. The categories are ‘Code’, ‘Documentation’, ‘Miscellaneous’, and ‘User Interface’. These categories often vary from module to module.
ASSIGNED: This indicates that an issue can be assigned to anyone. Such an assignment can be done at any point and isn't mandatory.
TAGS: The issue must be attached with suitable tags. In case of a lack of information, this should be left empty.
SUMMARY & RELATIONSHIPS: This field can be expanded to find the editor and the particulars of the issue.
Finally, you will be required to add any related files to the issue or submit the patch to the issue and then save it.
Once you save the issue, it will be added to the issue queue of the relevant module.
You should recognize that creating an issue for the Drupal core involves the same steps as mentioned above. However, there exist a few additional guidelines that are explained on the respective webpage.
There are two ways to go about creating a patch for a Drupal issue. You can choose to create a new patch or proceed with updating an existing patch.
To create a new patch, the steps are as follows—
This will allow you to access the ‘Git’ command. Now, copy and operate the command in your terminal and also change the directory to the cloned module.
3 . Make the necessary changes required by the issue and commit your changes to git.
The ‘Issue Description’ will be the title of the issue. Here, all the alphabets must be entered in lowercase and space must be filled with underscores.
The ‘Issue Number’ can be found in the URL of the issue. These numbers are unique and exclusive to each issue. It is also mandatory in the naming of the patch file.
The ‘Comment Number’ will indicate the latest comment ID wherein the patch will be submitted.
To update an existing patch, the steps are as follows—
Replicate the project where you wish to upload your patch.
Visit the issue page, right-click on the patch link and copy the link address.
Use the ‘Curl’ or ‘wget’ command to download the patch to your local.
Now, in order to apply the patch, you will need to run the git command.
At this point, you will find the changes made in the patch in your local. You can now add the further changes that are required to create a new patch.
At the time of updating the existing patch, you will need to create an ‘interdiff’ file. This file indicates the difference between the old patch and the new patch. Creating an interdiff file will enable the user to recognize the changes made in the patch. The command to create such a file is:
interdiff <old-patch> <new patch> > interdiff_<old-patch-comment-number>-<new-patch-comment-number>.txt
Now that you know how to look for an issue, create an issue, and build and submit a patch, it is time to learn how you can efficiently review the work you have done. Reviewing a patch that you have created for a particular issue is a vital part of ensuring its functionality.
Before you can proceed with reviewing your patch, it is highly recommended to add a Dreditor extension to your browser. This will present you with a ‘Review’ option for the patch you created. On selecting this option, you will find the changes in an easily readable format.
Following are the steps to review a patch on Drupal—
Separate and highlight the issues that are in the ‘Needs Review’ state.
From the list, select a particular issue to review.
Go through the comments section and locate the latest patch uploaded for that issue.
Now, you will need to make sure that the patch has cleared the test cases and has turned green.
Download the patch and run it on your local. You can do so by running the following command: git apply <patch-file-downloaded> -v
This is where you check whether the patch is functioning like it is supposed to.
Next, you will need to add comments with supporting images or videos. You should include information such as the steps followed in the reproduction of the issue, the behaviour of the issue before and after applying the patch, etc.
If you are satisfied with the functionality of the patch, you can change the status to ‘RTBC’. If not, you can move it to the ‘Needs Work’ state.
It is important to recognize that Drupal does not always require code contributions. There are many other areas that you can contribute to. Based on your specific interests, you can choose to participate in the enhancement of the quality and reach of Drupal. Some of the options are as follows—
Documentation: You can make your contribution to Drupal by partaking in the documentation process of various projects.
Event Organization: You can volunteer in the planning and organizing of Drupal events.
Sharing Information: You can greatly contribute to Drupal by sharing your knowledge of Drupal through blogs, articles, presentations, etc.
Mentoring: If you are an experienced individual, you can assist and mentor others, either online or in person.
Modules/Themes: You can make an intrinsic contribution to Drupal by collaborating on projects including modules, distributions, and themes.
Blogs: Stay involved by participating in the creation of blogs on Drupal.
Slack: Drupal comprises a particular ‘Slack’ workspace known simply as ‘Drupal’. You can become a member and gain access to a variety of channels.
Social Media: You can follow Drupal updates on social media websites such as Twitter, LinkedIn, etc.
Being an open-source platform, it is essential to preserve the contributions that made Drupal what it is today. Following are some of the rules with respect to conduct—
Be Cooperative and Maintain Synergy
Be Mindful and Respectful of Other Contributions
Seek Assistance Whenever Required
You can look through the detailed code of conduct on the Drupal website.
Our success is demonstrated by having the most reviews compared to competitors.
Auxesis Infotech provides web development support on our Drupal platform. They are always flexible enough to help us achieve our goals. Very pleased with Auxesis competance, flexibility, communications and execution.
Director Brand & Communications, Saint Gobain Ltd
Powered by Clutch
I'm impressed by their communication and speed of action. Ever since we launched the redevelopment, there’ve been many compliments on the improved look, functionality, and ease of navigation.
Director of Projects, ERRIN
Powered by Clutch
Please fill in the form below, and one of us will get you or respond to your queries soon.