~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to doc/developers/releasing.txt

  • Committer: Vincent Ladeuil
  • Date: 2017-01-30 14:30:10 UTC
  • mfrom: (6615.3.7 merges)
  • mto: This revision was merged to the branch mainline in revision 6621.
  • Revision ID: v.ladeuil+lp@free.fr-20170130143010-p31t1ranfeqbaeki
Merge  2.7 into trunk including fix for bug #1657238

Show diffs side-by-side

added added

removed removed

Lines of Context:
53
53
   or improvements.
54
54
 
55
55
#. stable releases: name ``x.y.z`` where ``x.y.`` is the series and ``z``
56
 
   starts at 1 and is incremented. These releases are targeted at people
 
56
   starts at 0 and is incremented. These releases are targeted at people
57
57
   that want bugfixes only and no new features.
58
58
 
59
59
 
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, 5, 0, 'beta', SERIAL)
229
 
 
230
 
   For instance 2.5b5::
231
 
 
232
 
       version_info = (2, 5, 0, 'beta', 5)
 
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, 5, 0, '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.5b5, the following
242
 
   command should display a a single chuk diff for the 2.5b5 release::
 
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::
243
244
 
244
 
     bzr diff -rbzr-2.5b4.. doc/en/release-notes/bzr-2.5.txt
 
245
     bzr diff -rbzr-2.6b2.. 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.5b5* 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``::
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
503
513
----------------------------
504
514
 
505
515
#. Post to the ``bazaar@lists.canonical.com`` and
506
 
   ``bzr-packagers@list.launchpad.net`` lists, saying that the source has
 
516
   ``bzr-packagers@lists.launchpad.net`` lists, saying that the source has
507
517
   been frozen. Be extra clear that this is only a *source* release targeted
508
518
   at packagers and installer builders (see
509
519
   <https://bugs.launchpad.net/launchpad/+bug/645084>).  This is the cue for
517
527
   control the process as tightly so guessing the date is not appropriate.
518
528
 
519
529
   For the final beta release include in your announcement a notice of
520
 
   API and translation freezes nothing that public methods should not
 
530
   API and translation freezes noting that public methods should not
521
531
   be removed or changed and strings should not be added or changed.
522
532
 
523
533
#. Pause for a few days. 
527
537
----------------------
528
538
 
529
539
There is normally a delay of a few days after the source freeze to allow
530
 
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,
531
541
we have a releasable product.  The next step is to make it generally
532
542
available to the world.
533
543
 
534
544
#. Go to the release web page at <https://launchpad.net/bzr/x.y/x.y.z>
535
545
 
536
 
#. Announce on the `Bazaar website <http://bazaar.canonical.com/>`_.
537
 
   This page is edited via the lp:bzr-website branch. (Changes
 
546
#. Announce on the `Bazaar website <http://bazaar.canonical.com/>`_.  This
 
547
   page is edited in ``build.py`` in the lp:bzr-website branch. (Changes
538
548
   pushed to this branch are refreshed by a cron job on escudero.)
539
549
 
540
550
#. Check that the documentation for this release is available in
541
 
   <http://doc.bazaar.canonical.com>.  It should be automatically build when the
542
 
   branch is created, by a cron script ``update-bzr-docs`` on
543
 
   ``escudero``.
544
 
 
 
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 lp:bzr/2.7 bzr/bzr.2.7
 
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).
545
567
 
546
568
Announcing the release
547
569
----------------------
588
610
   mentioning the milestone URL <https://launchpad.net/bzr/+milestone/x.y.z>
589
611
   so people get an easy access to details.
590
612
 
591
 
#. Announce on http://freecode.com/projects/bazaar-vcs
 
613
#. Announce on https://freecode.com/projects/bazaar-vcs
592
614
 
593
615
   This should be done for beta releases and stable releases. If you do not
594
616
   have a Freecode account yet, ask one of the existing admins.
615
637
     series, create these links again. Check all links when doing other
616
638
     kinds of release.
617
639
 
618
 
   * Set direct download: When releasing a new stable release, this should
619
 
     point to the corresponding launchpad page:
620
 
     <https://launchpad.net/bzr/x.y/x.y.z/>
621
 
 
622
640
#. Update `<http://en.wikipedia.org/wiki/Bazaar_(software)>`_ -- this should
623
641
   be done for the stable and beta releases.
624
642
 
625
 
#. Update the python package index: <http://pypi.python.org/pypi/bzr> - best
626
 
   done by running ::
627
 
 
628
 
       python setup.py register
 
643
#. Update the python package index: <http://pypi.python.org/pypi/bzr>
 
644
 
 
645
   From the tarball created and tested earlier ::
 
646
 
 
647
     twine upload -s ../bzr-2.7.0.tar.gz
629
648
 
630
649
   Remember to check the results afterward -- this should be done for
631
650
   stable releases but not for beta releases nor SRUs.
632
651
 
633
 
   To be able to register the release you must create an account on
634
 
   <http://pypi.python.org/pypi> and have one of the existing owners of
635
 
   the project add you to the group.
 
652
   The ``twine`` command is provided by the ``twine`` package on Debian and
 
653
   Ubuntu.
 
654
 
 
655
   If in doubt, you can test with <https://testpypi.python.org/pypi> where
 
656
   you can register yourself, register the bzr project and upload (and then
 
657
   remove the upload and delete the project so a new release manager can
 
658
   enjoy the same facilities). If the project already exists, have one of
 
659
   the existing owners of the project add you to the group.
 
660
 
 
661
   To use the pypi test site, you need to record your credentials for an
 
662
   existing user (the registration process is manual and starts at
 
663
   <https://testpypi.python.org/pypi?%3Aaction=register_form>.
 
664
 
 
665
   Once registered, you can record your crdentials in your ``~/pypirc`` file
 
666
   with ::
 
667
 
 
668
     [testpypi]
 
669
     username:<login on testpypi>
 
670
     password:<password on testpypi>
 
671
     repository = https://testpypi.python.org/pypi
 
672
 
 
673
   Registering the bzr project if doesn't exist is achieved with::
 
674
 
 
675
     python setup.py -r https://testpypi.python.org/pypi register
 
676
 
 
677
  Uploading is done with::
 
678
 
 
679
    twine upload -r testpypi -s ../bzr-2.7.0.tar.gz
 
680
 
 
681
   To be able to upload the release you must create an account on
 
682
   <http://pypi.python.org/pypi> and have one of the existing owners of the
 
683
   project add you to the group and update your ``[pypi]`` section in your
 
684
   ``~/pypirc`` file.
636
685
 
637
686
 
638
687
Merging the released code back to trunk
707
756
   button and select the right Ubuntu release. As of September 2010, this
708
757
   means:
709
758
 
 
759
  * ``quantal`` for the 2.6 series,
 
760
  * ``precise`` for the 2.5 series,
710
761
  * ``oneiric`` for the 2.4 series,
711
762
  * ``natty`` for the 2.3 series,
712
763
  * ``maverick`` for the 2.2 series,