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