21
21
* `Releasing Bazaar <releasing.html>`_ -- the process for actually making
22
22
a release or release candidate.
27
Bazaar makes a release every month, preceded by a one-week
28
release-candidate test.
30
In any release we may fix bugs, add formats, change the default format,
31
improve performance, add new commands or change command line behaviour,
32
change the network protocol, or deprecate APIs. We sometimes also
33
introduce new bugs, regress existing behaviour or performance, remove
34
existing features or formats, or break behaviour or APIs depended upon by
35
plugins, external programs or users.
37
Some users are happy upgrading every month and consider the overall
38
positive balance of changes is worth some amount of churn. But there are
39
some serious problems:
41
* You cannot get bug fixes without also getting disruptive changes.
43
* Bazaar is seen as unstable.
45
* Many releases cause some plugin breakage.
47
* One month is not a very long window for dependent programs or systems
48
to catch up to changes in Bazaar before the release goes out of date.
50
* There's no clear indication to distributions which version they should
53
* If people (or their distributions) just pick an arbitrary version, they
54
may all be on different arbitrary versions, therefore they will have
55
different behaviour and different bugs, and sometimes interoperation
58
* Any effort we, or distributors, wanted to put into backporting fixes
59
would be dissipated across many possible backport target releases.
61
* When in the past we've tried either stalling releases for particular
62
features, or having trunk frozen for some weeks, it causes churn and
63
waste. People rush features in, or already landed features wait a long
64
time to be released, or branches go out of date because they cannot
381
After doing this for the 2.0 cycle (September 2009 through to early
382
2010), it seems to be going well.
385
Reviewing for the Stable Branch
386
*******************************
388
These are guidelines and can be interpreted case-by-case.
390
* All changes to the stable branch should fix a bug, even if you would not
391
normally file a bug for the change. The bug description should if at
392
all possible explain how to manually verify the bug in a way that will
393
fail before and pass after the change. (These are requirements for the
396
* The change should be reasonably small and conservative.
398
* Remember that the patch will be read during the SRU
399
process and so keeping the patch small is useful even beyond keeping the
400
logical changes small. Avoid doing mechanical bulk changes on the
403
* Use particular care for things that may behave differently across
404
platforms, encodings or locales. It's harder to thoroughly test these
405
things before a release.
407
* Generally speaking, just cleaning things up is not a sufficient reason
408
to make changes to the stable branch. It has to actually fix a bug.
410
* Changes to the stable branch should include tests as usual.
412
* Don't change or remove existing APIs that might be used by plugins, even
413
if they are underscore-prefixed. Adding APIs that are also being added
414
to the trunk branch may make sense.
416
* Keeping consistency with trunk is useful, but less important than
417
keeping the stable branch stable.
419
* (more items welcome)
427
#. List thread "[rfc] six-month stable release cycles", July 2009.
424
#. List thread "`[rfc] six-month stable release cycles`__", July 2009.
426
.. __: https://lists.ubuntu.com/archives/bazaar/2009q3/060882.html
430
429
vim: filetype=rst textwidth=74 ai shiftwidth=4