When it's ready™
This is the third in a series of posts on Drupal 8's progress toward release.
During Drupal 8's clean-up phase, the critical technical debt in Drupal 8 rose significantly. In the three months since the end of the clean-up phase and the start of the API completion phase, we've started to catch up, fixing nearly as many critical issues as we've filed. Now we need to start fixing more issues than we find. Details follow.
It's ready when it's ready
At the DrupalCon Prague Drupal 8 leadership Q&A, one audience member posed the following question:
Imagine please each of you is given $10,000 and you have to use that money to bet on the date when Drupal 8 is actually released... what would your bet be?
You can hear my answer at 51:39 in the recording. Editing a bit for clarity,
I'm going to have to say "When it's ready"... and here's why. I'm not going to promise something that people are going to make business decisions around, and then be wrong about it. We think it's going to be coming out in 2014. Whether it's early 2014 or mid-2014 depends on how much help we get and things that we don't know yet. The thing about open source is that our resources are uncertain. And if you want to get it out sooner, help make our resources more certain by funding someone to work on problems that exist in core, by getting your developers in there and testing it and using it so that we uncover more bugs sooner.
What does "When it's ready" mean?
"When it's ready" is the traditional Drupal answer to the question "When will Drupal N+1 be released?" In practice, we roll the first release candidate when all critical issues are fixed. (These issues include both critical bugs and other critical tasks like ensuring acceptable performance, developer experience, and so on.) We plan on rolling drupal-8.0-alpha4 next week... but how off is drupal-8.0-rc1, given our current progress rate on critical issues? How has Dries' announcement of the API completion phase played out for the past three months?
The good news: Technical debt accrual has leveled off
Let's take a look at the technical debt for critical issues only since DrupalCon Portland back in May. The technical debt is the difference between the total issues critical issues uncovered and those fixed.
Critical technical debt in Drupal 8 (the difference between the number of criticals posted and fixed over time). Change notifications are not included.
Throughout the clean-up phase, our known critical technical debt increased continuously. (This means we added more new issues than we fixed). There was a spike as we triage the core queue for the July 1 API freeze start date, and then the technical debt continued to climb as we surfaced the outstanding API changes and shifted our focus to completing core APIs. Around mid-August, we caught up a bit and started fixing more or less as many new issues as we found.
This is good news. Between July 1 and October 1, we discovered 113 new critical issues, but also fixed 99 criticals during that same timeframe. Compare this to the period between April 1 and July 1, when 107 new critical issues were discovered, but only 66 were fixed. This is the API completion phase in action -- following the July 1 API freeze deadline, Drupal core contributors have shifted their focus from adding new things to Drupal 8 to completing what we have.
However: There's a lot of work outstanding
In order to get Drupal 8 from alpha to release candidate, we need to fix the outstanding 33 critical bugs and 81 critical tasks, as well as all the new critical issues that we'll uncover as more and more members of the Drupal community begin to test Drupal 8. On average, we're finding three new critical issues every two days. This is why drupalreleasedate.com can't predict any D8 release, and why the issue counts on our Drupal.org dashboards don't seem to change significantly. Fortunately, we're at a turning point where, with everyone's best effort, our critical technical debt will start to go down. Drupal core contributors are still hard at work getting Drupal 8 into shape, and we need all the help we can get.
For the nerds: The raw data
Raw query results
Core metrics queries are documented in the Drupal.org handbook.