~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to doc/developers/releasing.txt

  • Committer: Vincent Ladeuil
  • Date: 2012-02-24 12:15:02 UTC
  • mto: (6437.23.15 2.5)
  • mto: This revision was merged to the branch mainline in revision 6475.
  • Revision ID: v.ladeuil+lp@free.fr-20120224121502-zd0v1gxfe4kvezm3
Open 2.5.1 for bugfixes

Show diffs side-by-side

added added

removed removed

Lines of Context:
138
138
       cp template.txt bzr-x.y.txt  # e.g. bzr-2.6.txt
139
139
       bzr add bzr-x.y.txt
140
140
 
141
 
#. Update ``doc/en/index.txt`` to point to the new whats-new file.
142
141
 
143
142
At the start of a release cycle
144
143
===============================
208
207
   found at <https://launchpad.net/bzr/+milestone/x.y.z>.
209
208
 
210
209
#. Merge into your branch all previous stable series fixes that haven't been
211
 
   merged yet. For example, if you're releasing 2.6.x, make sure the fixes
212
 
   on 2.5, 2.4, 2.3, etc have already been merged up::
 
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::
213
212
 
214
213
     bzr merge lp:bzr/2.4
215
214
 
226
225
 
227
226
   For beta releases use::
228
227
 
229
 
       version_info = (2, 6, 0, 'beta', SERIAL)
230
 
 
231
 
   For instance 2.6b1::
232
 
 
233
 
       version_info = (2, 6, 0, 'beta', 1)
 
228
       version_info = (2, 1, 0, 'beta', SERIAL)
 
229
 
 
230
   For instance 2.1b1::
 
231
 
 
232
       version_info = (2, 1, 0, 'beta', 1)
234
233
 
235
234
   For stable releases use::
236
235
 
237
 
       version_info = (2, 6, 0, 'final', 0)
 
236
       version_info = (2, 1, 2, 'final', 0)
238
237
 
239
238
#. Update the ``./doc/en/release-notes/`` section for this release.
240
239
 
241
240
   Check that all news entries related to this release have been added in
242
 
   the right section. For example, if you're releasing 2.6b2, the following
243
 
   command should display a a single chuk diff for the 2.6b2 release::
 
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
243
 
245
 
     bzr diff -rbzr-2.6b2.. doc/en/release-notes/bzr-2.6.txt
 
244
     bzr diff -rbzr-2.5b1.. doc/en/release-notes/bzr-2.5.txt
246
245
 
247
246
   Fill out the date and a description of the release under the existing
248
247
   header (the diff above will help you summarizing). If there isn't one,
249
248
   follow the instructions above for using the ``release-template.txt`` file
250
249
   and remind people that they should document their changes there ;)
251
250
 
252
 
   See *2.6b1* or similar for an example of what this looks like.
 
251
   See *2.1.1* or similar for an example of what this looks like.
253
252
 
254
253
#. Add or check the summary of the release into the "What's New" document.
255
254
 
256
 
  If this is the first release in a new series make sure to update the
257
 
  introduction mentioning:
258
 
 
259
 
  * the date of this first release,
260
 
  * until when the series is expected to be supported.
261
 
 
262
 
  Looking at ``bzr annotate`` for previous series should give you the right
263
 
  hints. The ``doc/en/_templates/index.html`` file should also be updated.
264
 
 
265
255
#. To check that all bugs mentioned in the release notes are actually
266
256
   marked as closed in Launchpad, you can run
267
257
   ``tools/check-newsbugs.py``::
280
270
 
281
271
     BZR_PLUGIN_PATH=-site make po/bzr.pot
282
272
 
283
 
   This is especially important for the final beta release which is when
284
 
   translations are frozen and translators are requested (see `The final
285
 
   beta - branching and translations`_) to make the translations.
 
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.
286
276
 
287
277
#. For stable releases update the translations::
288
278
 
362
352
 
363
353
#. Tag the new release::
364
354
 
365
 
     bzr tag bzr-2.6.0
 
355
     bzr tag bzr-2.3.1
366
356
 
367
357
#. Push those changes to a bzr branch that is public and accessible on the
368
358
   Internet. PQM will pull from this branch when it attempts to merge your
370
360
   release branch::
371
361
 
372
362
     bzr push
373
 
     bzr pqm-submit -m "(vila) Release 2.6.0 (Vincent Ladeuil)"
 
363
     bzr pqm-submit -m "(vila) Release 2.3.1 (Vincent Ladeuil)"
374
364
 
375
365
   Note that ``bzr push`` should mention updating one tag (which you just
376
366
   created). If it doesn't, double-check that you created (and pushed) this
460
450
the *last* beta for a given ``x.y`` series (from trunk aka lp:bzr), you need
461
451
to setup *two* branches for the next cycle:
462
452
 
463
 
#. ``lp:bzr`` needs to be opened for the next *series* ``x.(y+1)``.
 
453
#. ``lp:bzr`` needs to be opened for the next *series* ``x.(y+1)``
464
454
 
465
455
#. ``lp:bzr/x.y`` needs to be opened for the next *release* ``x.y.0`` in the
466
456
   series. Since this is first real use of ``lp:bzr/x.y``, this is also the
476
466
 
477
467
In a nutshell:
478
468
 
 
469
#. Create or update the ``x.y`` PQM branch based on whatever
 
470
   revision you want to release
 
471
 
479
472
#. Open ``lp:bzr`` for ``x.(y+1)``
480
473
 
481
 
#. Create or update the ``x.y`` PQM branch based on whatever revision you
482
 
   want to release. Since it takes time to create the PQM branch for the new
483
 
   series you should plan to get it created a few days before you need it
484
 
   and seed it with the revision from trunk you want to base your release of
485
 
   (ask a LOSA for pulling this revision from trunk and pushing it to the
486
 
   series branch (``lp:bzr/x.y``) when you're ready).
487
 
 
488
474
#. Release ``x.y.0`` from ``lp:bzr/x.y``
489
475
 
490
476
#. Open ``lp:bzr/x.y`` for bug fixes
491
477
 
492
 
You also need to ensure Launchpad is set up to import/export translations
493
 
for the new branch and inform translators.
 
478
You also need to ensure Launchpad is set up to import/export
 
479
translations for the new branch and inform translators.
494
480
 
495
 
#. Push the last beta release to a new branch::
 
481
#. Push a branch::
496
482
 
497
483
     bzr push lp:~bzr-core/bzr/bzr-translations-export-x.y
498
484
 
527
513
   control the process as tightly so guessing the date is not appropriate.
528
514
 
529
515
   For the final beta release include in your announcement a notice of
530
 
   API and translation freezes noting that public methods should not
 
516
   API and translation freezes nothing that public methods should not
531
517
   be removed or changed and strings should not be added or changed.
532
518
 
533
519
#. Pause for a few days. 
537
523
----------------------
538
524
 
539
525
There is normally a delay of a few days after the source freeze to allow
540
 
for binaries to be built for various platforms. Once they have been built,
 
526
for binaries to be built on various platforms.  Once they have been built,
541
527
we have a releasable product.  The next step is to make it generally
542
528
available to the world.
543
529
 
548
534
   pushed to this branch are refreshed by a cron job on escudero.)
549
535
 
550
536
#. Check that the documentation for this release is available in
551
 
   <http://doc.bazaar.canonical.com>.  It should be automatically build when
552
 
   the branch is created, by a cron script ``update-bzr-docs`` on
553
 
   ``escudero``. When the first release is created in a new series, a branch
554
 
   needs to be created on escudero::
555
 
 
556
 
     ssh escudero.canonical.com
557
 
     sudo -u bzr-web -s
558
 
     cd /srv/doc.bazaar.canonical.com/
559
 
     bzr branch http://bazaar.launchpad.net/~bzr-pqm/bzr/2.5 bzr.2.5
560
 
 
561
 
   And the ``bzr/bin/update-bzr-docs`` script needs to refer to it.
562
 
 
563
 
   The ``lp:bzr-alldocs`` branch also needs to be updated when a new series
564
 
   is introduced, see the ``README`` file there for more instructions
565
 
   (looking at the branch history is also a good way to understand what
566
 
   needs to be done and to document any policy changes).
 
537
   <http://doc.bazaar.canonical.com>.  It should be automatically build when the
 
538
   branch is created, by a cron script ``update-bzr-docs`` on
 
539
   ``escudero``.
 
540
 
567
541
 
568
542
Announcing the release
569
543
----------------------
607
581
   Feel free to tweak this to your taste.
608
582
 
609
583
#. Make an announcement through <https://launchpad.net/bzr/+announce>
610
 
   mentioning the milestone URL <https://launchpad.net/bzr/+milestone/x.y.z>
611
 
   so people get an easy access to details.
612
584
 
613
585
#. Announce on http://freecode.com/projects/bazaar-vcs
614
586
 
637
609
     series, create these links again. Check all links when doing other
638
610
     kinds of release.
639
611
 
 
612
   * Set direct download: When releasing a new stable release, this should
 
613
     point to the corresponding launchpad page:
 
614
     <https://launchpad.net/bzr/x.y/x.y.z/>
 
615
 
640
616
#. Update `<http://en.wikipedia.org/wiki/Bazaar_(software)>`_ -- this should
641
617
   be done for the stable and beta releases.
642
618
 
725
701
   button and select the right Ubuntu release. As of September 2010, this
726
702
   means:
727
703
 
728
 
  * ``quantal`` for the 2.6 series,
729
 
  * ``precise`` for the 2.5 series,
730
704
  * ``oneiric`` for the 2.4 series,
731
705
  * ``natty`` for the 2.3 series,
732
706
  * ``maverick`` for the 2.2 series,