206
206
also mail the list to raise this issue in our process. Milestones are
207
207
found at <https://launchpad.net/bzr/+milestone/x.y.z>.
209
#. Merge into your branch all previous stable series fixes that haven't been
210
merged yet. For example, if you're releasing 2.5.x, make sure the fixes
211
on 2.4, 2.3, etc have already been merged up::
215
and commit that merge in its own commit. This should happen only if the
216
devs landing changes in previous releases forgot to merge them up. Since
217
this can slow down the freeze, feel free to gently remind them about
218
their duties ;) If you feel unsafe resolving the conflicts or it's too
219
time consuming, contact the related devs and skip this merge.
209
221
#. In the release branch, update ``version_info`` in ``./bzrlib/__init__.py``.
210
222
Make sure the corresponding milestone exists.
211
223
Double check that ./bzr ``_script_version`` matches ``version_info``. Check
226
238
#. Update the ``./doc/en/release-notes/`` section for this release.
240
Check that all news entries related to this release have been added in
241
the right section. For example, if you're releasing 2.5b2, the following
242
command should display a a single chuk diff for the 2.5b2 release::
244
bzr diff -rbzr-2.5b1.. doc/en/release-notes/bzr-2.5.txt
228
246
Fill out the date and a description of the release under the existing
229
header. If there isn't one, follow the instructions above for using the
230
``release-template.txt`` file.
247
header (the diff above will help you summarizing). If there isn't one,
248
follow the instructions above for using the ``release-template.txt`` file
249
and remind people that they should document their changes there ;)
232
251
See *2.1.1* or similar for an example of what this looks like.
244
263
Released' or setting a different milestone if the bug hasn't been
245
264
fixed). A few false positives may remain in the older series, don't let
246
265
this slow you down too much. This script accepts options you may find
247
useful, use ``./tools/check-newsbugs.py`` to display its usage.
266
useful, use ``./tools/check-newsbugs.py`` to display its usage (``-w``
267
will open each bug in your browser for example).
269
#. For beta releases update the translation template::
271
BZR_PLUGIN_PATH=-site make po/bzr.pot
273
This is especially important for the final beta release which is
274
when translations are frozen and translators are requested to make
277
#. For stable releases update the translations::
279
bzr merge lp:~bzr-core/bzr/bzr-translations-export-x.y
249
281
#. Commit these changes to the release branch, using a command like::
357
393
``BZR_DISABLE_PLUGINS`` or ``BZR_PLUGIN_PATH=-site`` to disable one or
396
Until <http://pad.lv/839461> is fixed, you may encounter issues if you
397
cut a release for old stable branches (<= 2.2) and use a more recent
398
OS/distro. If that's the case, check the bug status and use the following
399
workaround if no fix is available::
401
export TTPATH=<local branch of lp:testtools -r 0.9.2>
402
export SUPATH=<local branch of lp:subunit -r 0.0.6>
403
PYTHONPATH=$TTPATH:$SUPATH/python PATH=$SUPATH/filters:${PATH} BZR_PLUGIN_PATH=-site make check-dist-tarball PYTHON=python2.6 | subunit2pyunit
360
405
Remember that PQM has just tested everything too, this step is
361
406
particularly testing that the pyrex extensions, which are updated
362
407
by your local pyrex version when you run make dist, are in good
397
442
You may also need to do `At the start of a series cycle`_ if you're starting
445
The final beta - branching and translations
446
-------------------------------------------
400
448
A word of caution: the instructions above works well for all releases but
401
449
there is one special case that requires a bit more care: when you release
402
450
the *last* beta for a given ``x.y`` series (from trunk aka lp:bzr), you need
428
476
#. Open ``lp:bzr/x.y`` for bug fixes
478
You also need to ensure Launchpad is set up to import/export
479
translations for the new branch and inform translators.
483
bzr push lp:~bzr-core/bzr/bzr-translations-export-x.y
485
#. On the translations series synchronization settings page
486
<https://translations.launchpad.net/bzr/x.y/+translations-settings>
487
turn on ``Import template files`` then for exports click ``Choose a
488
target branch`` and point it at the branch you just pushed.
490
#. E-mail translators to announce that the forthcoming stable release of bzr
491
is ready for translations. Send to
492
``launchpad-translators@lists.launchpad.net`` and
493
``ubuntu-translators@lists.ubuntu.com``.
495
#. The series is now frozen for strings and API, see below for adding
496
that to the announcement.
430
498
Announcing the source freeze
431
499
----------------------------
433
#. Post to the ``bazaar`` list, saying that the source has been frozen
434
(gone gold). Be extra clear that this is only a *source* release
435
targeted at packagers and installer builders (see
436
<https://bugs.launchpad.net/launchpad/+bug/645084>). This is the cue
437
for platform maintainers and plugin authors to update their code. This
438
is done before the general public announcement of the release.
440
#. Pause for a few days.
501
#. Post to the ``bazaar@lists.canonical.com`` and
502
``bzr-packagers@list.launchpad.net`` lists, saying that the source has
503
been frozen. Be extra clear that this is only a *source* release targeted
504
at packagers and installer builders (see
505
<https://bugs.launchpad.net/launchpad/+bug/645084>). This is the cue for
506
platform maintainers and plugin authors to update their code. This is
507
done before the general public announcement of the release.
509
The freeze announcement generally guess the date of the official public
510
announcement, for the most recent stable series (the one supported by the
511
installers and most of the distributions) it's generally a few days after
512
the freeze. For older series supported only via SRUs for Ubuntu, we don't
513
control the process as tightly so guessing the date is not appropriate.
515
For the final beta release include in your announcement a notice of
516
API and translation freezes nothing that public methods should not
517
be removed or changed and strings should not be added or changed.
519
#. Pause for a few days.
443
522
Publishing the release
468
547
#. Make an announcement mail.
470
For beta releases, this is sent to the ``bazaar@lists.canonical.com``
471
list only to inform plugin authors and people responsible for building
472
packages or installers.
474
Once the installers are available, the mail can be sent to the
475
``bazaar-announce`` list too.
477
For stable releases, it should also be cc'd to ``info-gnu@gnu.org``,
549
For beta releases, this is sent to the ``bazaar@lists.canonical.com`` and
550
``bazaar-announce@lists.canonical.com`` lists.
552
For stable releases (excluding SRUs which are for older stable releases),
553
it should also be cc'd to ``info-gnu@gnu.org``,
478
554
``python-announce-list@python.org``, ``bug-directory@gnu.org``.
480
556
In all cases, it is good to set ``Reply-To: bazaar@lists.canonical.com``,
487
563
The Bazaar team is happy to announce availability of a new
488
564
release of the bzr adaptive version control system.
489
Bazaar is part of the GNU system <http://gnu.org/>.
566
Bazaar <http://bazaar.canonical.com/> is a Canonical project and part
567
of the GNU project <http://gnu.org/> to produce a free operating
491
570
<<Summary paragraph from news>>
504
583
#. Make an announcement through <https://launchpad.net/bzr/+announce>
506
#. Announce on http://freshmeat.net/projects/bzr/
585
#. Announce on http://freecode.com/projects/bazaar-vcs
508
587
This should be done for beta releases and stable releases. If you do not
509
have a Freshmeat account yet, ask one of the existing admins.
588
have a Freecode account yet, ask one of the existing admins.
511
The purpose here is to point users to the latest stable release while still
512
publishing announcements for beta releases.
590
The purpose here is to point users to the latest stable release
591
(i.e. SRUs are excluded) while still publishing announcements for beta
514
594
There are several kinds of modifications that could be done there via the
515
595
``Administration`` box in the lower right area of the page:
542
622
python setup.py register
544
624
Remember to check the results afterward -- this should be done for
545
stable releases but not for beta releases.
625
stable releases but not for beta releases nor SRUs.
547
627
To be able to register the release you must create an account on
548
628
<http://pypi.python.org/pypi> and have one of the existing owners of