Problem/Motivation

At the moment we set specific dates months in advance for patch releases, betas and release candidates.

While it's important for security releases to only come out during release windows (unless something exceptional happened), we don't need 24 hour fidelity for other kinds of releases - no-one is expected to update instantly.

Additionally the 24 hour window causes several problems:

  • Core committers are in 2-4 timezones and 2-4 continents, trying to do anything in a single day is hard
  • At least for me, I can't plan to have a completely free day for core months in advance, for example yesterday I spent two hours at my daughter's school at an open lesson which I got about a week's notice for
  • Having a single day deadline means patches that might have got into a beta, don't because of lack of committer time despite being RTBC. And conversely patches that might not be quite ready the day before can/have been rushed in to hit the deadline. This happens just about every core milestone that I can remember. We have a policy of 'either on or off the train as it leaves the station', but sometimes release days feel like there are people either running in front of the train and/or behind it on the tracks as it leaves risking personal injury to either get on or get out of the way, and some others with their coats/bags trapped in the doors.

If we make the window a week, we can still aim for the Wednesday, but it means if things slip then releasing on Thursday or Friday is not 'late', it's just at the end of the window. Also the weekend provides a natural hard-cut-off point where hopefully nobody wants to be still trying to cram things in.

Proposed resolution

For security releases, keep the current 'Wednesday UTC' 24 hour window.

For patch releases, betas, and release candidates, have a 48 hour window between 12pm UTC Tuesday and 12pm UTC Thursday. (The window may be extended longer as needed for betas and RCs.)

Remaining tasks

Decide whether this is a good idea or not, and update docs if so.

User interface changes

API changes

Data model changes

Comments

catch created an issue. See original summary.

kattekrab’s picture

I'd suggest, with my "community working group" chair hat on, that this seems sane. Providing a bit of breathing room around this should be good for the mental health of both our core committers and our core contributors striving to get their work in.

Thanks catch. Good idea in my view.

+1

dawehner’s picture

dawehner: no it'd be the same as now, just no promises that it's on a Wednesday.

IMHO noone expects beta/RCs/alphas/gammas to be out at any given day, they are there when they are ready to be so.

I'm not sure whether people though for stable releases plan to be on a certain day. Practically though, as long its not a security issue, there is no high pressure to get those updates applied, so a different release day is fine totally as well.

xjm’s picture

I have mixed feelings about this proposal. While I think it would be fine for us to announce that (for example), 8.1.0-rc1 will be released sometime the week of April 4, it would still be good to announce the exact date a few days in advance, so contributors and committers can plan. For example, we could announce on April 4 that the RC would come out April 7 based on our schedules.

However, I'm not sure that's the case for patch releases. I suspect that the release window for patch releases is probably helpful for organizations, so maybe we should get feedback outside the core issue queue before we consider changing that.

However, I disagree with one thing:

Having a single day deadline means patches that might have got into a beta, don't because of lack of committer time despite being RTBC. And conversely patches that might not be quite ready the day before can/have been rushed in to hit the deadline. This happens just about every core milestone that I can remember. We have a policy of 'either on or off the train as it leaves the station', but sometimes release days feel like there are people either running in front of the train and/or behind it on the tracks as it leaves risking personal injury to either get on or get out of the way, and some others with their coats/bags trapped in the doors.

Having a week deadline instead of a day deadline does not change that. At some point, we need to freeze the code and get a release out. It's totally reasonable for a beta or RC for us to decide to make exceptions or move the window based on committer availability/a certain high-priority issue/etc., like we did yesterday. (A couple issues were committed during the freeze, and we moved the freeze window later than it was originally announced.) However, if we set the expectation that we will just just keep moving the release window until the RTBC queue is empty, or that it is dependent on what changes are ready, that actually puts far more pressure on contributors (to sprint tirelessly for a whole week to get as much as they can done before the wire, rather than setting the expectation that they are done at midnight on Tuesday) and especially on committers (to clear the entire RTBC queue, to make exceptions for everyone's favorite patch, to postpone and postpone the release, to not have a hard commit freeze). So it becomes an exhausting week instead of an exhausting day.

xjm’s picture

Also the other downside to not just doing Wednesday is that then we have to discuss every month when the window is going to be, which adds more work. So I'd prefer to default to Wednesday always, but be flexible about moving it if someone needs it moved, and that person surfaces the need before the release window is announced on g.d.o/core the Friday before.

catch’s picture

Also the other downside to not just doing Wednesday is that then we have to discuss every month when the window is going to be, which adds more work. So I'd prefer to default to Wednesday always, but be flexible about moving it if someone needs it moved, and that person surfaces the need before the release window is announced on g.d.o/core the Friday before.

Just to be clear that's exactly what I'm suggesting. Default to Wednesday but don't promise that it actually happens before Friday.

So it becomes an exhausting week instead of an exhausting day.

Well we could try it a couple of times and see if it makes things better or worse.

xjm’s picture

So we would modify the release schedule to say:

Week of April 4, 2016: 8.1.0-rc1 released. Final patch release of Drupal 8.

And then the g.d.o/core announcement becomes:

Drupal core release window beginning Wednesday, April 6, 2016

...blah blah blah patch release...Drupal 8.1.0-rc1 will also be released between April 6 and 8 in preparation for the scheduled release of 8.1.0 on April 20th.

To ensure a reliable release window for the patch and rc releases, there will be a Drupal 8.0.x and 8.1.x commit freeze beginning 00:00 to 23:30 UTC on Wednesday, March 02. (For the release candidate, this freeze may be extended to the following day as needed.) Now is a good time to update your development/staging servers to the latest 8.0.x-dev or 8.1.x-dev code and help us catch any regressions in advance. If you do find any regressions, please report them in the issue queue. Thanks!

And if we know in advance that (e.g.) neither catch nor I is available on April 6, then we just move the whole shebang to April 7 in that announcement as well.

xjm’s picture

Note that in #7, I am still starting the commit freeze midnight UTC Wednesday to set expectations. But I leave open the option of us deciding on Wednesday as a committer team that we will commit RTBCs Wednesday and release Thursday or Friday instead.

What I don't want to happen though is people asking us to move the freeze later and later, to make exceptions, or to expect the whole RTBC queue to be addressed before we create a release. The deadline does not change for issue contributors. We just give ourselves more breathing room for release preparation as committers.

Version: 8.1.x-dev » 8.2.x-dev

Drupal 8.1.0-beta1 was released on March 2, 2016, which means new developments and disruptive changes should now be targeted against the 8.2.x-dev branch. For more information see the Drupal 8 minor version schedule and the Allowed changes during the Drupal 8 release cycle.

xjm’s picture

Version: 8.2.x-dev » 8.1.x-dev

This policy also applies to 8.1.x, so moving back.

catch’s picture

#7/#8 looks good to me.

xjm’s picture

xjm’s picture

I updated things for beta/rc.

The outstanding question then is whether to consider it for patch releases. Patch releases are less overhead, and unlike sec releases, they do not have to be a particular time of day. I think there is value for our userbase in having them on a set day, so I would suggest leaving them as-is for now. Especially if we can eliminate the requirement that D7 and D8 share a front page post about bugfix releases.

xjm’s picture

catch’s picture

I think there is value for our userbase in having them on a set day

What do you think that value is though?

Usually on projects I work on, core updates are included anything from one-three weeks from the release date. You need to check any core patches you have applied whether they got in, or need re-rolling, get things tested on staging in case of regressions etc. and anything we're waiting on is usually already patched in the code base, then it goes into the release with whatever other changes got worked on. If you're slower than three weeks, then you could be releasing one update moments before the next one comes out, so can't do much about that. If people are quicker that's great, but there's no reason to hotfix regular patch releases within 24-48 hours.

Say you release every week, then it's probably nice not to have core releases on Friday, so they have time to get into the code base at the end of one week, to get released the next week. Similarly I'd avoid Mondays for the same reason. I don't see a difference for Tuesday-Thursday at all.

I might be particularly sensitive to this since to release anything on a 'Wednesday' in the US, I currently have to wait until about 8pm or later at night, or do it first thing in the morning on Thursday, so what's Wednesday on Drupal.org is not really Wednesday for me. But this is equally true for everyone east of Europe year round.

xjm’s picture

Title: [policy, no patch] Consider a one week instead of one day window for beta/rc and bug fix releases » [policy, no patch] Consider a three-day instead of one-day window for beta/rc and bug fix releases
Issue summary: View changes

The point (according to the policy at least) is so that "site administrators can know in advance which days they should be on the look out for" a release.

Per the current policy:
https://www.drupal.org/documentation/version-info

Which was updated based on:
https://groups.drupal.org/node/260803
but before that it was still Wednesdays....

Which in turn was discussed in:
https://groups.drupal.org/node/150854
and received a lot of positive feedback, but it's unclear how much of that was for the predictability of always having the release on a particular day, versus having monthly releases at all.

I think maybe the next step is to get feedback from people who created that policy and from people who actually run sites? We could post on g.d.o/core or something.

I really do actually prefer having a fixed, specific schedule over having a release looming over my head for a whole week and open to negotiation/pressure. I updated the title and summary to the tighter window as described in #7: still starting at a fixed time, but with more than 24h of leeway for release managers' timezones/personal schedules/etc.

xjm’s picture

Issue summary: View changes
xjm’s picture

Status: Active » Needs review

I posted this announcement: https://groups.drupal.org/node/509883

I asked for feedback by April 1. If there are no concerns before then, we can use the proposed schedule for the April patch release window.

catch’s picture

Quick googling says there is up to 27 hours difference in timezones 12-14 +-GMT and DST). So what about a 48 hour window where 24 of the hours are Wednesday UTC? Then it's Wednesday somewhere, but not necessarily Wednesday US/Europe business hours at all. It's the latter I particularly want to get away from since that window is much less than a day.

andypost’s picture

it's probably nice not to have core releases on Friday

Please exclude Friday from release day, better delay til next Mon

benjy’s picture

Yeah +1 to not releasing on a Friday. The smaller the window the better in my opinion.

I also feel strongly about security releases never changing from a fixed day, I hope this doesn't become a precedent in the future to also move security releases to a more flexible release window.

catch’s picture

@benjy security releases being on a fixed day makes loads of sense, since you want to get those applied either same day or by the end of the week depending on severity.

The reason I opened this is because I think we took the fixed day for security releases, and applied it to everything else as well, where it's not necessarily a benefit.

Gábor Hojtsy’s picture

I think coordinated releases even across bugfix and security fixes is useful because you update your core bugfix release on Tue then a security release comes up on Wed for the modules you use, and then you again go into updating, etc. If those came out the same day, its easier to review what to update and you can do all at once. Which I think is the benefit of having them come out all at once. I can see how its hard to keep to a more stricter schedule though on the release side, so those should be weighted against the user benefit.

kbell’s picture

+1 #19, 20, 23. Smaller window the better, Wednesday in the middle (per catch), all together now!

xjm’s picture

So maybe we can start the official window 12h earlier and end it 12h later? Noon UTC Tuesday to noon UTC Thursday.

catch’s picture

Issue summary: View changes

Updated the issue summary to separate security vs. bug fix vs. beta/rc.

David_Rothstein’s picture

I've occasionally pushed releases to Thursday or even Friday in the past, for example:

https://groups.drupal.org/node/421278
https://groups.drupal.org/node/448448

No one ever complained :)

NiklasBr’s picture

xjm’s picture

Issue summary: View changes
Status: Needs review » Reviewed & tested by the community

Updated the summary slightly to make it clear that the beta/rc window is mostly the same as the patch window.

Marking RTBC since this seems to have consensus. We used a window like this for beta2 and I announced such a window for rc1 as well. If there are no objections we'll use this window going forward and update https://www.drupal.org/documentation/version-info (which I think needs to happen for this to be marked fixed).

xjm’s picture

Status: Reviewed & tested by the community » Fixed

Status: Fixed » Closed (fixed)

Automatically closed - issue fixed for 2 weeks with no activity.