/brz/remove-bazaar

To get this branch, use:
bzr branch http://gegoxaren.bato24.eu/bzr/brz/remove-bazaar

« back to all changes in this revision

Viewing changes to doc/developers/releasing.txt

  • Committer: Ian Clatworthy
  • Date: 2009-03-20 04:16:24 UTC
  • mto: (4171.1.1 ianc-integration)
  • mto: This revision was merged to the branch mainline in revision 4173.
  • Revision ID: ian.clatworthy@canonical.com-20090320041624-x34ct8j7sa80bmn8
sha1 calculation done by workingtree layer now

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
Releasing Bazaar
 
2
================
 
3
 
 
4
This document describes the processes for making and announcing a Bazaar
 
5
release, and managing the release process.  This is just one phase of the 
 
6
`overall development cycle <cycle.html>`_, but it's the most complex part.
 
7
This document gives a checklist you can follow from start to end in one
 
8
go.
 
9
 
 
10
.. contents::
 
11
 
 
12
Preparing the tree for release
 
13
------------------------------
 
14
 
 
15
.. Was previously at http://bazaar-vcs.org/ReleaseChecklist
 
16
 
 
17
#. Make a local branch for preparing this release.  (Only for the first 
 
18
   release in a series, otherwise you should already have a branch.) ::
 
19
 
 
20
     bzr branch trunk prepare-1.14
 
21
 
 
22
#. Download the pqm plugin and install it into your ``~/.bazaar/plugins``::
 
23
 
 
24
     bzr branch lp:bzr-pqm ~/.bazaar/plugins/pqm
 
25
 
 
26
#. Configure pqm-submit for this branch, with a section like this in
 
27
   ``~/.bazaar/locations.conf``::
 
28
 
 
29
        [/home/mbp/bzr/prepare-1.14]
 
30
        pqm_email = Canonical PQM <pqm@bazaar-vcs.org>
 
31
        submit_branch = http://bazaar-vcs.org/bzr/bzr.1.14
 
32
        public_branch = http://bazaar.your-domain.com/bzr
 
33
        submit_to = bazaar@lists.canonical.com
 
34
        smtp_server = mail.your-domain.com:25
 
35
 
 
36
    Please see <http://doc.bazaar-vcs.org/latest/developers/HACKING.html#an-overview-of-pqm> for more details on PQM
 
37
 
 
38
#. In the release branch, update  ``version_info`` in
 
39
   ``./bzrlib/__init__.py``.  Check the output of ``bzr --version``.
 
40
 
 
41
#. Add the date and release number to ``./NEWS``
 
42
 
 
43
#. To check that all bugs mentioned in ``./NEWS`` are actually marked as
 
44
   closed in Launchpad, you can run ``tools/check-newsbugs.py``::
 
45
 
 
46
     ./tools/check-newsbugs.py NEWS
 
47
 
 
48
#. Summarize into one or two paragraphs what's new in this release.
 
49
 
 
50
#. Commit these changes to the release branch, using a command like::
 
51
    
 
52
     bzr commit -m "Release 1.14." 
 
53
   
 
54
   The diff before you commit will be something like::
 
55
 
 
56
     === modified file 'NEWS'
 
57
     --- NEWS        2008-09-17 23:09:18 +0000
 
58
     +++ NEWS        2008-09-23 16:14:54 +0000
 
59
     @@ -4,6 +4,23 @@
 
60
     
 
61
      .. contents::
 
62
     
 
63
     +bzr 1.7 2008-09-23
 
64
     +------------------
 
65
     +
 
66
     +This release includes many bug fixes and a few performance and feature
 
67
     +improvements.  ``bzr rm`` will now scan for missing files and remove them,
 
68
     +like how ``bzr add`` scans for unknown files and adds them. A bit more
 
69
     +polish has been applied to the stacking code. The b-tree indexing code has
 
70
     +been brought in, with an eye on using it in a future repository format.
 
71
     +There are only minor installer changes since bzr-1.7rc2.
 
72
     +
 
73
      bzr 1.7rc2 2008-09-17
 
74
      ---------------------
 
75
     
 
76
     
 
77
     === modified file 'bzrlib/__init__.py'
 
78
     --- bzrlib/__init__.py  2008-09-16 21:39:28 +0000
 
79
     +++ bzrlib/__init__.py  2008-09-23 16:14:54 +0000
 
80
     @@ -41,7 +41,7 @@
 
81
      # Python version 2.0 is (2, 0, 0, 'final', 0)."  Additionally we use a
 
82
      # releaselevel of 'dev' for unreleased under-development code.
 
83
     
 
84
     -version_info = (1, 7, 0, 'candidate', 2)
 
85
     +version_info = (1, 7, 0, 'final', 0)
 
86
     
 
87
     
 
88
      # API compatibility version: bzrlib is currently API compatible with 1.7.
 
89
      
 
90
#. Tag the new release::
 
91
 
 
92
     bzr tag bzr-1.14
 
93
 
 
94
#. Push those changes to a bzr reposistory that is public and accessible on
 
95
   the Internet. PQM will pull from this repository when it attempts to merge
 
96
   your changes. Then submit those changes to PQM for merge into the
 
97
   appropriate release branch::
 
98
 
 
99
     bzr push
 
100
     bzr pqm-submit -m "(mbp) prepare 1.14"
 
101
 
 
102
#. When PQM succeeds, pull down the master release branch.
 
103
 
 
104
 
 
105
Making the source tarball
 
106
-------------------------
 
107
 
 
108
#. Change into the source directory and run ::
 
109
  
 
110
     make dist
 
111
 
 
112
   This also makes a zip file, which is easier to access on Microsoft
 
113
   Windows.
 
114
 
 
115
#. Now we'll try expanding this tarball and running the test suite
 
116
   to check for packaging problems::
 
117
 
 
118
     make check-dist-tarball
 
119
 
 
120
 
 
121
Publishing the release
 
122
----------------------
 
123
 
 
124
Now you have the releasable product.  The next step is making it
 
125
available to the world.
 
126
 
 
127
#. In <https://launchpad.net/bzr/> click the "Release series" for this
 
128
   series, to take you to e.g. <https://launchpad.net/bzr/1.1>.  Then
 
129
   click "Register a release", and add information about this release.
 
130
 
 
131
#. Within that release, upload the source tarball and zipfile and the GPG
 
132
   signature.  Or, if you prefer, use the
 
133
   ``tools/packaging/lp-upload-release`` script to do this.
 
134
 
 
135
#. Link from http://bazaar-vcs.org/Download to the tarball and signature.
 
136
 
 
137
#. Announce on the `Bazaar home page <http://bazaar-vcs.org/>`_.
 
138
 
 
139
#. Check that the documentation for this release is available in 
 
140
   <http://doc.bazaar-vcs.org>.  It should be automatically build when the 
 
141
   branch is created, by a cron script ``update-bzr-docs`` on
 
142
   ``escudero``.
 
143
 
 
144
 
 
145
Announcing the release
 
146
----------------------
 
147
 
 
148
Now that the release is publicly available, tell people about it.
 
149
 
 
150
#. Make an announcement mail.
 
151
 
 
152
   For release candidates, this is sent to the ``bazaar-announce`` and
 
153
   ``bazaar`` lists.  For final releases, it should also be cc'd to 
 
154
   ``info-gnu@gnu.org``, ``python-announce-list@python.org``, 
 
155
   ``bug-directory@gnu.org``.  In both cases, it is good to set
 
156
   ``Reply-To: bazaar@lists.canonical.com``, so that people who reply to
 
157
   the announcement don't spam other lists.
 
158
 
 
159
   The announce mail will look something like this:
 
160
   
 
161
    | Subject: bzr x.yy released!
 
162
    | 
 
163
    | <<Summary paragraph from news>>
 
164
    |
 
165
    | The Bazaar team is happy to announce availability of a new 
 
166
    | release of the bzr adaptive version control system.
 
167
    |
 
168
    | Thanks to everyone who contributed patches, suggestions, and
 
169
    | feedback.
 
170
    | 
 
171
    | Bazaar is now available for download from 
 
172
    | http://bazaar-vcs.org/Download as a source tarball; packages 
 
173
    | for various systems will be available soon.
 
174
    | 
 
175
    | <<NEWS section from this release back to the last major release>>
 
176
 
 
177
#. Make an announcement through <https://launchpad.net/bzr/+announce>
 
178
 
 
179
#. Update the IRC channel topic. Use the ``/topic`` command to do this,
 
180
   ensuring the new topic text keeps the project name, web site link, etc.
 
181
 
 
182
#. Announce on http://freshmeat.net/projects/bzr/
 
183
   
 
184
   This should be done for both release candidates and final releases. If
 
185
   you do not have a Freshmeat account yet, ask one of the existing
 
186
   admins.
 
187
 
 
188
#. Update http://en.wikipedia.org/wiki/Bazaar_(software) -- this should be done
 
189
for final releases but not for Release Candidates.
 
190
 
 
191
#. Update the python package index: <http://pypi.python.org/pypi/bzr> - best
 
192
   done by running ::
 
193
 
 
194
       python setup.py register
 
195
 
 
196
   Remember to check the results afterwards.
 
197
 
 
198
   To be able to register the release you must create an account on
 
199
   <http://pypi.python.org/pypi> and have one of the existing owners of
 
200
   the project add you to the group.
 
201
 
 
202
 
 
203
Merging the released code back to trunk
 
204
---------------------------------------
 
205
 
 
206
Merge the release branch back into the trunk.  Check that changes in NEWS
 
207
were merged into the right sections.  If it's not already done, advance
 
208
the version number in ``bzr`` and ``bzrlib/__init__.py``.  Submit this
 
209
back into pqm for bzr.dev.
 
210
 
 
211
You should also merge (not pull) the release branch into
 
212
``lp:~bzr/bzr/current``, so that branch contains the current released code
 
213
at any time.
 
214
 
 
215
 
 
216
See also
 
217
--------
 
218
 
 
219
 * `Packaging into the bzr PPA <ppa.html>`_ to make and publish Ubuntu
 
220
   packages.
 
221
 * `Bazaar Developer Document Catalog <index.html>`_
 
222
 * `Development cycles <cycle.html>`_: things that happen during the cycle
 
223
   before the actual release.
 
224
 
 
225
 
 
226
..
 
227
   vim: filetype=rst textwidth=74 ai shiftwidth=4