
Problem/Motivation
Our current plan is to release Drupal 9 on June 3rd 2020, but with a fallback to December 2020 if this is impossible (see https://dri.es/plan-for-drupal-9). However, the details of this have not been entirely fleshed out and I have a proposal for a slight modification. Only just came up with this particular version after a brief discussion with xjm, although there's been related discussion on #3007300: [META] Release Drupal 9 on June 3 2020.
Drupal 9 needs a longer beta phase than a regular minor release, so this would need to start March-2020 to give plenty of time for contrib modules and early site-testers to have a stable target to test against. However once we release a beta, we're on a hard countdown to release, meaning we need to be sure that Drupal 9.0.0 is pretty much releasable before cutting the beta: #3079680: [META] Requirements for tagging Drupal 9.0.0-beta1.
This creates quite a hard cliff-edge where if we haven't met the beta requirements three months before the release date, we need to slip all the way to December. Various possibilities if we end up in that position involve: slipping the date, squeezing the beta period shorter, or releasing a beta despite blocking issues being outstanding - none of these are good. Also the closer we get to the date, if we're unsure what comes next, it will make it harder to address whichever issues are outstanding.
What we really want is to release the Drupal 9 beta only once we're confident there's a smooth path to release (including confidence for sites that need to update), but not to artificially hold off the date by six months either.
Regardless of what's happening with Drupal 9, Drupal 8.9.0 still has to come out on June 3rd, and as a regular minor release, its alpha/beta period doesn't actually need to start until mid-April. We can also commit critical bug fixes during the alpha/beta changes with small API additions and deprecations as needed.
One 8.9.0 is released though, we can't commit new API additions, deprecations, or updates to patch releases without jeopardising the stability of what is supposed to be an LTS release.
Proposed resolution
Instead of the two dates, add an additional fallback date in the middle, the plan would then look something like this:
1. If Drupal 9 is ready for beta in March, all is good and there's no contingency.
2. If Drupal 9 misses March beta, Drupal 8.9.0 still has to come out on June 3rd. If all critical Drupal 9 blockers are resolved by the 8.9.0 beta window, start the Drupal 9 beta on one of those windows. We still need a longer beta period for Drupal 9, so this would mean an August/September release date (tbd, but we could pick when the final cut-off and release dates are now).
3. If we don't have a releasable/beta Drupal 9 by the time 8.9.0 is out, this is likely because there is an intractable issue which may require deprecations or new APIs, or new update path changes to be added to Drupal 8.9.x. This means we need to allow for releasing Drupal 8.10.x, which will have to happen December 2nd anyway, so slip the Drupal 9 date to December.
The idea being this gives us the combination of certainty that we're not jumping the gun, less of a cliff edge, but also not a rolling yes/no release date any time between June and December.
Table version of the above, with specific dates:
Beta blockers ready by |
8.9.0-alpha1 | 8.10.0-alpha1 | 9.1.x opens | 9.0.0-beta1 | 8.9.0 | 9.0.0 | |
---|---|---|---|---|---|---|---|
Feb. 28 | Week of Mar. 2 (but direct to beta, no alpha phase since beta is so long and also theoretically no big features to land) | N/A | Week of Mar. 2 | Week of Mar. 2 | June 3 | June 3 | |
Apr 28 | Week of Apr. 13 | N/A | Week of Apr. 13 | Week of May 4 | June 3 | Aug. 5 | |
August 31 | Week of April 13 | Week of Aug 31 (but only if we have a good reason to, otherwise we stay on 8.9.x) | Week of Apr. 13 | Week of Aug. 31 | June 3 | Dec. 2 | |
Later than first week of September | panic |
Remaining tasks
Various sign-offs, and documenting this properly.
User interface changes
API changes
Data model changes
Release notes snippet
Comment | File | Size | Author |
---|---|---|---|
#11 | drupal9-timeline.png | 57.99 KB | damienmckenna |
#10 | Screenshot 2019-11-29 at 12.25.22.png | 145.11 KB | gábor hojtsy |
Comments
Comment #2
catchComment #3
catchComment #4
xjmI'd suggest something like:
ready by
Edit: I forgot that 9.1.x needs to open in the spring regardless to avoid a long freeze; fixed to add a separate column for that.
Comment #5
webchickThis sounds really great to me; it gives us a "middle ground" contingency plan so we're not just sitting around for the bulk of the year, eating into the available time to upgrade older sites, because we missed a deadline back in March.
Comment #6
catchQuestions on the table in #4, in the first row are the two February 17 dates actually supposed to be March 17?
I would kind of expect it to look more like this:
edit: edited about ten times...
ready by
Comment #7
xjm@catch Good point about the alpha phase for 8.9.x; we definitely don't need it if there's a long beta after and especially when there aren't big features that folks will be trying to land anyway. #6 looks good to me.
Comment #8
catchComment #9
catchDries, laurii, Gabor, xjm, larowlan, pameela and svettes discussed this and we think it's ready to be moved to the handbook, so I'm moving this to RTBC.
We'll need to find a way to document it clearly in the handbook still.
Comment #10
gábor hojtsyMoved it over to the handbook :) What was not clear if the 2nd and 3rd scenarios also have a missing alpha for 8.9.0, because the header of the table said alpha but the text said for the first no alpha, but beta :) So i took alpha for the other two. That means there are no defined beta dates though.
Also it was not defined what happens to December 2nd in the second scenario, is there a 9.1.0 release then or does 9.1.0 get delayed further down?
Leaving open for those questions, so we can fix it in the handbook.
BTW while I was there I fixed the D7ES and Drupal 8 LTS descriptions as well. All in https://www.drupal.org/core/release-cycle-overview
Comment #11
damienmckennaThis is Gábor's image that was uploaded to a D9readiness meeting recently.
Comment #12
gábor hojtsy