Module Development

Concept: Using and Improving Contributed Modules for Drupal 8, 9, and 10

Installing community-contributed Drupal modules can enhance your project's functionality without the need to develop custom code. It's common to find a module that almost meets your needs but requires updates or additional features. Engaging with the module maintainer and other community members to improve these modules enriches the Drupal ecosystem and aligns with the open source values of collaboration and shared progress. This tutorial outlines how to actively participate in the development of contributed modules by filing issues, submitting patches (through merge requests), and collaborating in issue queues.

In this tutorial, we'll learn:

  • The benefits of using contributed modules over custom code.
  • The importance of collaboration in the Drupal community.
  • Where to learn more about participating in the development of contributed modules.

By the end of this tutorial, you should understand how to enhance and contribute to Drupal's contributed modules ecosystem.

Goal

Learn how to engage with the Drupal community to improve and update contributed modules for the benefit of all users.

Prerequisites

  • None

The value of contributed modules

Contributed modules are the backbone of Drupal's extensibility and offer a wide range of functionalities that can be integrated into your projects. Using contributed modules instead of developing custom solutions helps to:

  • Reduce development time: Leverage the collective effort of the community to add complex features quickly.
  • Ensure quality and security: Many eyes on the code mean bugs and security issues are identified and resolved faster.
  • Benefit from community knowledge: Access a wealth of knowledge from developers who have encountered and solved similar challenges.

Contributing to existing modules

When a contributed module does not fully meet your requirements, consider contributing back to the module instead of creating a custom one. Listed below are some ways you can contribute.

Find or file issues

Start by searching the module's issue queue on Drupal.org for existing discussions about the bug or feature you're interested in. It's always better to collaborate on existing solutions when one exists. If no issue exists, file a new one to start the conversation.

Review existing contributions

If there are existing issues with solutions already provided, test them on your system and provide feedback in the issue queue. Your testing can help move the solution forward.

Tip: If the updated code from the issue queue works for your scenario (and you've tested and reviewed it) it is common to use a patched version of a module in production. Patches can be applied using Composer.

Submit a merge request

If you've developed a fix or enhancement, create a merge request and an issue in the queue. Follow Drupal's coding standards and provide clear, concise explanations of your changes, why you've made them, and how to test them. Learn more in Create a merge request for an issue.

Collaborate and communicate

Engage with other community members in the issue queue and other community spaces. Collaboration and constructive feedback are key to finding the best solutions for everyone.

The open source ethos

Contributing to the development of contributed modules, and the broader Drupal community, embodies the open source ethos of collaborative improvement. By sharing your improvements, you not only solve your own challenges but also help others who might face similar issues.

Non-code contributions

Contributions to Drupal aren't limited to code. Updating documentation, answering questions in the community forums, testing patches, and more are all valuable ways to contribute. These activities help improve the project's quality and accessibility, especially for new users.

Drupal's contribution credit system

Drupal's unique contribution credit system recognizes both code and non-code contributions, providing visibility and acknowledgment to individuals and organizations contributing to Drupal. This system encourages participation and helps maintain the integrity of the Drupal project by ensuring contributions are meaningful and impactful.

Recap

Using and helping to improve contributed modules allows you to take full advantage of Drupal's extensible platform while supporting the community. By engaging in the issue queues, submitting enhancements, and collaborating with others, you contribute to the collective knowledge and capabilities of Drupal.

Further your understanding

  • How can you effectively communicate your needs and solutions in an issue queue to foster collaboration?
  • What are some best practices for creating merge requests that are easy for others to review and apply?

Additional resources

Drupal Module Developer Guide