March 18th, 2017
Any user on Drupal.org who has accepted our Git usage policy may now create full projects with releases. This is a big change in policy for the Drupal project, representing an evolution of the contribution ecosystem in the past half a decade.
What was the Project Application Process?
Ever since the days when Drupal's code was hosted in CVS there has been some form of project application process in the Drupal Community. To prevent duplicate, low-quality, insecure, or otherwise undesirable projects from flooding Drupal, users would submit sandbox projects to an application queue to be reviewed by a group of volunteers.
After resolving any issues raised in this review process, the user would be given the git vetted role, allowing them to promote their sandbox to a full project, claim a namespace, and create releases. Once a user had been vetted for their first project, they would remain vetted and be able to promote any future projects on their own, without submitting an additional application.
Unfortunately, though the project application process was created with the best of intentions, in the long term it proved not to be sustainable. Drupal grew too fast for a group of volunteer reviewers to keep up with reviewing new projects, and at times there were applications waiting in queue for 6 months to 1 year, or even more. That is much too slow in the world of software development.
This put Drupal in a difficult situation. After years of subjecting new projects and contributors to a rigorous standard of peer review, Drupal has a well-deserved reputation for code quality and security. Unlike many open source projects, we largely avoided the problem of having many duplicate modules that exist to serve the same purpose. We unified our community’s effort, and kept up a culture of collaboration and peer review. At the same time, many would-be contributors were unable or unwilling to navigate the application process and so simply chose not to contribute.
The question became, how could we preserve the emphasis on quality while at the same time removing the barrier to contribution that the application process had become?
Constraints on a solution
Opening the contribution gates while retaining strong signals about code quality and security was a tricky problem. We established three constraints on a solution:
- We need to welcome new contributors, and eliminate the walls that prevent contribution.
- We need to continue to send strong signals about security coverage to users evaluating whether to use modules from Drupal.org.
- We need to continue our strong emphasis on quality and collaboration through changes to project discovery that will provide new signals about code quality, and by providing incentives and credit for peer review.
In collaboration with the community, the security team, members of the board, and staff we outlined a solution in four phases:
Phase 1: Send strong signals about security advisory coverage.
- We updated project pages to include messaging and a shield icon to indicate whether a project received security advisory coverage from the security team.
- We now serve security advisory coverage information in the Updates status information provided by Drupal.org, and we're working on a patch to display that information directly on the updates page of users' Drupal sites.
Here are some examples of what these security signals look like on project pages:
If a project is not opted in to security advisory coverage, this message will appear at the top of the project page:
And this one will appear near the download table:
If a project has opted in, this message will appear near the download table:
And covered releases will show the coverage icon (note how the stable 7.x release has coverage and the 8.x release candidate does not):
Phase 2: Set up an opt-in process for security advisory coverage
- Previously any project with a stable release would receive security advisory coverage from the security team. As we opened the gates for anyone to promote full projects, the security team needed an opt in process so that they could enforce an extra level of vetting on projects that wish to receive advisory coverage.
- We agreed to repurpose the project application queue to be a queue for vetting users for the ability to opt their projects in to receive security advisory coverage. Now that this process has been decoupled from creating full projects, the security team may revise it in future–in collaboration with staff and the community.
- Now a project maintainer must opt in their project to receive advisory coverage and make a stable release in order to receive security advisory coverage from the security team.
Once a maintainer has been vetted by the security advisory opt in process, they can edit their project and use this field set to opt-in:
Phase 3: Open the gate to allow users to create full projects with releases without project applications.
This is the milestone we've just reached!
Phase 4: Provide both automated code quality signals, as well as incentives for peer review of projects - and factor these into project discovery
- We are working on this phase of the project in the issue queues, and we appreciate your feedback and ideas!
What is the new process?
So in the end - what is the new process if you want to make a contribution by hosting a project on Drupal.org?
- You must have a Drupal.org account, and you must accept the git terms of service.
- You can create a sandbox or a full project
- Note: We still strongly recommend that project maintainers begin with sandbox projects, until they are sure they will be able to commit to supporting the project as a full project, and until the code is nearly ready for an initial release.
- That said, you can promote a sandbox project to a full project at any time, to reserve your name space and begin making releases.
At this point, you will have a full project on Drupal.org, and will be able to make releases that anyone can use on their Drupal site. The project will not receive security advisory coverage, and a warning that the project is not covered will appear on the project page and in the updates information.
If you want to receive security advisory coverage for your project, you will need to take these additional steps:
- You must apply for vetted status in the security advisory coverage queue.
- Members of the security team or other volunteers will review your application - and may suggest changes to your project.
- Once feedback is resolved, you will be granted the vetted role and be able to opt in this project, and any future projects you create, to receive security advisory coverage.
- Note: Only *stable* releases receive security advisory coverage, so even after opting your project in you will not receive the advisory coverage shield except on stable releases.
What comes next?
Now that the project application process is no more, the gates are open. We are already seeing an uptick in projects created on Drupal.org, and have seen some projects that had migrated to other places (like GitHub) migrate back to Drupal.org. We can expect to see contributions from some great developers who previously felt gate-kept out of the community. We will also see an uptick in contributions that need work, from new developers and others who are still learning Drupal best practices.
That is why our next focus will be on providing good code quality signals for projects on Drupal.org. We want to provide both automated signals of code quality, and new incentives for peer review from existing members of the community. We're outlining that plan in the issue queues, and we welcome your feedback and contributions.
We also still have work to do to communicate this well. This is a big change for the Drupal community and so we want to make people aware of this change in every channel that we can.
Finally, after such a significant change, we're going to need to monitor the contrib ecosystem closely. We're going to learn a lot about the project in the next several months, and it's likely there will be additional follow ups and other changes that we'll need to make.
There are many, many contributors on Drupal.org who have put in time and effort to help make the contribution process better for new contributors to Drupal - the deepest thanks to all of you for your insight and feedback. We'd also like to specifically thank those who participated in the Project Application Revamp, including:
- Donna Benjamin of the Drupal Association Board
- Dries Buytaert founder of Drupal
- Angie Byron of the Drupal Security Team
- cilefen of the Drupal Security Team
- Mark Ferree
- Michael Forbes
- Gisle Hannemyr
- Michael Wayne Harris
- David Hernandez
- Michael Hess of the Drupal Security Team
- Michelle Jackson
- Greg Knaddison of the Drupal Security Team
- Damien McKenna of the Drupal Security Team
- Benjamin Melançon
- Emilie Nouveau
- Alberto Paderno
- Håvard Pedersen
- Andrii Podanenko
- Alex Pott of the Drupal Security Team
- Klaus Purer of the Drupal Security Team
- Steve Purkiss
- David Rothstein of the Drupal Security Team
- Roy Scholten
- Mark Shropshire
- Jeremy Thorson, who first proposed the revamp as a community initiative
- Jordan White
- Peter Wolanin of the Drupal Security Team
- xjm of the Drupal Security Team
- and many others.