Release Plan
Introduction
Time-based release trains have been shown to produce the best quality Free software. A time based release is one that does not wait for either features, or bug fixes - but is based (as purely as possible) on time. This enforces discipline in introducing fixes, gives predictability, and allows more regular releasing. It is also the case that we will necessarily release earlier, and then rapidly, incrementally bug fix releases based on the previous stable version. Thus if you have a need for the very highest quality version, it can make sense to defer a move until the first or perhaps second minor point release.
Synchronizing our time-based release schedule with the wider Free Software ecosystem also has huge advantages, by getting our new features, out to users as quickly as possible – with a minimum of distribution cycle lag. In consequence, we aim at six monthly releases, and over time nudge them to align well with the March/September norms.
As a result, users get new major version every six months with a wide range of features, fixes, and enhancements. In addition, they get many pure bugfix micro releases. The first X.Y.0 release is intended for early adopters. More conservative users are advised to wait for a later X.Y.Z bugfix release.
Note that the dates mentioned in the schedule might get shifted if there are serious technical or other problems with the release. An extra RC might be needed if the final release candidate does not fit the Release Criteria. Such problem would shift the final release by one week or even more.

6.0 release
| Release | Freeze | Publishing |
|---|---|---|
| 6.0.0 (freeze: week 2) | Week 42 , Oct 16, 2017 - Oct 22, 2017 | Week 5 , Jan 29, 2018 - Feb 4, 2018 |
| 6.0.1 | Week 8 , Feb 19, 2018 - Feb 25, 2018 | Week 11 , Mar 12, 2018 - Mar 18, 2018 |
| 6.0.2 | Week 11 , Mar 12, 2018 - Mar 18, 2018 | Week 14 , Apr 2, 2018 - Apr 8, 2018 |
| 6.0.3 | Week 16 , Apr 16, 2018 - Apr 22, 2018 | Week 19 , May 7, 2018 - May 13, 2018 |
| 6.0.4 | Week 22 , May 28, 2018 - Jun 3, 2018 | Week 25 , Jun 18, 2018 - Jun 24, 2018 |
| 6.0.5 | Week 28 , Jul 9, 2018 - Jul 15, 2018 | Week 31 , Jul 30, 2018 - Aug 5, 2018 |
| 6.0.6 | Week 40 , Oct 1, 2018 - Oct 7, 2018 | Week 43 , Oct 22, 2018 - Oct 28, 2018 |
| End of Life | November 26, 2018 | |
See also the detailed schedule and the release notes.
5.4 release
| Release | Freeze | Publishing |
|---|---|---|
| 5.4.0 (freeze: week 27) | Week 17 , Apr 24, 2017 - Apr 30, 2017 | Week 30 , Jul 24, 2017 - Jul 30, 2017 |
| 5.4.1 | Week 32 , Aug 7, 2017 - Aug 13, 2017 | Week 35 , Aug 28, 2017 - Sep 3, 2017 |
| 5.4.2 | Week 37 , Sep 11, 2017 - Sep 17, 2017 | Week 40 , Oct 2, 2017 - Oct 8, 2017 |
| 5.4.3 | Week 42 , Oct 16, 2017 - Oct 22, 2017 | Week 45 , Nov 6, 2017 - Nov 12, 2017 |
| 5.4.4 | Week 48 , Nov 27, 2017 - Dec 3, 2017 | Week 51 , Dec 18, 2017 - Dec 24, 2017 |
| 5.4.5 | Week 4 , Jan 22, 2018 - Jan 28, 2018 | Week 7 , Feb 12, 2018 - Feb 18, 2018 |
| 5.4.6 | Week 15 , Apr 9, 2018 - Apr 15, 2018 | Week 18 , Apr 30, 2018 - May 6, 2018 |
| End of Life | June 11, 2018 | |
See also the detailed schedule and the release notes.
5.3 release
| Release | Freeze | Publishing |
|---|---|---|
| 5.3.0 (freeze: week 47) | Week 42 , Oct 17, 2016 - Oct 23, 2016 | Week 5 , Jan 30, 2017 - Feb 5, 2017 |
| 5.3.1 | Week 8 , Feb 20, 2017 - Feb 26, 2017 | Week 11 , Mar 13, 2017 - Mar 19, 2017 |
| 5.3.2 | Week 11 , Mar 13, 2017 - Mar 19, 2017 | Week 14 , Apr 3, 2017 - Apr 9, 2017 |
| 5.3.3 | Week 16 , Apr 17, 2017 - Apr 23, 2017 | Week 19 , May 8, 2017 - May 14, 2017 |
| 5.3.4 | Week 22 , May 29, 2017 - Jun 4, 2017 | Week 25 , Jun 19, 2017 - Jun 25, 2017 |
| 5.3.5 | Week 28 , Jul 10, 2017 - Jul 16, 2017 | Week 31 , Jul 31, 2017 - Aug 6, 2017 |
| 5.3.6 | Week 34 , Aug 21, 2017 - Aug 27, 2017 | Week 35 , Aug 28, 2017 - Sep 3, 2017 |
| 5.3.7 | Week 40 , Oct 2, 2017 - Oct 8, 2017 | Week 43 , Oct 23, 2017 - Oct 29, 2017 |
| End of Life | November 26, 2017 | |
See also the detailed schedule and the release notes.
Dates
The release is time-based but the schedule defines calendar weeks instead of exact dates. It is because we are always a bit flexible. The release can be delayed by few days because of blocker bugs, build problems, and other technical issues.
The release consists of several beta and release candidate builds. There are needed several actions for each build. The ideal workflow looks like:
- Monday: commit deadline; reminder is sent to devel, l10n mailing list before it happens
- Tuesday: the tag is created on a commit that builds and passes unit-, subsequent-, and smoke-tests; tag is announced on the devel and qa mailing lists
- Wednesday: builds are uploaded on the early pre-release site; they are announced on the devel and qa mailing lists
- Thursday: builds are uploaded on mirrors
- Friday: builds are available via the official pre-release site; they are announced via many channels, e.g. mailing lists, twitter
The final release is usually announced on Wednesday, few days after the final release candidate is out.
Note that we are very strict about commits to the final release candidate, so full regression test is not needed. It is used as the final build when it passes the needed tests. It is just renamed on mirrors.
Schedule
The schedule is based on the following rules:
- do the major release every six months and synchronize it with major Linux distributions; it always comes with a wide range of features, fixes, and enhancements
- do a pure bugfix release every month after the main release until it is good enough even for the most conservative people; do it less frequently afterwards
- do pure bugfix releases, including security fixes, until the next release is ready for most conservative people
- do not do two builds the same week
The result is the following template:
| Event | Summer | Winter |
|---|---|---|
| x.y feature freeze | Jun(b) | Dec(b) |
| x.y.0 first release | Aug(b) | Feb(b) |
| x.y.1 bugfix release | Sep(b) | Mar(b) |
| x.y.2 bugfix release | Oct(b) | Apr(b) |
| x.y.3 bugfix release | Nov(b) | May(b) |
| x.y.4 bugfix release | Dec(b) | Jun(b) |
| x.y.5 bugfix release | Feb(m) | Aug(m) |
| x.y.6 bugfix release | Apr(m) | Oct(m) |
Where (b) means the beginning of the month, (m) means the middle of the month and (e) means the end of the month.
Version scheme
We do several builds around each release. The following versioning scheme is used:
- X.Y.0.0.alphaZ - Zth alpha version of the initial release
- X.Y.0.0.betaZ - Zth beta version of the initial release
- X.Y.0.Z - Zth release candidate of the initial release, last rc is considered as final and put on the main download page
- X.Y.1.Z - Zth release candidate of the 1st bugfix release, last rc is considered as final and put on the main download page
It seems to be the best compromise with the following advantages:
- easy to understand for normal users, alpha, beta flags are known from other projects, so they set reasonable expectations
- correct alphabetical sorting in RPM, Bugzilla
- "easy" to parse (alpha/beta strings delimited by dot)
There was a long discussion about this scheme on the mailing list.
Accelerating the release cycle
This acceleration of the release cycle involves some considerable release engineering and QA effort. To reduce the cost of these, we work to provide complete (ie. containing all languages) daily snapshots of the master branch to allow continual testing of code improvements. This works partially already, as can be seen/downloaded here.
Similarly, we plan to increasingly automate the build process to allow a much lower-touch release flow, and to continue to shrink the footprint of our binaries to allow far more rapid transfer of product-equivalent builds.
End-of-Life Releases
A release normally has a lifetime of around nine months. We consider a release to have reached its End of Life (EOL) one month after the last planned release.
If you want longer term support for a release, you're encouraged to engage any certified L3 provider who could provide you with the service.
Because of the amount of data, the releases were split out to ReleasePlan/Archive.
EN > Main > Languages > EN
EN > Main > Languages > EN
EN > Main > Languages > EN
EN > Main > Languages > EN
EN > Main > Languages > EN
EN > Main > Languages > EN
EN > Main > Languages > EN > Features and Enhancements
Main > Languages > EN > Main > Design
Main > Languages > EN > Main > Development
Main > Languages > EN > Main > Development
Main > Languages > EN > Main > QA > Release