This policy is a draft: we haven't decided when we will try it out.
See the [backport process] for how we handle backport tickets.
At the moment, here's how we do releases: • If we have an active alpha series, put out an alpha every few weeks. • Put out a stable release every 1-2 months. • Put out oldstable and LTS releases as needed.
Regular Release Dates
Do we want to schedule our stable releases on set dates?
Here's one possible schedule:
- alpha release: every 2 weeks, on a Wednesday
- we expect alpha releases to be more irregular: we only do them as needed
- early in the stable release: check if a new release is needed, every 4 weeks, on a Wednesday
- maintenance releases: as needed, but usually at the same time as a stable or alpha release
- includes oldstable and LTS releases
I chose Wednesday because it's the middle of the week. Friday failures can lead to weekend work, and some people's Mondays and Fridays overlap with other people's weekends.
- we don't do oldstable and LTS releases, unless there is an important, user-visible change
- we can skip a release if the changes are trivial (or there are no changes)
- trivial changes are any change that users won't notice, or won't want to upgrade if they knew about it
- if a change doesn't need a separate reviewer, it's probably a trivial change
- we can do a release early for urgent fixes. After an urgent fix, we reschedule future releases every 2-4 weeks from that date
- we can reschedule releases if people are on leave
We will declare a soft freeze for some amount of time before each stable release date, and say that nothing inessential gets backported in that time.
Freezes will start on the previous Wednesday.
If we discover urgent fixes, we should delay the release another week, so the new fixes get some nightly testing.
Alpha releases don't have mini-freezes, but we should avoid merging any major changes in the day or two before the release.
Transitioning between Early Stable and Maintenance
Every 4 weeks, we check if we need to do an early stable release. If we go 8 weeks without doing an early stable release, we transition that stable release to the stable maintainers.
That is, if a stable release series requires lots of urgent patches, we keep it with the master maintainers until those bugs are fixed.