Status: | Merged |
---|---|
Approved by: | Vincent Ladeuil |
Approved revision: | no longer in the source branch. |
Merged at revision: | 6051 |
Proposed branch: | lp:~vila/bzr/rm-tweaks |
Merge into: | lp:bzr |
Diff against target: |
625 lines (+261/-146) 3 files modified
doc/developers/releasing.txt (+233/-146) doc/en/release-notes/bzr-2.5.txt (+2/-0) doc/en/whats-new/template.txt (+26/-0) |
To merge this branch: | bzr merge lp:~vila/bzr/rm-tweaks |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Martin Pool | Needs Fixing | ||
bzr-core | Pending | ||
Review via email: mp+68274@code.launchpad.net |
Commit message
Release instructions refresh.
Description of the change
I've refreshed the release instructions based on my past
experience as RM these last months.
I think I've read this document a bit too much to not be biased
so feel free to propose your modifications as branches so I can
easily merge them.
Martin Pool (mbp) wrote : | # |
Also, thanks for improving this.
Vincent Ladeuil (vila) wrote : | # |
Inserting a comment to get separate inline diffs ;)
Vincent Ladeuil (vila) wrote : | # |
> [aside] perhaps it's out of scope for this document but I wonder if we should
> split the more checklist like parts from the discussion.
I thought about it too and that's my ultimate goal: a proper
checklist with references to the discussion.
I wanted to cleanup the basis first. I'll look into making (and
validating) such checklists during the next releases.
>
> It's spelled 'targeted' not 'targetted' despite what you may expect; also not
> 'targetting'.
Thanks for catching this (and the others), I've fixed them and
then run a spell-checker that revealed a few others.
>
> > As of July 2010, we mantain four series (and one that is about to be EOLed).
>
> If you're updating this I guess you mean 2011?
Fixed.
> > 145 +#. the death of a series should be planned ahead of time
>
> We discussed this and I believe we settled on normally stopping
> them after 18 months, though (as this para says) still leaving
> open the option to do an update if some later critical bug gets
> fixed. That gives up to four in flight which is enough.
[discussion]
Yup, that's the idea, I'm not sure 4 will be enough to go from
one LTS to the other but the rules about doing less and less
releases for older stable releases should allow us to reach the
important goals:
- maintain LTS releases,
- don't release stuff nobody cares about
By 'we settled on' do you mean the 'whether we keep supporting
LTS directly or via the ppa' is not an open question anymore ?
> > A word of caution: the instructions above works well for all releases but
> there is one special case that requires a bit more care: when you release
> the *last* beta for a given ``x.y`` series (from trunk aka lp:bzr), you need
> to setup *two* branches for the next cycle:
>
> Since this was the main confusion this time I think perhaps it deserves a
> section of its own and a more explicit list of steps:
>
> * increment the version on trunk
> * tag the version just before you bumped the version
> * make a pqm branch from there
> * release that tagged version
Well, two of the last releases revealed issues at this precise
step, making it necessary to re-tag or or bump the version
(whatever works here depends on what has already been PQM'ed).
Given that both of them (re-tag or bump) are "heavy" it's better
to avoid them. That's what makes the "don't touch the branch, the
RM is working" window longer.
> * announce that trunk is now going into the next series
> (maybe more details)
>
> I think this avoids people ever getting changes landed to the wrong place.
>
Well, you can't forbid people inserting their news entry in the
wrong section (or even file) nor landing on the wrong branch.
We should make it easier to avoid the trap but we can't rewrite
history, if a proposal was made *before* the release, the news
entry cannot be in the right section.
The bit I missed was that *two* branches needed to be opened
concurrently and I mistakenly left trunk dandling while setting
up the 2.4 branch.
> (perhaps some refinement of this)
See inline MP diffs ;)
>
> > As of July 2011, bzr has applied to the technical board to be added to the
> `MicroReleaseEx
> <https:/
Martin Pool (mbp) wrote : | # |
> > We discussed this and I believe we settled on normally stopping
> > them after 18 months, though (as this para says) still leaving
> > open the option to do an update if some later critical bug gets
> > fixed. That gives up to four in flight which is enough.
>
> [discussion]
> Yup, that's the idea, I'm not sure 4 will be enough to go from
> one LTS to the other but the rules about doing less and less
> releases for older stable releases should allow us to reach the
> important goals:
>
> - maintain LTS releases,
> - don't release stuff nobody cares about
>
> By 'we settled on' do you mean the 'whether we keep supporting
> LTS directly or via the ppa' is not an open question anymore ?
I think for LTSes we should
- keep the bzr branch alive - we don't need to merge every fix there but we should merge safe serious fixes
- make releases from that branch that are pushed into SRUs
- also publish a PPA with builds of the current stable release of bzr (where that is possible; the python 2.6 transition is a case where it's not, so we'll stick at 2.3)
Does that answer the question?
Martin Pool (mbp) wrote : | # |
+Since September 2010, bzr has receive approval by the technical
"Has received"
Vincent Ladeuil (vila) wrote : | # |
> > By 'we settled on' do you mean the 'whether we keep supporting
> > LTS directly or via the ppa' is not an open question anymore ?
>
> I think for LTSes we should
> - keep the bzr branch alive - we don't need to merge every fix there but we
> should merge safe serious fixes
> - make releases from that branch that are pushed into SRUs
> - also publish a PPA with builds of the current stable release of bzr (where
> that is possible; the python 2.6 transition is a case where it's not, so we'll
> stick at 2.3)
>
> Does that answer the question?
Mostly, I agree with your rules but we didn't SRU for 2.0 and we probably won't. The actual situation is therefore that the stable PPA is still the way to go for some users. No big deal. I've tweaked the sentence to clarify.
Vincent Ladeuil (vila) wrote : | # |
sent to pqm by email
Preview Diff
1 | === modified file 'doc/developers/releasing.txt' |
2 | --- doc/developers/releasing.txt 2011-05-26 20:42:13 +0000 |
3 | +++ doc/developers/releasing.txt 2011-08-04 11:48:39 +0000 |
4 | @@ -2,79 +2,141 @@ |
5 | ################ |
6 | |
7 | This document describes the processes for making and announcing a Bazaar |
8 | -release, and managing the release process. This is just one phase of |
9 | -the `overall development cycle |
10 | -<http://doc.bazaar.canonical.com/developers/cycle.html>`_, (go re-read |
11 | -this document to ensure it hasn't been updated) but it's the most |
12 | -complex part. This document gives a checklist you can follow from start |
13 | -to end in one go. |
14 | +release, and managing the release process. This is just one phase of the |
15 | +`overall development cycle |
16 | +<http://doc.bazaar.canonical.com/developers/cycle.html>`_, (go re-read this |
17 | +document to ensure it hasn't been updated since you last read it) but it's |
18 | +the most complex part. |
19 | + |
20 | +If you're doing your first release you can follow this document and read |
21 | +each step explanation. It's also a good practice to read it for any release |
22 | +to ensure you don't miss a step and to update it as the release process |
23 | +evolves. |
24 | |
25 | If you're helping the Release Manager (RM) for one reason or another, you |
26 | may notice that he didn't follow that document scrupulously. He may have |
27 | good reasons to do that but he may also have missed some parts. |
28 | |
29 | -Follow the document yourself and don't hesitate to create the missing |
30 | -milestones for example (we tend to forget these ones a lot). |
31 | - |
32 | .. contents:: |
33 | |
34 | |
35 | Preconditions |
36 | ============= |
37 | |
38 | +#. PQM access rights (or you won't be able to land any change) |
39 | + |
40 | #. Download the pqm plugin and install it into your ``~/.bazaar/plugins``:: |
41 | |
42 | bzr branch lp:bzr-pqm ~/.bazaar/plugins/pqm |
43 | |
44 | +#. Alternatively, you can download and install ``lp:hydrazine`` (the main |
45 | + difference is that hydrazine requires the branch to land to be hosted on |
46 | + launchpad). |
47 | + |
48 | +What do we release |
49 | +================== |
50 | + |
51 | +In this document, we're talking about source releases only, packages and |
52 | +installers are built from this but we won't talk about them here. |
53 | + |
54 | +Every release is part of a series, ``bzr-2.4.1`` is part of series ``2.4``. |
55 | + |
56 | +We do two different kind of releases: the betas releases and the stable |
57 | +releases for a given series. |
58 | + |
59 | +For a given series, releases will be done to deliver new versions of bzr to |
60 | +different kinds of users: |
61 | + |
62 | +#. beta releases: named ``x.ybn`` where ``x.y`` is the series and ``n`` |
63 | + starts at 1 and is incremented. These releases are targeted to beta |
64 | + testers who don't want to run from source but are interested in features |
65 | + or improvements. |
66 | + |
67 | +#. stable releases: name ``x.y.z`` where ``x.y.`` is the series and ``z`` |
68 | + starts at 1 and is incremented. These releases are targeted at people |
69 | + that want bugfixes only and no new features. |
70 | + |
71 | + |
72 | +Differences in the release process between beta and stable release will be |
73 | +mentioned when needed. |
74 | |
75 | When do we relase ? |
76 | =================== |
77 | |
78 | -As of October 2010, we mantain four series. Concurrently releasing them |
79 | -all at the same time makes it harder to shorten the delay between the |
80 | -source availability and the package building longer than necessary (we |
81 | -delay the official announcement until most of our users can install the new |
82 | -release). |
83 | +As of July 2011, we maintain four series (and one that is about to be EOLed). |
84 | +Concurrently releasing them all at the same time makes it harder to shorten |
85 | +the delay between the source availability and the package building longer |
86 | +than necessary (we delay the official announcement until most of our users |
87 | +can install the new release). |
88 | |
89 | In order to continue to do time-based releases, we need to plan the |
90 | releases by series to minimize the collisions. In the end, it's the Release |
91 | Manager call to decide whether he prefers to do all releases at once |
92 | though, so the rules presented here are a conservative approach. |
93 | |
94 | -We want to respect the following rules:: |
95 | - |
96 | - #. as much as possible releases should not disturb development, and |
97 | - ongoing development should not disturb releases, |
98 | - |
99 | - #. the most recent development series should release once a month during |
100 | - the beta period (see `Development cycles <cycle.html>`_ for more |
101 | - details), |
102 | - |
103 | - #. the most recent stable series should release every other month (based |
104 | - on the amount of bug fixes, this can be shorter or longer depending on |
105 | - the bugs importance), |
106 | - |
107 | - #. previous series should relesase on a regular basis without interfering |
108 | - with the most recent series with a decreasing order of priority (again |
109 | - this should be based on bugs importance and user feedback), |
110 | - |
111 | - #. the death of a series should be planned ahead of time. 6 months should |
112 | - give enough time to our users to migrate to a more recent series. This |
113 | - doesn't mean we will make a release at the end of the series, just that |
114 | - before the end date we _could_ possibly put out another release if |
115 | - there was a sufficiently important fix. Beyond that date, we won't |
116 | - even land changes on that branch (unless something causes a miraculous |
117 | - resurrection.) |
118 | - |
119 | - #. there should not be more than 2 releases in the same week (but the |
120 | - Release Manager is free to ignore this (get in touch with packagers |
121 | - though), |
122 | - |
123 | - #. the series are aligned with Ubuntu releases for convenience since we |
124 | - create a new series every 6 months. This means that we support the |
125 | - stable series for 18 months. Note that we also propose the most recent |
126 | - stable series via the ppa, so whether we keep supporting LTS directly |
127 | - or via the ppa is still an open question. |
128 | +We want to respect the following rules: |
129 | + |
130 | +#. as much as possible releases should not disturb development, and |
131 | + ongoing development should not disturb releases, |
132 | + |
133 | +#. the most recent development series should release once a month during |
134 | + the beta period (see `Development cycles <cycle.html>`_ for more |
135 | + details), |
136 | + |
137 | +#. the most recent stable series should release every other month (based |
138 | + on the amount of bug fixes, this can be shorter or longer depending on |
139 | + the bugs importance), |
140 | + |
141 | +#. previous series should release on a regular basis without interfering |
142 | + with the most recent series with a decreasing order of priority (again |
143 | + this should be based on bugs importance and user feedback), |
144 | + |
145 | +#. the death of a series should be planned ahead of time. 6 months should |
146 | + give enough time to our users to migrate to a more recent series. This |
147 | + doesn't mean we will make a release at the end of the series, just that |
148 | + before the end date we *could* possibly put out another release if |
149 | + there was a sufficiently important fix. Beyond that date, we won't |
150 | + even land changes on that branch (unless something causes a miraculous |
151 | + resurrection.) |
152 | + |
153 | +#. there should not be more than 2 releases in the same week (but the |
154 | + Release Manager is free to ignore this (get in touch with packagers |
155 | + though), |
156 | + |
157 | +#. the series are aligned with Ubuntu releases for convenience since we |
158 | + create a new series every 6 months. This means that we support the |
159 | + stable series for 18 months. Note that we also propose the most recent |
160 | + stable series via the stable PPA but that the SRU processs allow us to |
161 | + reach a wider audience. |
162 | + |
163 | +At the start of a series cycle |
164 | +============================== |
165 | + |
166 | +To start a new series cycle: |
167 | + |
168 | +#. Create a new series ``x.y`` at <https://launchpad.net/bzr/+addseries>. |
169 | + |
170 | +#. Add milestones at <https://launchpad.net/bzr/x.y/+addmilestone> to that |
171 | + series for the beta releases and the stable series mentioning their |
172 | + expected dates. Only the milestone associated to the next release in |
173 | + this series should be left active to avoid clutter when targeting bugs. |
174 | + |
175 | +#. If you made a new series, you will need to create a new pqm-controlled |
176 | + branch for this release series. This branch will be used only from the |
177 | + first non-beta release onwards. It needs to be created by a Canonical |
178 | + sysadmin (ask the core devs for instructions or to do it for you). |
179 | + |
180 | +#. Start a new release-notes file:: |
181 | + |
182 | + cd doc/en/release-notes |
183 | + cp series-template.txt bzr-x.y.txt # e.g. bzr-2.3.txt |
184 | + bzr add bzr-x.y.txt |
185 | + |
186 | +#. Start a new whats-new file:: |
187 | + |
188 | + cd doc/en/whats-new |
189 | + cp template.txt bzr-x.y.txt # e.g. bzr-2.6.txt |
190 | + bzr add bzr-x.y.txt |
191 | |
192 | |
193 | At the start of a release cycle |
194 | @@ -82,45 +144,32 @@ |
195 | |
196 | To start a new release cycle: |
197 | |
198 | -#. If this is the first release for a given *x.y* then create a new |
199 | - series at <https://launchpad.net/bzr/+addseries>. There is one series |
200 | - for every *x.y* release. |
201 | - |
202 | -#. If you made a new series, create a new pqm-controlled branch for this |
203 | - release series, by asking a Canonical sysadmin. This branch means that |
204 | - from the first release beta or candidate onwards, general development |
205 | - continues on the trunk, and only specifically-targeted fixes go into |
206 | - the release branch. |
207 | - |
208 | -#. If you made a new series, add milestones at |
209 | - <https://launchpad.net/bzr/x.y/+addmilestone> to that series for |
210 | - the beta release, release candidate and the final release, and their |
211 | - expected dates. |
212 | - |
213 | -#. Create a new milestone <https://launchpad.net/bzr/x.y/+addmilestone> |
214 | - and add information about this release. We will not use it yet, but it |
215 | - will be available for targeting or nominating bugs. |
216 | - |
217 | #. Send mail to the list with the key dates, who will be the release |
218 | manager, and the main themes or targeted bugs. Ask people to nominate |
219 | objectives, or point out any high-risk things that are best done early, |
220 | or that interact with other changes. This is called the metronome mail |
221 | and is described in `Development cycles <cycle.html>`_. |
222 | |
223 | -#. Make a local branch for preparing this release. (Only for the first |
224 | - release in a series, otherwise you should already have a branch.) :: |
225 | - |
226 | - bzr branch trunk prepare-1.14 |
227 | +#. Make a local branch to prepare the release:: |
228 | + |
229 | + bzr branch lp:bzr/x.y x.y-dev |
230 | + |
231 | + If you're doing your first beta release, branch from trunk:: |
232 | + |
233 | + bzr branch lp:bzr x.y-dev |
234 | + |
235 | + Note that you will generally reuse the same branch for all releases in a |
236 | + given series. |
237 | |
238 | #. Configure pqm-submit for this branch, with a section like this (where |
239 | - x.y is the version to release). **Or use hydrazine for easy use** |
240 | - ``~/.bazaar/locations.conf``:: |
241 | + ``x.y`` is the series for your release). **Or use hydrazine for easier |
242 | + setup** ``~/.bazaar/locations.conf``:: |
243 | |
244 | - [/home/mbp/bzr/prepare-x.y] |
245 | + [/home/mbp/bzr/x.y-dev] |
246 | pqm_email = Canonical PQM <pqm@bazaar-vcs.org> |
247 | submit_branch = http://bazaar.launchpad.net/~bzr-pqm/bzr/x.y |
248 | parent_branch = http://bazaar.launchpad.net/~bzr-pqm/bzr/x.y |
249 | - public_branch = http://bazaar.example.com/prepare-x.y |
250 | + public_branch = http://bazaar.example.com/x.y-dev |
251 | submit_to = bazaar@lists.canonical.com |
252 | smtp_server = mail.example.com:25 |
253 | |
254 | @@ -132,18 +181,17 @@ |
255 | |
256 | version_info = (x, y, z, 'dev', 0) |
257 | |
258 | -#. If you made a new series, then start a new release-notes file:: |
259 | - |
260 | - cd doc/en/release-notes |
261 | - cp series-template.txt bzr-x.y.txt # e.g. bzr-2.3.txt |
262 | - bzr add bzr-x.y.txt |
263 | - |
264 | #. Add a new section at the top of the current release notes (in |
265 | ``doc/en/release-notes``) about the new release, including its version |
266 | number and the headings from ``release-template.txt``. |
267 | |
268 | #. Update the "What's New" documents in ``doc/en/whats-new``. |
269 | |
270 | +#. Make sure a milestone exists for your release and that it is active, |
271 | + <https://launchpad.net/bzr/x.y> lists the existing milestones, |
272 | + <https://launchpad.net/bzr/x.y/x.y.z/+edit> allows you to toggle the |
273 | + active flag. |
274 | + |
275 | #. Commit this and send it to PQM. |
276 | |
277 | |
278 | @@ -161,7 +209,7 @@ |
279 | #. In the release branch, update ``version_info`` in ``./bzrlib/__init__.py``. |
280 | Make sure the corresponding milestone exists. |
281 | Double check that ./bzr ``_script_version`` matches ``version_info``. Check |
282 | - the output of ``bzr --version``. |
283 | + the output of ``./bzr --version``. |
284 | |
285 | For beta releases use:: |
286 | |
287 | @@ -171,10 +219,6 @@ |
288 | |
289 | version_info = (2, 1, 0, 'beta', 1) |
290 | |
291 | - For release candidates use:: |
292 | - |
293 | - version_info = (2, 0, 1, 'candidate', SERIAL) |
294 | - |
295 | For stable releases use:: |
296 | |
297 | version_info = (2, 1, 2, 'final', 0) |
298 | @@ -187,7 +231,7 @@ |
299 | |
300 | See *2.1.1* or similar for an example of what this looks like. |
301 | |
302 | -#. Add a summary of the release into the "What's New" document. |
303 | +#. Add or check the summary of the release into the "What's New" document. |
304 | |
305 | #. To check that all bugs mentioned in the release notes are actually |
306 | marked as closed in Launchpad, you can run |
307 | @@ -195,10 +239,12 @@ |
308 | |
309 | ./tools/check-newsbugs.py doc/en/release-notes/bzr-x.y.txt |
310 | |
311 | - As of 2011-05-26, only a few false positives remain in the older |
312 | - series. Don't let this slow you down too much. This script accepts |
313 | - options you may find useful, use ``./tools/check-newsbugs.py`` to display |
314 | - its usage. |
315 | + As of 2011-07-18, all bugs mentioned in the output of the script requires |
316 | + some sort of intervention (either changing the status if it's not 'Fix |
317 | + Released' or setting a different milestone if the bug hasn't been |
318 | + fixed). A few false positives may remain in the older series, don't let |
319 | + this slow you down too much. This script accepts options you may find |
320 | + useful, use ``./tools/check-newsbugs.py`` to display its usage. |
321 | |
322 | #. Commit these changes to the release branch, using a command like:: |
323 | |
324 | @@ -276,10 +322,10 @@ |
325 | |
326 | bzr tag bzr-2.3.1 |
327 | |
328 | -#. Push those changes to a bzr repository that is public and accessible on |
329 | - the Internet. PQM will pull from this repository when it attempts to merge |
330 | - your changes. Then submit those changes to PQM for merge into the |
331 | - appropriate release branch:: |
332 | +#. Push those changes to a bzr branch that is public and accessible on the |
333 | + Internet. PQM will pull from this branch when it attempts to merge your |
334 | + changes. Then submit those changes to PQM for merge into the appropriate |
335 | + release branch:: |
336 | |
337 | bzr push |
338 | bzr pqm-submit -m "(vila) Release 2.3.1 (Vincent Ladeuil)" |
339 | @@ -320,7 +366,7 @@ |
340 | Publishing the source tarball |
341 | ----------------------------- |
342 | |
343 | -#. Go to the relevant series page in Launchpad. |
344 | +#. Go to the relevant <https://launchpad.net/bzr/x.y> series page in Launchpad. |
345 | |
346 | #. Create a release of the milestone, and upload the source tarball and |
347 | the GPG signature. Or, if you prefer, use the |
348 | @@ -331,6 +377,56 @@ |
349 | <https://bugs.launchpad.net/launchpad/+bug/586445> |
350 | |
351 | |
352 | +Kick off the next cycle |
353 | +----------------------- |
354 | + |
355 | +From that point, there is no possible return, the tarball has been uploaded |
356 | +so you can relax a bit. |
357 | + |
358 | +You're still holding a "social" lock on the launchpad branch though. Until |
359 | +your start the next cycle, nobody should land anything on this branch. If |
360 | +they do, they either targeted the wrong branch or didn't update the news |
361 | +file correctly, so the sooner the branch is opened again, the better. |
362 | + |
363 | +This matters more for ``lp:bzr`` than for ``lp:bzr/x.y``, ``lp:bzr`` should |
364 | +always be open for landing, so you should do `At the start of a release |
365 | +cycle`_ as soon as possible (i.e. update the version number in ``bzr`` and |
366 | +``bzrlib/__init__``, create/update the news files and create/update the |
367 | +milestone for the next relase). |
368 | + |
369 | +You may also need to do `At the start of a series cycle`_ if you're starting |
370 | +a new series. |
371 | + |
372 | +A word of caution: the instructions above works well for all releases but |
373 | +there is one special case that requires a bit more care: when you release |
374 | +the *last* beta for a given ``x.y`` series (from trunk aka lp:bzr), you need |
375 | +to setup *two* branches for the next cycle: |
376 | + |
377 | +#. ``lp:bzr`` needs to be opened for the next *series* ``x.(y+1)`` |
378 | + |
379 | +#. ``lp:bzr/x.y`` needs to be opened for the next *release* ``x.y.0`` in the |
380 | + series. Since this is first real use of ``lp:bzr/x.y``, this is also the |
381 | + deadline for the PQM branch to be created. |
382 | + |
383 | +Both are important as ``lp:bzr`` should remain open so any change can be |
384 | +landed, ``lp:bzr/x.y`` on the other hand should be ready to receive bug |
385 | +fixes. |
386 | + |
387 | +``lp:bzr`` is generally more important as the bug fixes on ``lp:bzr/x.y`` |
388 | +won't be released sooner than a month from now whereas people may already |
389 | +been waiting to land on ``lp:bzr``. |
390 | + |
391 | +In a nutshell: |
392 | + |
393 | +#. Create or update the ``x.y`` PQM branch based on whatever |
394 | + revision you want to release |
395 | + |
396 | +#. Open ``lp:bzr`` for ``x.(y+1)`` |
397 | + |
398 | +#. Release ``x.y.0`` from ``lp:bzr/x.y`` |
399 | + |
400 | +#. Open ``lp:bzr/x.y`` for bug fixes |
401 | + |
402 | Announcing the source freeze |
403 | ---------------------------- |
404 | |
405 | @@ -341,13 +437,6 @@ |
406 | for platform maintainers and plugin authors to update their code. This |
407 | is done before the general public announcement of the release. |
408 | |
409 | - |
410 | -Kick off the next cycle |
411 | ------------------------ |
412 | - |
413 | -#. To let developers work on the next release, do |
414 | - `At the start of a release cycle` now. |
415 | - |
416 | #. Pause for a few days. |
417 | |
418 | |
419 | @@ -378,13 +467,14 @@ |
420 | |
421 | #. Make an announcement mail. |
422 | |
423 | - For release candidates or beta releases, this is sent to the ``bazaar`` |
424 | - list only to inform plugin authors and package or installer managers. |
425 | + For beta releases, this is sent to the ``bazaar@lists.canonical.com`` |
426 | + list only to inform plugin authors and people responsible for building |
427 | + packages or installers. |
428 | |
429 | Once the installers are available, the mail can be sent to the |
430 | ``bazaar-announce`` list too. |
431 | |
432 | - For final releases, it should also be cc'd to ``info-gnu@gnu.org``, |
433 | + For stable releases, it should also be cc'd to ``info-gnu@gnu.org``, |
434 | ``python-announce-list@python.org``, ``bug-directory@gnu.org``. |
435 | |
436 | In all cases, it is good to set ``Reply-To: bazaar@lists.canonical.com``, |
437 | @@ -413,17 +503,13 @@ |
438 | |
439 | #. Make an announcement through <https://launchpad.net/bzr/+announce> |
440 | |
441 | -#. Update the IRC channel topic. Use the ``/topic`` command to do this, |
442 | - ensuring the new topic text keeps the project name, web site link, etc. |
443 | - |
444 | #. Announce on http://freshmeat.net/projects/bzr/ |
445 | |
446 | - This should be done for beta releases, release candidates and final |
447 | - releases. If you do not have a Freshmeat account yet, ask one of the |
448 | - existing admins. |
449 | + This should be done for beta releases and stable releases. If you do not |
450 | + have a Freshmeat account yet, ask one of the existing admins. |
451 | |
452 | The purpose here is to point users to the latest stable release while still |
453 | - publishing announcements for development releases. |
454 | + publishing announcements for beta releases. |
455 | |
456 | There are several kinds of modifications that could be done there via the |
457 | ``Administration`` box in the lower right area of the page: |
458 | @@ -432,32 +518,31 @@ |
459 | ``Links`` box are edited. This should rarely change except for the URLs |
460 | related to the latest stable release. |
461 | |
462 | - * New announcement: When doing a release (beta, candidates, final), put the |
463 | - summary of the release (you can't embed URLs there, the moderation staff |
464 | - remove them). Users can still access the releases notes via the ``Release |
465 | - Notes`` URL in the ``Links`` box in the upper right area of the |
466 | - page. When doing the first stable release in a series, delete the |
467 | - ``Unstable installers`` <https://launchpad.net/bzr/x.y/x.ybn> and |
468 | - ``Unstable source tarball`` |
469 | + * New announcement: When doing a release, put the summary of the release |
470 | + (you can't embed URLs there, the moderation staff remove them). Users |
471 | + can still access the releases notes via the ``Release Notes`` URL in |
472 | + the ``Links`` box in the upper right area of the page. When doing the |
473 | + first stable release in a series, delete the ``Unstable installers`` |
474 | + <https://launchpad.net/bzr/x.y/x.ybn> and ``Unstable source tarball`` |
475 | <http://launchpad.net/bzr/x.y/x.ybn/+download/bzr-x.ybn.tar.gz> |
476 | - links. Conversely, when creating the first beta in a development series, |
477 | - create these links again. Check all links when doing other kinds of |
478 | - release. |
479 | + links. Conversely, when creating the first beta in a development |
480 | + series, create these links again. Check all links when doing other |
481 | + kinds of release. |
482 | |
483 | * Set direct download: When releasing a new stable release, this should |
484 | point to the corresponding launchpad page: |
485 | <https://launchpad.net/bzr/x.y/x.y.z/> |
486 | |
487 | #. Update `<http://en.wikipedia.org/wiki/Bazaar_(software)>`_ -- this should |
488 | - be done for final releases but not for beta releases or Release Candidates. |
489 | + be done for the stable and beta releases. |
490 | |
491 | #. Update the python package index: <http://pypi.python.org/pypi/bzr> - best |
492 | done by running :: |
493 | |
494 | python setup.py register |
495 | |
496 | - Remember to check the results afterwards -- this should be done for |
497 | - final releases but not for beta releases or Release Candidates. |
498 | + Remember to check the results afterward -- this should be done for |
499 | + stable releases but not for beta releases. |
500 | |
501 | To be able to register the release you must create an account on |
502 | <http://pypi.python.org/pypi> and have one of the existing owners of |
503 | @@ -467,10 +552,9 @@ |
504 | Merging the released code back to trunk |
505 | --------------------------------------- |
506 | |
507 | -Merge the release branch back into the trunk. The |
508 | -``doc/en/release-notes`` changes should be merged into the right place |
509 | -because each release series has its own release-notes file, but |
510 | -double-check. |
511 | +Merge the release branch back into the trunk. The ``doc/en/release-notes`` |
512 | +changes should be merged into the right place because each release series |
513 | +has its own release-notes file, but double-check. |
514 | |
515 | If it's not already done, advance the version number in ``bzr`` and |
516 | ``bzrlib/__init__.py``. Submit this back into pqm for bzr.dev. |
517 | @@ -479,24 +563,21 @@ |
518 | created the corresponding milestone to ensure the continuity in bug |
519 | targeting or nominating. Depending on the change, you may even have to |
520 | create a new series (if your change the major or minor release number), in |
521 | -that case go to `At the start of a release cycle` and follow the instructions from there. |
522 | +that case go to `At the start of a series cycle`_ and follow the |
523 | +instructions from there. |
524 | |
525 | -You should also merge (not pull) the release branch into |
526 | -``lp:~bzr/bzr/current``, so that branch contains the current released code |
527 | -at any time. |
528 | |
529 | Releases until the final one |
530 | ---------------------------- |
531 | |
532 | -Congratulations - you have made your first release. Have a beer |
533 | -or fruit juice - it's on the house! If it was a beta, or |
534 | -candidate, you're not finished yet. Another beta or candidate or |
535 | -hopefully a final release is still to come. |
536 | +Congratulations - you have made your first release. Have a beer or fruit |
537 | +juice - it's on the house! If it was a beta, you're not finished |
538 | +yet. Another beta or hopefully a stable release is still to come. |
539 | |
540 | -The process is the same as for the first release. Goto `Doing a |
541 | -particular release`_ and follow the instructions again. Some details change |
542 | -between beta, candidate and final releases, but they should be |
543 | -documented. If the instructions aren't clear enough, please fix them. |
544 | +The process is the same as for the first release. Goto `Doing a particular |
545 | +release`_ and follow the instructions again. Some details change between |
546 | +beta and stable releases, but they should be documented. If the instructions |
547 | +aren't clear enough, please fix them. |
548 | |
549 | |
550 | Getting the release into Ubuntu |
551 | @@ -515,10 +596,15 @@ |
552 | the `SRU (Stable Release Updates) |
553 | <https://wiki.ubuntu.com/StableReleaseUpdates>`__ process. |
554 | |
555 | -As of September 2010, bzr has applied to the technical board to be added |
556 | -to the `MicroReleaseExceptions |
557 | +Since September 2010, bzr has received approval by the technical |
558 | +board for the `MicroReleaseExceptions |
559 | <https://wiki.ubuntu.com/StableReleaseUpdates/MicroReleaseExceptions>`__ |
560 | -category so that whole bugfix releases can more easily be approved. |
561 | +category so that whole bugfix releases can more easily be |
562 | +approved. |
563 | + |
564 | +Progress on these realeases is tracked on the `SRU wiki |
565 | +<http://wiki.bazaar.canonical.com/UbuntuStableReleaseUpdates>`_ |
566 | +page. |
567 | |
568 | **After making a bzr stable-release release, nominate the most serious bug |
569 | for the appropriate Ubuntu release and subscribe the `ubuntu-sru` team.** |
570 | @@ -535,9 +621,10 @@ |
571 | button and select the right Ubuntu release. As of September 2010, this |
572 | means: |
573 | |
574 | + * ``oneiric`` for the 2.4 series, |
575 | + * ``natty`` for the 2.3 series, |
576 | * ``maverick`` for the 2.2 series, |
577 | * ``lucid`` for the 2.1 series, |
578 | - * ``karmic`` for the 2.0 series. |
579 | |
580 | * Subscribe the ``~ubuntu-sru`` team to the bug. |
581 | |
582 | |
583 | === modified file 'doc/en/release-notes/bzr-2.5.txt' |
584 | --- doc/en/release-notes/bzr-2.5.txt 2011-08-03 14:35:06 +0000 |
585 | +++ doc/en/release-notes/bzr-2.5.txt 2011-08-04 11:48:39 +0000 |
586 | @@ -85,6 +85,8 @@ |
587 | |
588 | .. Improved or updated documentation. |
589 | |
590 | +* Release instructions refreshed. (Vincent Ladeuil) |
591 | + |
592 | API Changes |
593 | *********** |
594 | |
595 | |
596 | === added file 'doc/en/whats-new/template.txt' |
597 | --- doc/en/whats-new/template.txt 1970-01-01 00:00:00 +0000 |
598 | +++ doc/en/whats-new/template.txt 2011-08-04 11:48:39 +0000 |
599 | @@ -0,0 +1,26 @@ |
600 | +************************* |
601 | +What's New in Bazaar x.y? |
602 | +************************* |
603 | + |
604 | +Bazaar x.y is still under development, and will be released in Month Year. |
605 | +This document accumulates a high level summary of what's changed. See the |
606 | +:doc:`../release-notes/index` for a full list. |
607 | + |
608 | +<topics of interest here> |
609 | + |
610 | +Further information |
611 | +******************* |
612 | + |
613 | +For more detailed information on the changes made, see the the |
614 | +:doc:`../release-notes/index` for: |
615 | + |
616 | +* the interim bzr `milestones <https://launchpad.net/bzr/x.y>`_ |
617 | +* the plugins you use. |
618 | + |
619 | +For a summary of changes made in earlier releases, see: |
620 | + |
621 | +* :doc:`whats-new-in-2.1` |
622 | +* :doc:`whats-new-in-2.2` |
623 | +* :doc:`whats-new-in-2.3` |
624 | +<intermediate series here> |
625 | +* :doc:`whats-new-in-x.(y-1)` |
[aside] perhaps it's out of scope for this document but I wonder if we should split the more checklist like parts from the discussion.
It's spelled 'targeted' not 'targetted' despite what you may expect; also not 'targetting'.
> As of July 2010, we mantain four series (and one that is about to be EOLed).
If you're updating this I guess you mean 2011?
> relesase
typo
> 145 +#. the death of a series should be planned ahead of time
We discussed this and I believe we settled on normally stopping them after 18 months, though (as this para says) still leaving open the option to do an update if some later critical bug gets fixed. That gives up to four in flight which is enough.
> mentionning
mentioning
> practive
practice
> asssociated
associated
> chaning
changing
> A word of caution: the instructions above works well for all releases but
there is one special case that requires a bit more care: when you release
the *last* beta for a given ``x.y`` series (from trunk aka lp:bzr), you need
to setup *two* branches for the next cycle:
Since this was the main confusion this time I think perhaps it deserves a section of its own and a more explicit list of steps:
* increment the version on trunk
* tag the version just before you bumped the version
* make a pqm branch from there
* release that tagged version
* announce that trunk is now going into the next series
(maybe more details)
I think this avoids people ever getting changes landed to the wrong place.
(perhaps some refinement of this)
> As of July 2011, bzr has applied to the technical board to be added to the `MicroReleaseEx ceptions /wiki.ubuntu. com/StableRelea seUpdates/ MicroReleaseExc eptions>`__ category so that whole bugfix releases can more easily be approved.
<https:/
Well, as of now we have a SRU MRE. The most useful thing here is to mention http:// wiki.bazaar. canonical. com/UbuntuStabl eReleaseUpdates
* ``natty`` for the 2.3 series,
You might as well also mention oneiric.
You can either treat these as tweaks or ask for a rereview.