Back around the time of the Drupal 7 code freeze, Moshe Weitzman proposed the #D7CX (Drupal 7 Contrib Experience) movement. Developers were encouraged to add a #D7CX pledge to their project pages, indicating that they would port their contributed modules and themes to Drupal 7 by the time Drupal 7 was released.
Here is some data to measure the impact that this movement had, relative to Drupal 6, as well as some recommended next steps to help us complete the work that #D7CX started.
Just the facts, ma'am.
Drupal 6.0 was released on 2008-02-13 14:29:02.
- 125 contributed projects had stable releases within the first week.
- 318 contributed projects had releases of any type within the first week.
- 485 contributed projects had stable releases within the first six months.
- 1,015 contributed projects had releases of any type within the first six months.
Drupal 7.0 was released on 2011-01-05 06:21:21.
- 240 contributed projects had stable releases within the first week.
- 1,019 contributed projects had releases of any type within the first week.
- 722 contributed projects had stable releases within the first six months.
- 2,089 contributed projects had releases of any type within the first six months.
In short, #D7CX appears to have had a tremendous impact:
- Drupal 7.0 launched out of the gate with double the number of stable contributed releases as Drupal 6.0 did.
- Drupal 7.0 also launched with the number of projects with some level of porting that it took Drupal 6 six months to achieve.
- It took an entire year for Drupal 6 to reach the number of projects with some level of porting that Drupal 7 has now, just six months after release.
So a hearty thank you to everyone who's worked so hard to fulfill their #D7CX pledges. Your efforts have truly made an important difference in furthering the adoption of Drupal 7. Yay! :D
However there is, of course, still more work to do...
Finishing what we started with #D7CX
Despite the enormous efforts of hundreds of contributors, as you can see, there is still a gap right now between the number of Drupal 7 projects with stable releases and those without (dev/alpha/beta/rc). There's also a gap between the total number of modules available in some form in Drupal 6 and those in Drupal 7. We need to close this gap in order for Drupal 7 adoption to increase, since the lack of stable releases for Drupal 7 modules is the #1 thing that holds site builders back from building/upgrading sites on Drupal 7.
So, here are four suggestions that project maintainers can do to help:
- Evaluate whether you should just do a stable release right now. Scan through your issue queue and check out your remaining bugs and tasks. If some of those remaining issues are upgrade path blockers, cause data loss, or dramatically change APIs, then it probably makes sense to stay in development for a bit longer. However, if those remaining issues are more minor, and could reasonably be hammered out in a later point release, consider rolling a stable release now. Site builders tend to steer clear of non-stable releases, and you'll end up missing out on valuable testing and development help. Perfect is the enemy of good enough. ;)
- Tag issues preventing a stable release with "D7 stable release blocker" As you're scanning through the issue queue looking for blockers, go ahead and tag them as you find them. This provides transparency into ways other developers can help you reach a stable release sooner, and also allows us to provide a list of all issues blocking D7 stable releases across all projects; perfect for pointing eager contributors at when they ask for something to work on at code sprints or in IRC.
Also, If any of these issues is especially long and winding and convoluted, please consider editing the issue body to provide an issue summary to make it easier for other contributors to wade in and help.
- Provide your project's Drupal 7 stable release status right on your project page. Are there specific issues holding you back? Lack of time? Lack of testers? Looking for a co-maintainer? Looking for funding? Does another module make your module obsolete in Drupal 7?
Provide the community with insight as to how we can help you make a stable release for Drupal 7 happen! :)
Here's a suggested template, which could be copy/pasted at the bottom of your project node body, so it shows just above the download table:
<h2>#D7CX: Drupal 7 stable release status</h2>
The [project name] project is currently [in active development/stalled until I get back from vacation/obsoleted by the foobar module]. My timeline for a stable Drupal 7 release is [date/within X timeframe/unknown]. If you want to help it happen sooner, please [help solve these issues/provide funding to X/sign up to be a co-maintainer].
Please, if you only have time to do one of these things, make this the thing you do!
- If you just don't have time anymore, mark your project as 'Seeking new maintainer'. By editing your project and setting the "Maintenance status" field to "Seeking new maintainer", it sends a clear signal that another contributor with more time on their hands can follow the abandoned project process to take over your project and give it some much-needed lovin'.
There are currently 755 modules with stable Drupal 7 releases. Let's see how high we can get that number by DrupalCon London!
Thanks all, for your cooperation and help!