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!
Comments
While the doubling is nice to
While the doubling is nice to see, what about adjusting these #s based on
% of the total # of projects on d.o at the time of release? I'm willing to bet that would make a big difference.
That's not even quite enough
While a percentage of projects would be better than the raw numbers, its' still not very useful. What would REALLY help put it in perspective is statistics on sites reporting to d.o that they are ready for upgrade. For instance, something like:
Ping module reports that 6 months after D6 was released, 63% of sites were ready to upgrade from 5 to 6
Ping module reports that 6 months after D7 was released, 82% of sites were ready to upgrade from 6 to 7
Something like that would give a clearer picture on how effective #D7CX really was.
Right now, the only deal breaker for the sites I build is Media Module's progress. There are still some upgrade issues for CCK for me as well. Not with Core Fields, though.
IMO, percentage don't tell us
IMO, percentage don't tell us the real, actionable, situation here. The percentage can be low if important modules availables. I won't wonder if Top 100 modules can do 80%-90% of my task, and that just about 1% of the modules in repository.
I'm on D7 and developing a social site now. To tell you the situation, things are quite different on D6 days because I found a lot D7 modules is more actionable, well targeted for use cases, than D6. There're many fast-moving and trendy module exclusive for D7 now that is interesting enough for me to switch. To me, D7 is ready to be use if you are not going to roll out a complex site in just a few weeks. My plan is 2-3 months and help test the need modules as I go, and help contribute back along the way. I feel really contributed back to community now.
In fact I really interesting in a distribution called 'Commons' as a starting platform, but I will wait and rolland learn things myself because it still on D6 ;). I'm already spoiled with many improvement and many good D7 modules, and feel pain to use D6 already. And to date, D7 is accelerating in adoptin rate like never before. More than 70,000 D7 installation is reports (http://drupal.org/project/usage/drupal) which I predicted that it's just months away to reach 100,000 , which is about 30% of D6 installation! And from my site building experience, important module is getting close and a lot module is very usable even they're not in the release stage. I was amazed that I think just to test D7 two weeks ago, but end up able to build and continually working with this site to date without significant road block (just some aspected like 'date' marked postponed and I go on with others). Then, to me, it's look like not the best investment to start a new project on D6 now.
IMO the more modules marked release will accelerate and help site buider understand situation and make decision easier. But when they are in action, those top modules are the most important experinces, like views documentations, date, D7CX should escalated and take special care, help take action now on them without a doubt. These module is not less important than Drupal core already, because they're based of modules and being the key to new release adoption. To me, this few modules can be hero or road block at the same time (they're schrodinger cat ;P only 'present' tell )
I think most people that're on D7 would know and agreed on this. Everyone want to help them roll things but can't do much, make me scratch my head. More scalable management and tools is needed on this top few project, then the question is how?
All the best,
Richard
yup
these statistics don't mean a lot without knowing how many contrib modules there were on the dates in question (perhaps weighted by number sites using each module).
number of active developers would also help make these numbers meaningful.
+1
Now 756 :) Stable enough, let's release it: http://drupal.org/project/google_plusone
Then, installed now. +1 user
Then, installed now. +1 user ;)
You action is not different from those best marketers, so actionable. (You may wonder, how it's relate to marketing. But IMO, the best marketing is this super easy/KISS style)
Thanks,
Richard
Then, installed now. +1 user
Then, installed now. +1 user ;)
You action is not different from those best marketers, so actionable. (You may wonder, how it's relate to marketing. But IMO, the best marketing is this super easy/KISS style)
Thanks,
Richard
The article starts with
The article starts with statistics, but those need adjusted for increased Drupal popularity. I.e. correcting for # of projects and # of active developers. The increase may not be due to D7 pledges at all, but simply due to more active developers than at the time of D6 release.
Exactly. I'm sure the number
Exactly.
I'm sure the number of projects that WEREN'T ready increased as well, right? So does that make #D7CX a huge failure, since the number of non-ready projects increased? Of course not... because absolute numbers are useless here.
What PERCENTAGE of projects (or "top" projects) were ready for D6 and D7? That would be a far better metric.
Could be good to focus the
Could be good to focus the numbers on the top 100 most used modules.
Especially the views module is very important here. Views was one of the main causes of the slow adoption of Drupal 6 and did not have a d7cx tag and does not have a stable release yet. Slow adoption is caused by those most used modules not being ready. Only one important module (like date module now which is very unstable) can cause a lot of problems.
Agreed w/ hans - After my
Agreed w/ hans - After my previous comment, I was thinking of ways such a simple correction could be led astray (a change in the distribution of module use, etc)... A simple correction for % of top 100 / top 500 / etc modules would probably be pretty useful.
Just because a module doesn't
Just because a module doesn't have the d7cx tag doesn't has to mean that noone is working on it. I'm quite sure that all of the d7cx modules have a release.
Additional version numbers are just names, you can release something not totally ready, or perfectionize your work. Views at least from my perspective is quite stable.
What brings us forward
This is for the people commenting before me:
dear people, see the main point in the article: webchick is introducing and promoting a breaktrough form of communication among community members: do your things as you do, have a life, you may as well run into difficulties, problems - like all of us. But please, keep the rest of the community informed. That in itself can help the situation a lot.
The point is as simple as this. Webchick even shows us what to highlight on.
Btw, as I see, we do not have D6 or D7 or D8.
We have a simple piece of Drupal software, "as is". It's right in our - the community-members' - hands that what "as is" means.
Cheers,
eager,
D user
Thanks!
Thanks for reading this article in the spirit it was intended. :)
Numbers are cited here to show that #D7CX actually did have a measurable impact, so people should stop spreading FUD that it didn't. Doing so only demoralizes those who put forth a best effort to get their modules ready in time.
But the most important thing from here on out is to focus on closing that gap. Hopefully some of those opining about statistics will instead use that energy to take a crack at fixing some of these issues. ;)
an idea....
Great work on the article, Angie !!
Just a thought, maybe not for d7 but for d8...that is to have an individual or group that could work with the maintainers to get their modules up to speed quicker, especially, as others have already said, the more widely-used ones. Not sure what that would look like, perhaps an initiative kinda thing.
I don't think percentages are
I don't think percentages are that useful here. If there are 1,000 modules with stable releases, there's 1,000 modules with stable releases - just because more modules are available, doesn't mean you need them to run a site.
It would be interesting to figure out stats for the top 50 or top 100 modules though. This shouldn't be too difficult if someone wanted to do it:
1. Get the top 75 modules. Filter out modules that did not exist in Drupal 5, or will never exist in Drupal 7 (http://drupal.org/project/upgrade_status on a Drupal 6 site would help with the latter), then cut out what's left down to 50.
2. Find the release dates for the first alpha/beta/rc and first stable release of these for Drupal 6 and Drupal 7 and do the same comparison as Angie's post.
Dubling the number are great but...
[Tried posting this yesterday, but suffered from having an IP # that a spammer had before and was blocked by Mollom]
I also think you missed a few important aspects in you metrics.
In the "Just the facts, ma'am" section the numbers should also have been made in relation to the number of projects that existed at those dates. I don't have the exact number, but my gut feeling is that the number of contrib projects at least tripled in those three years, probably even more. In relation to that, then doubling the number of stable releases could actually be seen as a step back.
Another thing important to point out is the status of the most popular modules since they are the ones most sites will use.
I did a status check on that about a month ago, which co-relates to your six month numbers. My findings was that just 13 out of 50 projects had a stable release at that point.
I think that it is there we can find the major block for users to move to, or start building with, Drupal 7, especially with the big ones such as Views, CTools, Panels and Rules of which none has a stable release at this point.
While views has an RC, it also requires CToos which is in beta1. That is another factor to consider as well.
Great work is being made, but it will still be some time before the real adoption of D7 will happen.
I also believe this problem is going to continue with D8. It is simply a result of breaking the API's forcing ports to be made.
Maybe a deeper analysis about the porting process would shed some lights on the issues maintainers are faced with when porting. That analysis could also lead to better guides and tools for how to port a project to a new major release.
Working link to top 50 contribs
Hm, something went wrong with the link to the top 50 contrib status. Here is (hopefully a working one):
Status top 50 modules for Drupal 7
Open Public
If you still didn't start taking action because you've spend a lot of time on statistic, I recommended give it a try now. It's not that troublesome.
Please checking out Open Public distribution fro Phase2. I think this is the easiest to visualized what D7 can really do without top modules being release. There're tons of new and advanced feature being develop on D7 now. Their distribution is dated back months ago, based on ton of dated modules including a lot in top 50, but it is usable. If Phase2 decided modules status are good enough for starting develop government website, I'm in because I don't think I've researched more than them. I'm happy no matter any one tell me I'm not smart guy ;p
But I agreed about when someone need to upgrade sites from Drupal 6, they need to wait or find equivalent modules for those dev and non-release modules. But I encouraged anyone to make your hand dirty now on newer projects, better than holding back because no one would win if we all do that. There're a lot hidden gems in D7 if you are willing to check out the repository. And usually, it's just clicked aways to get patched for modules for reported bugs.
I already find many new replacement for those top 50 modules, some functions are obsoleted and most people don't use it this day and there're many new way to do it. At least, I found alternatives for:
CCK (in core), jQuery UI, Google Analytics, CAPTCHA, Poormanscron (in core), Lightbox2, Image, Global Redirect, IMCE, IMCE Wysiwyg Bridge, CKeditor/FCKeditor - Wysiwyg html editor, Zen, Nice Menus,Printer, e-mail and PDF versions, Voting API, Menu block. That's 18+Drupal core = 19, to built up-to-date social website I think people just have to monitor 30 of top 50. And I didn't use all of them, many more are those that D6 never heard of.
I'm sorry if you must hold back and wait longggggg (maybe till next year) because you still need to stick to top 50 modules from D6, to have stable release. But I'm scratching my head again, how could you use all of them?
All the best,
Richard
This is very impressive piece
This is very impressive piece of info about D7CX. I just noted the impact of the #D7CX movement and next steps whatever you put here. I actually found this well worthy input very critical and important for myself. Keep up coming!