Tails has a time-based release schedule, aligned with Firefox ESR (Extended Support Release) that are generally put out every 6-8 weeks. In the examples below we'll assume a 6-weeks release cycle.

The rationale was originally written on tails-dev.

We try to put a major Tails release out every 12 weeks, plus a bugfix release in between. But in practice various constraints lead to many exceptions to this general rule.

See our actual release schedule.

Schedule

  /          4w         \/   2w    /4d\

  previous               RC1    ESR sources
  ESR + Tails             |        |
  release          freeze |        |  new ESR + Tails
  |                     | |        |  release
  |                     | |        |  |
  ↓                     ↓ ↓        ↓  ↓
._____._____._____._____._____._____._____.
0     1     2     3     4     5     6

In the above:

  • ESR sources means the source code for the upcoming Firefox ESR is available, but the ESR is not officially out yet: it has to go through Mozilla's QA process first. Sources are generally available on Friday night (US time).
  • ESR + Tails release means Mozilla announces the new Firefox ESR, and we release a new version of Tails (roughly) the same day. This usually happens on Tuesday night (US time).

What if things go wrong?

Postponing the final release causes problems for those who have scheduled time for post-release user support, press work, etc..

Also, changing our mind (i.e. releasing a point-release instead of a major one) => switching bugfix/major release schedule for the future is probably not an option either.

So we need to have a pessimistic enough RC->final schedule to handle unexpected issues.

Reverting the faulty feature branch is an option too.

Remaining issues

  • When to run the test suite: RC1 and/or RC2?

Versioning scheme

  • We always increment the first number when switching to a new major release of Debian. When we do this we reset the second number to zero.
  • We also increment the first number whenever it make sense for Tails only (user-visible changes).
  • The second number is incremented for every release that does not increment the first number.
  • We add an extra, third number for emergency releases.