The success of an open-source project primarily depends on how many users contribute to it. Except for the initial milestones, the community drives the project forward and ensures mutual success. In my opinion, it is also unethical if one makes profits from a project but does not contribute to it.
Despite the initial motivation and push, many users are unable to contribute. And the main reason for that is they don’t know how to contribute.
Due to this, users never get involved and assume it to be difficult and overwhelming. But I have figured out some hacks based on my five years of experience as an active contributor and maintainer of several modules.
These hacks can be applied if finding the right contribution task is challenging. Even though there are many ways in which users can contribute to the Drupal project, I will focus on what the Drupal.org website offers for a contributor.
From sharing custom modules to adding other projects, several hacks can be used to contribute to Drupal.org.
If a user has created a custom module, it can be converted into a generic solution and added to Drupal.org. This is easy for the contributor and saves time for people looking for a similar solution in the community.
The contributor will also be in an excellent position to manage any issue queues and future improvements. This exercise has been instrumental in creating most of the contributed modules used today.
Contributors can also explore trending PHP or JS libraries, newly launched open-source projects, or paid services. Check if it might be useful to integrate the same with Drupal. If no other contributed module helps achieve the desired functionality, contributors can consider integrating it with Drupal.
When it comes to making a call on adding a new project or improving an existing project, make sure to research the list of available modules. It is never a good idea to post a new module with similar functionality to an existing module.
Contributors can take inspiration for which type of module to contribute from the plugins that are available for CMS like Magento, WordPress, and Joomla. This allows contributors to:
- Help the Drupal project stay relevant in the market
- Provides flexibility to anybody planning to start the development of a new Drupal website
Make sure to follow the official guidelines for posting and maintaining a project on Drupal.org.
Contribute Themes or Theme Engines
Contributed themes are very useful in two scenarios:
- The themes act as a base of the custom theme which is developed for a website
- The themes are so good that they can be used with negligible modifications
This is very helpful for small-scale website developers who don’t have enough resources to work on Drupal customizations.
If a user has created a custom theme or converted an HTML/CSS template to a Drupal theme, then it can be posted. This reduces the efforts spent by website creators in making the website beautiful. Users can also create a theme based on any new open-source front-end framework.
If a theme engine has been created for a website, then that can also be contributed on Drupal.org. Most of the websites rely on core provided theme engines. But a few contributed theme engines can be treated as a source of inspiration for contributors.
Distributions, also known as installation profiles, are bundled packages that can be installed when developing a particular website. For example, Open Social distribution contains several common functionalities required for a community website. And it can be used for developing the same.
Distributions save a lot of development time and demonstrate the capabilities of Drupal in building specific websites. If a user has developed an installation profile with a common set of features, that can be contributed.
With distribution, contributors demonstrate not only their coding skills but also share their idea of Drupaling. This helps other users learn more about Drupal CMS management.
When planning to contribute a distribution, one must:
- Figure out a new target area
- Spend time researching relevant building blocks like modules, themes, and libraries
- Build the planned features
Other Types Of Project Contributions
Apart from modules, themes, and distributions, contributors can add other types of projects, including:
A general project could be any script, JS component, Drush extension, or PHP library. At its core, it is any code that reduces development efforts. It can also be helpful in the development/testing phase of a website.
For example, a general project can be a generic parser that converts the raw HTML data of a Drupal website and stores it in a CSV format.
A community project helps manage the community efforts, initiatives, events, and other volunteer activities. These projects also ensure better collaboration and provide credit to everyone who is supporting. If a contributor wants to promote an event or initiative, they should add a community project to get the desired visibility.
Drupal Core Experiment
A Drupal core experiment is a rare choice of contribution, but it’s still available. Contributors can use this to launch their customized version of Drupal core. Community members have been experimenting by modifying Drupal core to work with Facebook’s hack language and other stacks.
Challenge With Working On Issues
The issue queues on Drupal.org allow community members to engage in code-related collaboration. This is also where members:
- Plan new features
- Resolve bugs
- Provide support to projects
Many issues and updates are also created every day as Drupal is a widely used CMS with a good number of supportive plugins.
But as a contributor, it can be difficult to figure out the issues or the projects to work on. From my experience, I have figured out a few techniques to make this task easier.
The Solution For Working On Issues
If users face an error due to a contributed project, they should report it and provide the steps to reproduce it. Make sure to post the solution, provide a patch, or create a merge request if a solution is reached. This is very helpful for other users and maintainers of the project.
One can post observations or review the suggested solution if there is an issue in the queue. This is the easiest way of getting involved, as these tasks are clubbed with one’s effort in building a website.
Contributors with a good understanding of a particular project or Drupal core can help maintain the issue queue. These contributors can also work on inbound requests and improve the project's features.
The issue queue link can be found on all the project pages. Contributors can also use the main issue queue view to check the latest issues which have been added to the projects.
Take advantage of the tag-based search to find a group of issues. The ‘Novice’ tag can be used to find issues marked for new contributors. And the ‘Need Tests’ tag can help find issues that require an automated test. Many other tags can be used to make the search easy.
The Challenge: Unsupported Projects
Most of the projects on Drupal.org are very actively maintained. But still, sometimes maintainers don’t get enough time to look at open issues or add new releases. In some cases, maintainers might even lose interest in maintaining the project.
Drupal.org provides multiple ways to handle these kinds of situations. These efforts ensure the overall success of the supported plugins ecosystem. Contributors can take advantage of these constructs and become maintainers of projects.
The Solution: Picking Up Unsupported Projects
If the project maintainer does not wish to maintain the project, then the status can be set as 'Seeking New Maintainer.' If a project maintainer requires some support from the community, then the status can be set as ‘Seeking Co-Maintainer.’
There are also filters available on the different types of project pages. This allows users to quickly find available projects and start the process of getting maintainer access. To facilitate the same, users should start by creating an issue in the project queue and mention all the important details. One can also look for existing threads regarding maintainer access.
If the project has become completely inactive and there is no reply from the maintainer, users can check the process for picking unsupported projects. There are a few steps that the user needs to follow before sending an official request for granting maintainer access to Drupal.org webmasters.
Recently, several projects were marked unsupported as they didn’t have a D9 release. These projects are available for adoption. If a user is interested in maintaining these projects, they need to express interest so that the webmasters can grant access.
Community members spend a considerable effort preparing, updating, and maintaining the documentation of a project. This is because having proper documentation is key for any open-source project.
Usually, most projects have closed documentation edited only by the maintainers. Users only have the option to either suggest changes or create pull requests if it is being managed on GitHub. But that’s not the case in Drupal!
In Drupal, all community members are free to edit the official documentation. The changes are published after a review. The edits in the documentation are also shown on the user’s profile, along with other credits and commits.
There is also a strategic initiative that users can check if they would like to contribute to the Drupal project through documentation. Apart from the main documentation for Drupal, users can check the issues tagged with ‘Needs Documentation’ or ‘README changes.’
If contributors write blogs related to Drupal, they can also sign up to push the content to Drupal.org via feeds. Planet Drupal collects post data from multiple websites and provides an easy resource for all Drupal enthusiasts to check the latest posts. Contributors can also write a case study based on any website they developed using Drupal and submit it.
To learn more about how to find contribution tasks on Drupal.org, follow:
Keep an eye on the official community portal. From here, contributors can find all the information related to trending topics and how other members collaborate. One can also connect with several like-minded people to ensure a regular contribution.
The official contributing guide provides detailed information regarding how one can help improve the project. Through this, contributors can find appropriate tasks based on their skillset. Some of the useful subsections under this are:
Support and Forum
Contributors can check posts in the official forum or join the Drupal community on Slack. This will make it easy for contributors to connect with community members seeking technical support. Drupal Answers is also very popular among community members.About the Author
Gaurav Kapoor, Senior Drupal Engineer
Gaurav is a storyteller. An Arsenal FC fan, he also enjoys reading Amish Tripathi's works on Hindu Mythology. He has been spending every Friday evening at his favorite bar for more than two years now. Need a dose of sarcasm? He is your guy!