Principles

We carefully manage what we change in a stable Ubuntu release for the following principles:

  1. Minimise regressions

  2. User confidence

  3. Maintain usefulness

A fourth principle is simply to focus on user experience, but this of course applies across Ubuntu and isn’t SRU-specific.

Minimise regression

Behaviour a user reasonably relies upon that works today must not break tomorrow as a result of an update. In a stable release, this includes any user interface change! Exception: behaviour that we deem buggy must necessarily change in order to fix it. [Expand on this]. See xkcd spacebar heater.

In contrast to pre-release versions, official releases of Ubuntu are subject to much wider use, and by a different demographic of users. During development, changes to the distribution primarily affect developers, early adopters and other advanced users, all of whom have elected to use pre-release software at their own risk.

Users of the official release, in contrast, expect a high degree of stability. They use their Ubuntu system for their day-to-day work, and problems they experience with it can be extremely disruptive. Many of them are less experienced with Ubuntu and with Linux, and expect a reliable system which does not require their intervention.

Stable release updates are automatically recommended to a very large number of users, and so it is critically important to treat them with great caution.

Confidence

We must maintain confidence in the stability of our stable releases. This requires consistent application of policy, documented diligence, rationale for exceptions, etc. “Headline/outrage avoidance”

What do we mean by stability?

  1. There’s stability as in “things don’t crash”. That’s easy.

2. There’s stability as in “things behave in the way that upstream meant them to behave”. This is mostly a superset of “things don’t crash”.

3. There’s stability as in predictability - if the user did something yesterday it will do the same thing today.

We want stability in all three of these senses for the “stable release”, but with a much higher emphasis on the third than in other contexts.

Maintain usefulness

We make exceptions to keep the distribution useful. Eg. Firefox, hardware enablement, Internet protocol [need to expand on this].