Rev 3491: (mbp) updated developer process docs in file:///home/pqm/archives/thelove/bzr/%2Btrunk/
Canonical.com Patch Queue Manager
pqm at pqm.ubuntu.com
Wed Jun 11 03:51:28 BST 2008
At file:///home/pqm/archives/thelove/bzr/%2Btrunk/
------------------------------------------------------------
revno: 3491
revision-id:pqm at pqm.ubuntu.com-20080611025118-h340ybdz91dv40x4
parent: pqm at pqm.ubuntu.com-20080610081519-95unlj6ayptlh2uv
parent: mbp at sourcefrog.net-20080611022810-2vvby553ortnpmku
committer: Canonical.com Patch Queue Manager <pqm at pqm.ubuntu.com>
branch nick: +trunk
timestamp: Wed 2008-06-11 03:51:18 +0100
message:
(mbp) updated developer process docs
modified:
NEWS NEWS-20050323055033-4e00b5db738777ff
doc/developers/HACKING.txt HACKING-20050805200004-2a5dc975d870f78c
doc/developers/index.txt index.txt-20070508041241-qznziunkg0nffhiw-1
doc/developers/releasing.txt releasing.txt-20080502015919-fnrcav8fwy8ccibu-1
doc/index.txt index.txt-20070813101924-07gd9i9d2jt124bf-1
------------------------------------------------------------
revno: 3464.3.17
revision-id:mbp at sourcefrog.net-20080611022810-2vvby553ortnpmku
parent: mbp at sourcefrog.net-20080611022506-epynwrxsvrfe59dv
parent: pqm at pqm.ubuntu.com-20080610081519-95unlj6ayptlh2uv
committer: Martin Pool <mbp at sourcefrog.net>
branch nick: doc
timestamp: Wed 2008-06-11 12:28:10 +1000
message:
merge trunk
added:
bzrlib/tests/blackbox/test_alias.py test_alias.py-20080425112253-fbt0yz1c1834jriz-1
bzrlib/tests/blackbox/test_modified.py test_modified.py-20080424085848-nwqjenan4dq2vq3w-1
bzrlib/tests/per_repository_reference/ repository_external_-20080220025549-nnm2s80it1lvcwnc-1
bzrlib/tests/per_repository_reference/__init__.py __init__.py-20080220025549-nnm2s80it1lvcwnc-2
bzrlib/tests/per_repository_reference/test_add_inventory.py test_add_inventory.p-20080220025549-nnm2s80it1lvcwnc-3
bzrlib/tests/per_repository_reference/test_add_revision.py test_add_revision.py-20080220034108-ao1u8qgakqbo5a08-1
bzrlib/tests/per_repository_reference/test_add_signature_text.py test_add_signature_t-20080220041905-1j2g4lyz3c6h34v4-1
bzrlib/tests/per_repository_reference/test_all_revision_ids.py test_all_revision_id-20080220041905-1j2g4lyz3c6h34v4-2
bzrlib/tests/per_repository_reference/test_break_lock.py test_break_lock.py-20080220042825-1f48qmpnuqqp5wg2-1
bzrlib/tests/per_repository_reference/test_check.py test_check.py-20080220044229-sxxe747gzi6q8fyv-1
renamed:
doc/en/user-guide/revnos.txt => doc/en/user-guide/zen.txt revnos.txt-20080111231928-pbntxea0ynh9ww1t-1
modified:
NEWS NEWS-20050323055033-4e00b5db738777ff
bzrlib/__init__.py __init__.py-20050309040759-33e65acf91bbcd5d
bzrlib/branch.py branch.py-20050309040759-e4baf4e0d046576e
bzrlib/builtins.py builtins.py-20050830033751-fc01482b9ca23183
bzrlib/check.py check.py-20050309040759-f3a679400c06bcc1
bzrlib/config.py config.py-20051011043216-070c74f4e9e338e8
bzrlib/counted_lock.py counted_lock.py-20070502135927-7dk86io3ok7ctx6k-1
bzrlib/dirstate.py dirstate.py-20060728012006-d6mvoihjb3je9peu-1
bzrlib/errors.py errors.py-20050309040759-20512168c4e14fbd
bzrlib/knit.py knit.py-20051212171256-f056ac8f0fbe1bd9
bzrlib/lockdir.py lockdir.py-20060220222025-98258adf27fbdda3
bzrlib/merge_directive.py merge_directive.py-20070228184838-ja62280spt1g7f4x-1
bzrlib/remote.py remote.py-20060720103555-yeeg2x51vn0rbtdp-1
bzrlib/repository.py rev_storage.py-20051111201905-119e9401e46257e3
bzrlib/tag.py tag.py-20070212110532-91cw79inah2cfozx-1
bzrlib/tests/__init__.py selftest.py-20050531073622-8d0e3c8845c97a64
bzrlib/tests/blackbox/__init__.py __init__.py-20051128053524-eba30d8255e08dc3
bzrlib/tests/blackbox/test_added.py test_added.py-20060119085008-6b8b90369d42a26c
bzrlib/tests/blackbox/test_non_ascii.py test_non_ascii.py-20060105214030-68010be784a5d854
bzrlib/tests/blackbox/test_uncommit.py test_uncommit.py-20051027212835-84944b63adae51be
bzrlib/tests/blackbox/test_unknowns.py test_unknowns.py-20070905015344-74tg6s1synijo2oe-1
bzrlib/tests/branch_implementations/test_branch.py testbranch.py-20050711070244-121d632bc37d7253
bzrlib/tests/branch_implementations/test_pull.py test_pull.py-20060410103942-83c35b26657414fc
bzrlib/tests/http_server.py httpserver.py-20061012142527-m1yxdj1xazsf8d7s-1
bzrlib/tests/repository_implementations/__init__.py __init__.py-20060131092037-9564957a7d4a841b
bzrlib/tests/test_branch.py test_branch.py-20060116013032-97819aa07b8ab3b5
bzrlib/tests/test_config.py testconfig.py-20051011041908-742d0c15d8d8c8eb
bzrlib/tests/test_counted_lock.py test_counted_lock.py-20070502135927-7dk86io3ok7ctx6k-2
bzrlib/tests/test_diff.py testdiff.py-20050727164403-d1a3496ebb12e339
bzrlib/tests/test_dirstate.py test_dirstate.py-20060728012006-d6mvoihjb3je9peu-2
bzrlib/tests/test_lockable_files.py test_lockable_files.py-20051225183927-365c7fd99591caf1
bzrlib/tests/test_lockdir.py test_lockdir.py-20060220222025-33d4221569a3d600
bzrlib/tests/test_merge_directive.py test_merge_directive-20070228184838-ja62280spt1g7f4x-2
bzrlib/tests/test_msgeditor.py test_msgeditor.py-20051202041359-920315ec6011ee51
bzrlib/tests/test_selftest.py test_selftest.py-20051202044319-c110a115d8c0456a
bzrlib/tests/test_switch.py test_switch.py-20071116011000-v5lnw7d2wkng9eux-2
bzrlib/tests/test_transform.py test_transaction.py-20060105172520-b3ffb3946550e6c4
bzrlib/tests/test_transport_implementations.py test_transport_implementations.py-20051227111451-f97c5c7d5c49fce7
bzrlib/tests/test_versionedfile.py test_versionedfile.py-20060222045249-db45c9ed14a1c2e5
bzrlib/tests/test_workingtree_4.py test_workingtree_4.p-20070223025758-531n3tznl3zacv2o-1
bzrlib/tests/workingtree_implementations/test_parents.py test_set_parents.py-20060807231740-yicmnlci1mj8smu1-1
bzrlib/transform.py transform.py-20060105172343-dd99e54394d91687
bzrlib/transport/__init__.py transport.py-20050711165921-4978aa7ce1285ad5
bzrlib/versionedfile.py versionedfile.py-20060222045106-5039c71ee3b65490
bzrlib/workingtree.py workingtree.py-20050511021032-29b6ec0a681e02e3
bzrlib/workingtree_4.py workingtree_4.py-20070208044105-5fgpc5j3ljlh5q6c-1
contrib/bzr_access bzr_access-20071210163004-c9lb1renhra2ncg0-1
doc/en/user-guide/core_concepts.txt core_concepts.txt-20071114035000-q36a9h57ps06uvnl-2
doc/en/user-guide/index.txt index.txt-20060622101119-tgwtdci8z769bjb9-2
doc/en/user-guide/zen.txt revnos.txt-20080111231928-pbntxea0ynh9ww1t-1
------------------------------------------------------------
revno: 3464.3.16
revision-id:mbp at sourcefrog.net-20080611022506-epynwrxsvrfe59dv
parent: mbp at sourcefrog.net-20080611021846-asgg3s24v9d4bjl2
committer: Martin Pool <mbp at sourcefrog.net>
branch nick: doc
timestamp: Wed 2008-06-11 12:25:06 +1000
message:
Point directly to API docs
modified:
doc/developers/index.txt index.txt-20070508041241-qznziunkg0nffhiw-1
------------------------------------------------------------
revno: 3464.3.15
revision-id:mbp at sourcefrog.net-20080611021846-asgg3s24v9d4bjl2
parent: mbp at sourcefrog.net-20080611021711-eqh73g6672v230tv
committer: Martin Pool <mbp at sourcefrog.net>
branch nick: doc
timestamp: Wed 2008-06-11 12:18:46 +1000
message:
Fix doc hyperlink
modified:
doc/developers/HACKING.txt HACKING-20050805200004-2a5dc975d870f78c
------------------------------------------------------------
revno: 3464.3.14
revision-id:mbp at sourcefrog.net-20080611021711-eqh73g6672v230tv
parent: mbp at sourcefrog.net-20080611021646-92d4u76tlzlpwjdh
committer: Martin Pool <mbp at sourcefrog.net>
branch nick: doc
timestamp: Wed 2008-06-11 12:17:11 +1000
message:
Correct typo in release process
modified:
doc/developers/releasing.txt releasing.txt-20080502015919-fnrcav8fwy8ccibu-1
------------------------------------------------------------
revno: 3464.3.13
revision-id:mbp at sourcefrog.net-20080611021646-92d4u76tlzlpwjdh
parent: mbp at sourcefrog.net-20080611021531-oeugnxna5pmsan6t
committer: Martin Pool <mbp at sourcefrog.net>
branch nick: doc
timestamp: Wed 2008-06-11 12:16:46 +1000
message:
Replace obsolete docs on release cycle with link to current process
modified:
doc/developers/HACKING.txt HACKING-20050805200004-2a5dc975d870f78c
------------------------------------------------------------
revno: 3464.3.12
revision-id:mbp at sourcefrog.net-20080611021531-oeugnxna5pmsan6t
parent: mbp at sourcefrog.net-20080605033156-vyj9q7pzmx7ga9w4
committer: Martin Pool <mbp at sourcefrog.net>
branch nick: doc
timestamp: Wed 2008-06-11 12:15:31 +1000
message:
Update links to bzrlib api docs
modified:
doc/developers/HACKING.txt HACKING-20050805200004-2a5dc975d870f78c
------------------------------------------------------------
revno: 3464.3.11
revision-id:mbp at sourcefrog.net-20080605033156-vyj9q7pzmx7ga9w4
parent: mbp at sourcefrog.net-20080605032841-wjogzzhyge63lqjj
committer: Martin Pool <mbp at sourcefrog.net>
branch nick: doc
timestamp: Thu 2008-06-05 13:31:56 +1000
message:
Add developer advice against bare except:
modified:
doc/developers/HACKING.txt HACKING-20050805200004-2a5dc975d870f78c
------------------------------------------------------------
revno: 3464.3.10
revision-id:mbp at sourcefrog.net-20080605032841-wjogzzhyge63lqjj
parent: mbp at sourcefrog.net-20080605032737-0eytu5y1k9k5a72t
committer: Martin Pool <mbp at sourcefrog.net>
branch nick: doc
timestamp: Thu 2008-06-05 13:28:41 +1000
message:
Remove example of catching all exceptions from __repr__ in HACKING
modified:
doc/developers/HACKING.txt HACKING-20050805200004-2a5dc975d870f78c
------------------------------------------------------------
revno: 3464.3.9
revision-id:mbp at sourcefrog.net-20080605032737-0eytu5y1k9k5a72t
parent: mbp at sourcefrog.net-20080603070355-65ca5vd490vj9rnk
committer: Martin Pool <mbp at sourcefrog.net>
branch nick: doc
timestamp: Thu 2008-06-05 13:27:37 +1000
message:
Add plugin and integration guides to doc indexes
modified:
doc/developers/index.txt index.txt-20070508041241-qznziunkg0nffhiw-1
doc/index.txt index.txt-20070813101924-07gd9i9d2jt124bf-1
------------------------------------------------------------
revno: 3464.3.8
revision-id:mbp at sourcefrog.net-20080603070355-65ca5vd490vj9rnk
parent: mbp at sourcefrog.net-20080603062901-hmbde32sexlz8q77
committer: Martin Pool <mbp at sourcefrog.net>
branch nick: doc
timestamp: Tue 2008-06-03 17:03:55 +1000
message:
Doc updates re PPAs
modified:
doc/developers/releasing.txt releasing.txt-20080502015919-fnrcav8fwy8ccibu-1
------------------------------------------------------------
revno: 3464.3.7
revision-id:mbp at sourcefrog.net-20080603062901-hmbde32sexlz8q77
parent: mbp at sourcefrog.net-20080603054608-k5x7cqq4lcji3ijj
committer: Martin Pool <mbp at sourcefrog.net>
branch nick: doc
timestamp: Tue 2008-06-03 16:29:01 +1000
message:
Developer notes about release process
modified:
doc/developers/releasing.txt releasing.txt-20080502015919-fnrcav8fwy8ccibu-1
------------------------------------------------------------
revno: 3464.3.6
revision-id:mbp at sourcefrog.net-20080603054608-k5x7cqq4lcji3ijj
parent: mbp at sourcefrog.net-20080603052856-g5ju0z0s7a11405x
committer: Martin Pool <mbp at sourcefrog.net>
branch nick: doc
timestamp: Tue 2008-06-03 15:46:08 +1000
message:
Release process updates
modified:
doc/developers/releasing.txt releasing.txt-20080502015919-fnrcav8fwy8ccibu-1
------------------------------------------------------------
revno: 3464.3.5
revision-id:mbp at sourcefrog.net-20080603052856-g5ju0z0s7a11405x
parent: mbp at sourcefrog.net-20080603052238-9ve1f0r087fz17p0
committer: Martin Pool <mbp at sourcefrog.net>
branch nick: doc
timestamp: Tue 2008-06-03 15:28:56 +1000
message:
ReST tweaks and link back from HACKING to catalog
modified:
doc/developers/HACKING.txt HACKING-20050805200004-2a5dc975d870f78c
doc/developers/index.txt index.txt-20070508041241-qznziunkg0nffhiw-1
doc/index.txt index.txt-20070813101924-07gd9i9d2jt124bf-1
------------------------------------------------------------
revno: 3464.3.4
revision-id:mbp at sourcefrog.net-20080603052238-9ve1f0r087fz17p0
parent: mbp at sourcefrog.net-20080603051514-7p6wxx6scx2u70j3
committer: Martin Pool <mbp at sourcefrog.net>
branch nick: doc
timestamp: Tue 2008-06-03 15:22:38 +1000
message:
Merge part of the NewDeveloperIntroduction into HACKING
modified:
doc/developers/HACKING.txt HACKING-20050805200004-2a5dc975d870f78c
------------------------------------------------------------
revno: 3464.3.3
revision-id:mbp at sourcefrog.net-20080603051514-7p6wxx6scx2u70j3
parent: mbp at sourcefrog.net-20080602074744-9tkedwubktpm78xd
committer: Martin Pool <mbp at sourcefrog.net>
branch nick: doc
timestamp: Tue 2008-06-03 15:15:14 +1000
message:
Update documentation indexes
modified:
doc/developers/index.txt index.txt-20070508041241-qznziunkg0nffhiw-1
doc/index.txt index.txt-20070813101924-07gd9i9d2jt124bf-1
------------------------------------------------------------
revno: 3464.3.2
revision-id:mbp at sourcefrog.net-20080602074744-9tkedwubktpm78xd
parent: mbp at sourcefrog.net-20080602074614-s0tssbnyfhmcnb2o
committer: Martin Pool <mbp at sourcefrog.net>
branch nick: doc
timestamp: Mon 2008-06-02 17:47:44 +1000
message:
release docs: suggest checking bzr --version
modified:
doc/developers/releasing.txt releasing.txt-20080502015919-fnrcav8fwy8ccibu-1
------------------------------------------------------------
revno: 3464.3.1
revision-id:mbp at sourcefrog.net-20080602074614-s0tssbnyfhmcnb2o
parent: pqm at pqm.ubuntu.com-20080601233619-di6or8d3o26n917q
committer: Martin Pool <mbp at sourcefrog.net>
branch nick: doc
timestamp: Mon 2008-06-02 17:46:14 +1000
message:
Tweak release docs re version numbers
modified:
doc/developers/releasing.txt releasing.txt-20080502015919-fnrcav8fwy8ccibu-1
=== modified file 'NEWS'
--- a/NEWS 2008-06-10 07:51:09 +0000
+++ b/NEWS 2008-06-11 02:28:10 +0000
@@ -16,6 +16,9 @@
DOCUMENTATION:
+ * Updated developer documentation.
+ (Martin Pool)
+
TESTING:
API CHANGES:
=== modified file 'doc/developers/HACKING.txt'
--- a/doc/developers/HACKING.txt 2008-05-29 15:14:45 +0000
+++ b/doc/developers/HACKING.txt 2008-06-11 02:18:46 +0000
@@ -15,6 +15,9 @@
``doc/developers/HACKING.txt`` in the source tree, or at
http://doc.bazaar-vcs.org/bzr.dev/en/developer-guide/HACKING.html
+See also:
+`Bazaar Developer Documentation Catalog <../../developers/index.html>`_.
+
.. contents::
@@ -212,12 +215,57 @@
Navigating the Code Base
========================
-TODO: List and describe in one line the purpose of each directory
-inside an installation of bzr.
-
-TODO: Refer to a central location holding an up to date copy of the API
-documentation generated by epydoc, e.g. something like
-http://starship.python.net/crew/mwh/bzrlibapi/bzrlib.html.
+.. Was at <http://bazaar-vcs.org/NewDeveloperIntroduction>
+
+Some of the key files in this directory are:
+
+bzr
+ The command you run to start Bazaar itself. This script is pretty
+ short and just does some checks then jumps into bzrlib.
+
+README
+ This file covers a brief introduction to Bazaar and lists some of its
+ key features.
+
+NEWS
+ Summary of changes in each Bazaar release that can affect users or
+ plugin developers.
+
+setup.py
+ Installs Bazaar system-wide or to your home directory. To perform
+ development work on Bazaar it is not required to run this file - you
+ can simply run the bzr command from the top level directory of your
+ development copy. Note: That if you run setup.py this will create a
+ 'build' directory in your development branch. There's nothing wrong
+ with this but don't be confused by it. The build process puts a copy
+ of the main code base into this build directory, along with some other
+ files. You don't need to go in here for anything discussed in this
+ guide.
+
+bzrlib
+ Possibly the most exciting folder of all, bzrlib holds the main code
+ base. This is where you will go to edit python files and contribute to
+ Bazaar.
+
+doc
+ Holds documentation on a whole range of things on Bazaar from the
+ origination of ideas within the project to information on Bazaar
+ features and use cases. Within this directory there is a subdirectory
+ for each translation into a human language. All the documentation
+ is in the ReStructuredText markup language.
+
+doc/developers
+ Documentation specifically targetted at Bazaar and plugin developers.
+ (Including this document.)
+
+
+
+Automatically-generated API reference information is available at
+<http://starship.python.net/crew/mwh/bzrlibapi/>.
+(There is an experimental editable version at
+<http://starship.python.net/crew/mwh/bzrlibapi-oe/>.)
+See also the `Essential Domain Classes`_
+section of this guide.
Testing Bazaar
@@ -933,19 +981,28 @@
implementation.)
Because repr methods are often called when something has already gone
-wrong, they should be written more defensively than most code. The object
-may be half-initialized or in some other way in an illegal state. The
-repr method shouldn't raise an exception, or it may hide the (probably
-more useful) underlying exception.
+wrong, they should be written somewhat more defensively than most code.
+The object may be half-initialized or in some other way in an illegal
+state. The repr method shouldn't raise an exception, or it may hide the
+(probably more useful) underlying exception.
Example::
def __repr__(self):
- try:
- return '%s(%r)' % (self.__class__.__name__,
- self._transport)
- except:
- return 'FooObject(**unprintable**)'
+ return '%s(%r)' % (self.__class__.__name__,
+ self._transport)
+
+
+Exception handling
+==================
+
+A bare ``except`` statement will catch all exceptions, including ones that
+really should terminate the program such as ``MemoryError`` and
+``KeyboardInterrupt``. They should rarely be used unless the exception is
+later re-raised. Even then, think about whether catching just
+``Exception`` (which excludes system errors in Python2.5 and later) would
+be better.
+
Core Topics
@@ -1550,7 +1607,7 @@
* reviewing changes
* reviewing blueprints
* planning releases
-* managing releases.
+* managing releases (see the `Releasing Bazaar <../../developers/releasing.html>`_)
.. note::
Removing barriers to community participation is a key reason for adopting
@@ -1561,28 +1618,6 @@
differences between core and non-core contributors to a minimum.
-The Development Lifecycle
--------------------------
-
-As a rule, Bazaar development follows a 4 week cycle:
-
-* 2 weeks - general changes
-* 1 week - feature freeze
-* 1 week+ - Release Candidate stabilization
-
-During the FeatureFreeze week, the trunk (bzr.dev) is open in a limited
-way: only low risk changes, critical and high priority fixes are accepted
-during this time. At the end of FeatureFreeze, a branch is created for the
-first Release Candidate and the trunk is reopened for general development
-on the *next* release. A week or so later, the final release is packaged
-assuming no serious problems were encountered with the one or more Release
-Candidates.
-
-.. note::
- There is a one week overlap between the start of one release and
- the end of the previous one.
-
-
Communicating and Coordinating
------------------------------
=== modified file 'doc/developers/index.txt'
--- a/doc/developers/index.txt 2008-05-27 08:12:28 +0000
+++ b/doc/developers/index.txt 2008-06-11 02:25:06 +0000
@@ -9,14 +9,26 @@
===============================
* `Developer Guide <../en/developer-guide/HACKING.html>`_
-* `bzrlib API reference <http://bazaar-vcs.org/BzrLib>`_
+
+* `bzrlib API reference <http://starship.python.net/crew/mwh/bzrlibapi-oe/>`_
+ (external link)
+ |--| automatically generated API reference information
+
+* `Integrating with Bazaar <http://bazaar-vcs.org/Integrating_with_Bazaar>`_
+ (wiki) |--| a guide for writing Python programs that work with Bazaar.
+
+* `Writing plugins <http://bazaar-vcs.org/WritingPlugins>`_ (wiki)
+ |--| specific advice on writing Bazaar plugins.
Process
=======
-* `Releasing Bazaar <releasing.html>`_ -- How to make a release of Bazaar,
+* `Releasing Bazaar <releasing.html>`_ |--| How to make a release of Bazaar,
and how to coordinate the monthly development cycle.
+* `Giving back <http://bazaar-vcs.org/BzrGivingBack>`_ (wiki) |--| How to get
+ your changes to Bazaar integrated into a release.
+
* `Profiling notes <profiling.html>`_ |--| Instructions on how to profile
bzr code and visualize the results.
@@ -65,3 +77,6 @@
.. |--| unicode:: U+2014
+
+..
+ vim: ft=rst tw=74 ai
=== modified file 'doc/developers/releasing.txt'
--- a/doc/developers/releasing.txt 2008-06-05 21:50:09 +0000
+++ b/doc/developers/releasing.txt 2008-06-11 02:28:10 +0000
@@ -4,11 +4,44 @@
This document describes the processes for making and announcing a Bazaar
release, and managing the release process.
+We normally have one person acting as the release manager, who
+organizes development for the release and also actually makes the release
+tarball and posts announcements. It can be a different person from one
+release to the next.
+
See also: `Bazaar Developer Document Catalog <index.html>`_.
.. contents::
+General process
+---------------
+
+Our usual process is that one week before release we will make a release
+branch from the trunk. We do one commit to that branch to change the
+version number to 'rc1', and advance the trunk version to 'dev' for the
+next release.
+
+We then publish and announce this release candidate according to the
+process below. We then have a week of general testing of the rc,
+including some time for plugin authors to update their code for any
+changes.
+
+Normally no changes will be made on the release branch unless serious bugs
+or regressions are found, and the release manager decides they should be
+merged in. After one week, the release branch's version number is updated
+and it's published as the final release. If regressions or serious
+problems are discovered after the final release we may make an additional
+point release from that branch.
+
+The process or timing can vary if that seems appropriate in a particular
+case but we try to release on a regular four week cycle.
+
+The net effect is that the code gets some extra testing before release,
+and the trunk is always open for general development.
+
+
+
Starting a Release
------------------
@@ -24,25 +57,24 @@
series for every *x.y* release.
-Weekly Status Updates
+Weekly Metronome Mail
---------------------
-TODO: Things to cover:
-
-* Early communication to downstream teams (e.g. Launchpad) about changes in dependencies.
-* Reminder re lifecycle and where we're up to right now
-* Summary of recent successes and pending work
+Every week the release manager should send a mail to the Bazaar list
+covering these points (as appropriate):
+
+* Early communication about changing dependencies or defaults
+
+* Reminder re lifecycle and where we're up to right now, in particular the
+ dates for the next release and/or candidate.
+
+* Summary of recent successes and pending work.
+
* Reminder re release objectives
+
* Reminder re things needing attention, e.g. bug triage, reviews, testing of certain things, etc.
-Feature Freeze
---------------
-
-TODO: Get material from http://bazaar-vcs.org/FeatureFreeze.
-
-
-
Preparing the tree for release
------------------------------
@@ -58,16 +90,35 @@
Register the branch at https://launchpad.net/products/bzr/+addbranch
-#. Run the automatic test suite and any non-automated tests. (For example, try a download over http; these should eventually be scripted though not automatically run.). Try to have all optional dependencies installed so that there are no tests skipped. Also make sure that you have the c extensions compiled (``make`` or ``python setup.py build_ext -i``).
-
-#. In the release branch, update ``version_info`` in ``./bzrlib/__init__.py``
+#. Make a local branch for preparing this release. (Only for the first
+ release in a series, otherwise you should already have a branch.) ::
+
+ bzr branch trunk prepare-1.6
+
+#. Configure pqm-submit for this branch, with a section like this in
+ ``~/.bazaar/locations.conf``::
+
+ [/home/mbp/bzr/prepare-1.4]
+ pqm_email = Canonical PQM <pqm at bazaar-vcs.org>
+ submit_branch = http://bazaar-vcs.org/bzr/bzr.1.4
+ submit_to = bazaar at lists.canonical.com
+
+#. In the release branch, update ``version_info`` in
+ ``./bzrlib/__init__.py``.
+ (This must match ``_script_version`` in the ``bzr`` script, but
+ that is updated at the start of the release cycle, and
+ doesn't need to say if it's an rc or final release.)
+
+ Run this command and check the output::
+
+ ./bzr --version
#. Add the date and release number to ``./NEWS``, and a one-paragraph
summary of changes in this release.
#. Commit these changes to the release branch, using a command like::
- bzr commit -m "(jam) Release 0.12rc1."
+ bzr commit -m "Release 0.12rc1."
The diff before you commit will be something like::
@@ -95,10 +146,14 @@
version_string = '%d.%d.%d' % version_info[:3]
#. Submit those changes to PQM for merge into the appropriate release
- branch.
+ branch::
+
+ bzr push
+ bzr pqm-submit -m "(mbp) prepare 1.6"
#. When PQM succeeds, pull down the master release branch.
+
Making the source tarball
-------------------------
@@ -131,7 +186,7 @@
escudero, and also update the ``latest`` symlink in
``/srv/bazaar.canonical.com/doc/``.)
-#. Announce on the `Bazaar home page`__
+#. Announce on the `Bazaar home page`__.
__ http://bazaar-vcs.org/
@@ -176,14 +231,13 @@
This should be done for both release candidates and final releases. If you do not have a Freshmeat account yet, ask one of the existing admins.
-#. Update http://en.wikipedia.org/wiki/Bzr -- this should be done for final releases but not Release Candidates.
+#. Update http://en.wikipedia.org/wiki/Bzr -- this should be done for final releases but not for Release Candidates.
#. Package maintainers should update packages when they see the
announcement.
-#. Blog about it.
-
-#. Post to http://mail.python.org/mailman/listinfo/python-announce-list for major releases
+#. For final releases, also send the announcement mail to
+ info-gnu at gnu.org and python-announce-list at python.org.
#. Update the python package index: <http://pypi.python.org/pypi/bzr> - best
done by running ::
@@ -210,15 +264,23 @@
----------------------------------
We build Ubuntu ``.deb`` packages for Bazaar as an important part of the release
-process. These packages are hosted in a `Personal Package Archive (PPA)`__ on
-Launchpad, at <https://launchpad.net/~bzr/+archive>.
+process. These packages are hosted in a few `Personal Package Archives (PPA)`__ on
+Launchpad.
__ https://help.launchpad.net/PPAQuickStart
+As of June 2008, there are actually two PPAs:
+
+<https://launchpad.net/~bzr/+archive>
+ Final released versions.
+
+<https://launchpad.net/~bzr-beta-ppa/+archive>
+ Releases and release candidates.
+
We build packages for every supported Ubuntu release
<https://wiki.ubuntu.com/Releases>. Packages need no longer be updated
when the release passes end-of-life because all users should
-updated by then.
+updated by then. (As of May 2009, Edgy Eft is no longer supported.)
The ``debian/`` directory containing the packaging information is kept in
branches on Launchpad, named like
@@ -235,6 +297,13 @@
* Configure ``dput`` to upload to our PPA with this section in your
``~/.dput.cf``::
+ [bzr-beta-ppa]
+ fqdn = ppa.launchpad.net
+ method = ftp
+ incoming = ~bzr-beta-ppa/ubuntu
+ login = anonymous
+ allow_unsigned_uploads = 0
+
[bzr-ppa]
fqdn = ppa.launchpad.net
method = ftp
@@ -242,6 +311,16 @@
login = anonymous
allow_unsigned_uploads = 0
+ You may also want to add these lines to prevent inadvertently attempting
+ to upload into Ubuntu or Debian, which will give a somewhat unclear
+ error::
+
+ [DEFAULT]
+ default_host_main = notspecified
+
+ [notspecified]
+ fqdn = SPECIFY.A.PPA.NAME
+
* You need a Ubuntu (or probably Debian) machine, and ::
sudo apt-get install build-essential devscripts dput quilt patch
@@ -254,12 +333,16 @@
#. Download the official tarball of the release to e.g. ``~/bzr/Releases``
-#. Copy the original tarball into your per-disto directory, then untar it
- and if necessary rename it::
+#. Copy the original tarball into your per-disto directory, then untar
+ it::
cp -l ~/bzr/Releases/bzr-1.3.tar.gz bzr_1.3.orig.tar.gz
tar xfvz bzr_1.3.orig.tar.gz
- mv bzr bzr-1.3
+
+ The bzrtools extracted directory does not contain a version number
+ and must be renamed::
+
+ mv bzrtools bzrtools-1.3.0
#. Change into that directory and check out the packaging branch::
@@ -316,22 +399,17 @@
Check that file is reasonable: it should be uploading to the intended
distribution, have a .orig file included, and the right version number.
-#. Upload into the PPA::
+#. Upload into the appropriate PPA, either ``bzr-ppa`` or
+ ``bzr-beta-ppa``::
dput bzr-ppa ../bzr__1.3-1\~bazaar1\_source.changes
- Don't forget the ``bzr-ppa`` component or dput will try to upload into
- the main archive by default. You can disable this by adding this
- section to your ``.dput.cf``::
-
- [ubuntu]
- fqdn = SPECIFY.A.PPA.NAME
-
#. Copy the uploaded package over to other Ubuntu releases, taking advantage
of Launchpad's Copy Package feature <https://launchpad.net/~bzr/+archive/+copy-packages>
- **Caution:** Make sure the dependencies are the same between Ubuntu releases,
- Dapper has different dependencies, but others might change in time.
+ **Note:** The packaging dependencies may vary between different distro series.
+ As of bzr 1.5, Dapper uses ``python-support`` and later distributions use
+ ``python-central``.
If you upload a release-specific version, you should add a ~release1 to
the package version, for example:: bzr.1.3-1~bazaar1~dapper1
@@ -344,3 +422,6 @@
summary of current package versions with::
apt-cache madison bzr
+
+..
+ vim: filetype=rst textwidth=74 ai shiftwidth=4
=== modified file 'doc/index.txt'
--- a/doc/index.txt 2008-05-06 00:45:01 +0000
+++ b/doc/index.txt 2008-06-05 03:27:37 +0000
@@ -3,7 +3,8 @@
============================
The latest version of these documents are available from Bazaar's
-documentation site, http://doc.bazaar-vcs.org.
+documentation site, <http://doc.bazaar-vcs.org/>, and more documentation
+may be linked from <http://bazaar-vcs.org/Documentation>.
Core Documentation
==================
@@ -18,7 +19,8 @@
* `Release Notes <en/release-notes/NEWS.html>`_
-* `Developer Guide <en/developer-guide/HACKING.html>`_
+* `Developer Document Catalog <developers/index.html>`_ |--| for developers
+ of Bazaar and plugins
Tutorials
@@ -33,32 +35,26 @@
* `Centralized workflow <en/tutorials/centralized_workflow.html>`_
-Other Documentation
-===================
-
-Moving to Bazaar (Web links):
+Web links
+=========
* `Switching Guides <http://bazaar-vcs.org/BzrSwitching>`_
- - for users moving from another VCS tool
+ |--| for users moving from another VCS tool
* `Migration Guide <http://bazaar-vcs.org/BzrMigration>`_
- - for teams migrating history from another VCS tool
-
-Other Documents (Web links):
+ |--| for teams migrating history from another VCS tool
* `Glossary <http://bazaar-vcs.org/BzrGlossary>`_
* `Frequently Asked Questions <http://bazaar-vcs.org/FAQ>`_
-* `bzrlib API reference <http://bazaar-vcs.org/BzrLib>`_
-
-Technical specifications, roadmaps and various
-technical notes are available in English below:
-
-* `Developer Document Catalog <developers/index.html>`_
-
Other Languages
===============
* `Spanish Documentation <index.es.html>`_
+
+.. |--| unicode:: U+2014
+
+..
+ vim: ft=rst tw=74 ai
More information about the bazaar-commits
mailing list