~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to doc/developers/releasing.txt

  • Committer: Jelmer Vernooij
  • Date: 2012-04-16 11:08:11 UTC
  • mfrom: (6521 +trunk)
  • mto: This revision was merged to the branch mainline in revision 6522.
  • Revision ID: jelmer@samba.org-20120416110811-0y996ihqy9o2bb1t
Merge bzr.dev.

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.
141
142
 
142
143
At the start of a release cycle
143
144
===============================
207
208
   found at <https://launchpad.net/bzr/+milestone/x.y.z>.
208
209
 
209
210
#. 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::
 
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::
212
213
 
213
214
     bzr merge lp:bzr/2.4
214
215
 
225
226
 
226
227
   For beta releases use::
227
228
 
228
 
       version_info = (2, 1, 0, 'beta', SERIAL)
229
 
 
230
 
   For instance 2.1b1::
231
 
 
232
 
       version_info = (2, 1, 0, 'beta', 1)
 
229
       version_info = (2, 6, 0, 'beta', SERIAL)
 
230
 
 
231
   For instance 2.6b1::
 
232
 
 
233
       version_info = (2, 6, 0, 'beta', 1)
233
234
 
234
235
   For stable releases use::
235
236
 
236
 
       version_info = (2, 1, 2, 'final', 0)
 
237
       version_info = (2, 6, 0, 'final', 0)
237
238
 
238
239
#. Update the ``./doc/en/release-notes/`` section for this release.
239
240
 
240
241
   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::
 
242
   the right section. For example, if you're releasing 2.6b1, the following
 
243
   command should display a a single chuk diff for the 2.6b1 release::
243
244
 
244
 
     bzr diff -rbzr-2.5b1.. doc/en/release-notes/bzr-2.5.txt
 
245
     bzr diff -rbzr-2.6b1.. doc/en/release-notes/bzr-2.6.txt
245
246
 
246
247
   Fill out the date and a description of the release under the existing
247
248
   header (the diff above will help you summarizing). If there isn't one,
248
249
   follow the instructions above for using the ``release-template.txt`` file
249
250
   and remind people that they should document their changes there ;)
250
251
 
251
 
   See *2.1.1* or similar for an example of what this looks like.
 
252
   See *2.6b1* or similar for an example of what this looks like.
252
253
 
253
254
#. Add or check the summary of the release into the "What's New" document.
254
255
 
 
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
 
255
265
#. To check that all bugs mentioned in the release notes are actually
256
266
   marked as closed in Launchpad, you can run
257
267
   ``tools/check-newsbugs.py``::
270
280
 
271
281
     BZR_PLUGIN_PATH=-site make po/bzr.pot
272
282
 
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.
 
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.
276
286
 
277
287
#. For stable releases update the translations::
278
288
 
352
362
 
353
363
#. Tag the new release::
354
364
 
355
 
     bzr tag bzr-2.3.1
 
365
     bzr tag bzr-2.6.0
356
366
 
357
367
#. Push those changes to a bzr branch that is public and accessible on the
358
368
   Internet. PQM will pull from this branch when it attempts to merge your
360
370
   release branch::
361
371
 
362
372
     bzr push
363
 
     bzr pqm-submit -m "(vila) Release 2.3.1 (Vincent Ladeuil)"
 
373
     bzr pqm-submit -m "(vila) Release 2.6.0 (Vincent Ladeuil)"
364
374
 
365
375
   Note that ``bzr push`` should mention updating one tag (which you just
366
376
   created). If it doesn't, double-check that you created (and pushed) this
450
460
the *last* beta for a given ``x.y`` series (from trunk aka lp:bzr), you need
451
461
to setup *two* branches for the next cycle:
452
462
 
453
 
#. ``lp:bzr`` needs to be opened for the next *series* ``x.(y+1)``
 
463
#. ``lp:bzr`` needs to be opened for the next *series* ``x.(y+1)``.
454
464
 
455
465
#. ``lp:bzr/x.y`` needs to be opened for the next *release* ``x.y.0`` in the
456
466
   series. Since this is first real use of ``lp:bzr/x.y``, this is also the
466
476
 
467
477
In a nutshell:
468
478
 
469
 
#. Create or update the ``x.y`` PQM branch based on whatever
470
 
   revision you want to release
471
 
 
472
479
#. Open ``lp:bzr`` for ``x.(y+1)``
473
480
 
 
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
 
474
488
#. Release ``x.y.0`` from ``lp:bzr/x.y``
475
489
 
476
490
#. Open ``lp:bzr/x.y`` for bug fixes
477
491
 
478
 
You also need to ensure Launchpad is set up to import/export
479
 
translations for the new branch and inform translators.
 
492
You also need to ensure Launchpad is set up to import/export translations
 
493
for the new branch and inform translators.
480
494
 
481
 
#. Push a branch::
 
495
#. Push the last beta release to a new branch::
482
496
 
483
497
     bzr push lp:~bzr-core/bzr/bzr-translations-export-x.y
484
498
 
513
527
   control the process as tightly so guessing the date is not appropriate.
514
528
 
515
529
   For the final beta release include in your announcement a notice of
516
 
   API and translation freezes nothing that public methods should not
 
530
   API and translation freezes noting that public methods should not
517
531
   be removed or changed and strings should not be added or changed.
518
532
 
519
533
#. Pause for a few days. 
523
537
----------------------
524
538
 
525
539
There is normally a delay of a few days after the source freeze to allow
526
 
for binaries to be built on various platforms.  Once they have been built,
 
540
for binaries to be built for various platforms. Once they have been built,
527
541
we have a releasable product.  The next step is to make it generally
528
542
available to the world.
529
543
 
534
548
   pushed to this branch are refreshed by a cron job on escudero.)
535
549
 
536
550
#. Check that the documentation for this release is available in
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
 
 
 
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 ``update-bzr-docs`` 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).
541
567
 
542
568
Announcing the release
543
569
----------------------
581
607
   Feel free to tweak this to your taste.
582
608
 
583
609
#. 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.
584
612
 
585
613
#. Announce on http://freecode.com/projects/bazaar-vcs
586
614
 
609
637
     series, create these links again. Check all links when doing other
610
638
     kinds of release.
611
639
 
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
 
 
616
640
#. Update `<http://en.wikipedia.org/wiki/Bazaar_(software)>`_ -- this should
617
641
   be done for the stable and beta releases.
618
642