~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to doc/developers/releasing.txt

  • Committer: Jelmer Vernooij
  • Date: 2012-02-20 12:19:29 UTC
  • mfrom: (6437.23.11 2.5)
  • mto: (6581.1.1 trunk)
  • mto: This revision was merged to the branch mainline in revision 6582.
  • Revision ID: jelmer@samba.org-20120220121929-7ni2psvjoatm1yp4
Merge bzr/2.5.

Show diffs side-by-side

added added

removed removed

Lines of Context:
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>.
208
208
 
 
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::
 
212
 
 
213
     bzr merge lp:bzr/2.4
 
214
 
 
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.
 
220
 
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
225
237
 
226
238
#. Update the ``./doc/en/release-notes/`` section for this release.
227
239
 
 
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::
 
243
 
 
244
     bzr diff -rbzr-2.5b1.. doc/en/release-notes/bzr-2.5.txt
 
245
 
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 ;)
231
250
 
232
251
   See *2.1.1* or similar for an example of what this looks like.
233
252
 
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).
 
268
 
 
269
#. For beta releases update the translation template::
 
270
 
 
271
     BZR_PLUGIN_PATH=-site make po/bzr.pot
 
272
 
 
273
   This is especially important for the final beta release which is
 
274
   when translations are frozen and translators are requested to make
 
275
   the translations.
 
276
 
 
277
#. For stable releases update the translations::
 
278
 
 
279
     bzr merge lp:~bzr-core/bzr/bzr-translations-export-x.y
248
280
 
249
281
#. Commit these changes to the release branch, using a command like::
250
282
 
330
362
     bzr push
331
363
     bzr pqm-submit -m "(vila) Release 2.3.1 (Vincent Ladeuil)"
332
364
 
 
365
   Note that ``bzr push`` should mention updating one tag (which you just
 
366
   created). If it doesn't, double-check that you created (and pushed) this
 
367
   tag.
 
368
 
333
369
   Or with hydrazine::
334
370
 
335
371
     bzr lp-propose -m "Release 1.14" --approve lp:bzr/1.14
357
393
   ``BZR_DISABLE_PLUGINS`` or ``BZR_PLUGIN_PATH=-site`` to disable one or
358
394
   all plugins.
359
395
 
 
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::
 
400
 
 
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
 
404
 
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
398
443
a new series.
399
444
 
 
445
The final beta - branching and translations
 
446
-------------------------------------------
 
447
 
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
427
475
 
428
476
#. Open ``lp:bzr/x.y`` for bug fixes
429
477
 
 
478
You also need to ensure Launchpad is set up to import/export
 
479
translations for the new branch and inform translators.
 
480
 
 
481
#. Push a branch::
 
482
 
 
483
     bzr push lp:~bzr-core/bzr/bzr-translations-export-x.y
 
484
 
 
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.
 
489
 
 
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``.
 
494
 
 
495
#. The series is now frozen for strings and API, see below for adding
 
496
   that to the announcement.
 
497
 
430
498
Announcing the source freeze
431
499
----------------------------
432
500
 
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.
439
 
 
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.
 
508
 
 
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.
 
514
 
 
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.
 
518
 
 
519
#. Pause for a few days. 
441
520
 
442
521
 
443
522
Publishing the release
467
546
 
468
547
#. Make an announcement mail.
469
548
 
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.
473
 
 
474
 
   Once the installers are available, the mail can be sent to the
475
 
   ``bazaar-announce`` list too.
476
 
 
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.
 
551
 
 
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``.
479
555
 
480
556
   In all cases, it is good to set ``Reply-To: bazaar@lists.canonical.com``,
486
562
 
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/>.
 
565
 
 
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
 
568
      system.
490
569
 
491
570
      <<Summary paragraph from news>>
492
571
 
503
582
 
504
583
#. Make an announcement through <https://launchpad.net/bzr/+announce>
505
584
 
506
 
#. Announce on http://freshmeat.net/projects/bzr/
 
585
#. Announce on http://freecode.com/projects/bazaar-vcs
507
586
 
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.
510
589
 
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
 
592
   releases.
513
593
 
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
543
623
 
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.
546
626
 
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