Rev 4693: Merge with bzr.dev. in http://people.canonical.com/~robertc/baz2.0/integration

Robert Collins robertc at robertcollins.net
Thu Sep 17 23:26:48 BST 2009


At http://people.canonical.com/~robertc/baz2.0/integration

------------------------------------------------------------
revno: 4693 [merge]
revision-id: robertc at robertcollins.net-20090917222636-mdi0rc2mi2w2ohtq
parent: robertc at robertcollins.net-20090917115441-2ug57z6eyrnb6zim
parent: pqm at pqm.ubuntu.com-20090917135110-f7vy8a1pc6sap670
committer: Robert Collins <robertc at robertcollins.net>
branch nick: integration
timestamp: Fri 2009-09-18 08:26:36 +1000
message:
  Merge with bzr.dev.
added:
  tools/packaging/update-control.sh updatecontrol.sh-20090525105938-f6wej3ydmflfuijk-1
modified:
  Makefile                       Makefile-20050805140406-d96e3498bb61c5bb
  NEWS                           NEWS-20050323055033-4e00b5db738777ff
  bzrlib/__init__.py             __init__.py-20050309040759-33e65acf91bbcd5d
  bzrlib/osutils.py              osutils.py-20050309040759-eeaff12fbf77ac86
  bzrlib/registry.py             lazy_factory.py-20060809213415-2gfvqadtvdn0phtg-1
  bzrlib/repofmt/weaverepo.py    presplitout.py-20070125045333-wfav3tsh73oxu3zk-1
  bzrlib/tests/__init__.py       selftest.py-20050531073622-8d0e3c8845c97a64
  bzrlib/tests/blackbox/test_cat.py test_cat.py-20051201162916-f0937e4e19ea24b3
  bzrlib/tests/blackbox/test_diff.py test_diff.py-20060110203741-aa99ac93e633d971
  bzrlib/tests/blackbox/test_locale.py test_lang.py-20060824204205-80v50j25qkuop7yn-1
  bzrlib/tests/blackbox/test_serve.py test_serve.py-20060913064329-8t2pvmsikl4s3xhl-1
  bzrlib/tests/test_registry.py  test_lazy_factory.py-20060809213415-2gfvqadtvdn0phtg-2
  bzrlib/tests/test_selftest.py  test_selftest.py-20051202044319-c110a115d8c0456a
  doc/developers/ppa.txt         ppa.txt-20080722055539-606u7t2z32t3ae4w-1
  doc/developers/releasing.txt   releasing.txt-20080502015919-fnrcav8fwy8ccibu-1
  doc/en/user-guide/getting_help.txt getting_help.txt-20071128000722-ncxiua259xwbdbg7-2
  tools/packaging/build-packages.sh buildpackages.sh-20080821102059-fzlodktas65qmo1k-1
  tools/packaging/update-changelogs.sh updatechangelogs.sh-20080821102059-fzlodktas65qmo1k-2
  tools/packaging/update-packaging-branches.sh updatepackagingbranc-20080825210254-6is8ciit1yzyd3a2-1
=== modified file 'Makefile'
--- a/Makefile	2009-09-11 07:55:48 +0000
+++ b/Makefile	2009-09-16 08:59:26 +0000
@@ -396,7 +396,7 @@
 
 .PHONY: dist dist-upload-escudero check-dist-tarball
 
-# build a distribution tarball and zip file.
+# build a distribution source tarball
 #
 # this method of copying the pyrex generated files is a bit ugly; it would be
 # nicer to generate it from distutils.
@@ -406,15 +406,12 @@
 	expbasedir=`mktemp -t -d tmp_bzr_dist.XXXXXXXXXX` && \
 	expdir=$$expbasedir/bzr-$$version && \
 	tarball=$$PWD/../bzr-$$version.tar.gz && \
-	zipball=$$PWD/../bzr-$$version.zip && \
 	$(MAKE) clean && \
 	$(MAKE) && \
 	bzr export $$expdir && \
 	cp bzrlib/*.c $$expdir/bzrlib/. && \
 	tar cfz $$tarball -C $$expbasedir bzr-$$version && \
-	(cd $$expbasedir && zip -r $$zipball bzr-$$version) && \
 	gpg --detach-sign $$tarball && \
-	gpg --detach-sign $$zipball && \
 	rm -rf $$expbasedir
 
 # run all tests in a previously built tarball
@@ -432,15 +429,10 @@
 dist-upload-escudero:
 	version=`./bzr version --short` && \
 	tarball=../bzr-$$version.tar.gz && \
-	zipball=../bzr-$$version.zip && \
-	scp $$zipball $$zipball.sig $$tarball $$tarball.sig \
+	scp $$tarball $$tarball.sig \
 	    escudero.ubuntu.com:/srv/bazaar.canonical.com/www/releases/src \
 		&& \
 	echo verifying over http... && \
-	curl http://bazaar-vcs.org/releases/src/bzr-$$version.zip \
-		| diff -s - $$zipball && \
-	curl http://bazaar-vcs.org/releases/src/bzr-$$version.zip.sig \
-		| diff -s - $$zipball.sig 
 	curl http://bazaar-vcs.org/releases/src/bzr-$$version.tar.gz \
 		| diff -s - $$tarball && \
 	curl http://bazaar-vcs.org/releases/src/bzr-$$version.tar.gz.sig \

=== modified file 'NEWS'
--- a/NEWS	2009-09-17 11:54:41 +0000
+++ b/NEWS	2009-09-17 22:26:36 +0000
@@ -52,6 +52,9 @@
   the partial packs created during the conversion not being consolidated
   at the end of the conversion process. (Robert Collins, #423818)
 
+* Don't give a warning on Windows when failing to import ``_readdir_pyx``
+  as it is never built. (John Arbash Meinel, #430645)
+
 * Don't restrict the command name used to run the test suite.
   (Vincent Ladeuil, #419950)
 
@@ -65,15 +68,22 @@
 * Network streams now decode adjacent records of the same type into a
   single stream, reducing layering churn. (Robert Collins)
 
+* Make sure that we unlock the tree if we fail to create a TreeTransform
+  object when doing a merge, and there is limbo, or pending-deletions
+  directory.  (Gary van der Merwe, #427773)
+  
 * Prevent some kinds of incomplete data from being committed to a 2a
   repository, such as revisions without inventories or inventories without
   chk_bytes root records.
   (Andrew Bennetts, #423506)
 
-* Make sure that we unlock the tree if we fail to create a TreeTransform
-  object when doing a merge, and there is limbo, or pending-deletions
-  directory.  (Gary van der Merwe, #427773)
-  
+* Registry objects should not use iteritems() when asked to use items().
+  (Vincent Ladeuil, #430510)
+
+* Weave based repositories couldn't be cloned when committers were using
+  domains or user ids embedding '.sig'. Now they can.
+  (Matthew Fuller, Vincent Ladeuil, #430868)
+
 Improvements
 ************
 
@@ -94,6 +104,9 @@
 API Changes
 ***********
 
+* ``bzrlib.user_encoding`` has been removed; use
+  ``bzrlib.osutils.get_user_encoding`` instead.  (Martin Pool)
+
 * ``bzrlib.tests`` now uses ``stopTestRun`` for its ``TestResult``
   subclasses - the same as python's unittest module. (Robert Collins)
 
@@ -122,12 +135,15 @@
   to be parameterised. This is not expected to break external use of test
   parameterisation, and is substantially faster. (Robert Collins)
 
-* Test's that try to open a bzr dir on an arbitrary transport will now
+* Tests that try to open a bzr dir on an arbitrary transport will now
   fail unless they have explicitly permitted the transport via
   ``self.permit_url``. The standard test factories such as ``self.get_url``
   will permit the urls they provide automatically, so only exceptional
  tests should need to do this. (Robert Collins)
 
+* The full test suite is expected to pass when the C extensions are not
+  present. (Vincent Ladeuil, #430749)
+
 bzr 2.0rc2
 ##########
 

=== modified file 'bzrlib/__init__.py'
--- a/bzrlib/__init__.py	2009-09-15 02:57:23 +0000
+++ b/bzrlib/__init__.py	2009-09-16 07:47:47 +0000
@@ -31,16 +31,10 @@
     import bzrlib.lazy_regex
     bzrlib.lazy_regex.install_lazy_compile()
 
-from bzrlib.osutils import get_user_encoding
-
 
 IGNORE_FILENAME = ".bzrignore"
 
 
-# XXX: Deprecated as of bzr-1.17 use osutils.get_user_encoding() directly
-user_encoding = get_user_encoding()
-
-
 __copyright__ = "Copyright 2005, 2006, 2007, 2008, 2009 Canonical Ltd."
 
 # same format as sys.version_info: "A tuple containing the five components of
@@ -53,7 +47,7 @@
 version_info = (2, 1, 0, 'dev', 0)
 
 # API compatibility version: bzrlib is currently API compatible with 1.15.
-api_minimum_version = (1, 17, 0)
+api_minimum_version = (2, 1, 0)
 
 
 def _format_version_tuple(version_info):

=== modified file 'bzrlib/osutils.py'
--- a/bzrlib/osutils.py	2009-09-11 06:39:56 +0000
+++ b/bzrlib/osutils.py	2009-09-16 11:59:14 +0000
@@ -1828,7 +1828,8 @@
             from bzrlib._readdir_pyx import UTF8DirReader
             file_kind_from_stat_mode = UTF8DirReader().kind_from_mode
         except ImportError, e:
-            failed_to_load_extension(e)
+            # This is one time where we won't warn that an extension failed to
+            # load. The extension is never available on Windows anyway.
             from bzrlib._readdir_py import (
                 _kind_from_mode as file_kind_from_stat_mode
                 )

=== modified file 'bzrlib/registry.py'
--- a/bzrlib/registry.py	2009-03-23 14:59:43 +0000
+++ b/bzrlib/registry.py	2009-09-16 10:37:29 +0000
@@ -222,7 +222,10 @@
             yield key, getter.get_obj()
 
     def items(self):
-        return sorted(self.iteritems())
+        # We should not use the iteritems() implementation below (see bug
+        # #430510)
+        return sorted([(key, getter.get_obj())
+                       for key, getter in self._dict.items()])
 
     def _set_default_key(self, key):
         if not self._dict.has_key(key):

=== modified file 'bzrlib/repofmt/weaverepo.py'
--- a/bzrlib/repofmt/weaverepo.py	2009-08-18 14:49:52 +0000
+++ b/bzrlib/repofmt/weaverepo.py	2009-09-16 17:19:07 +0000
@@ -688,7 +688,7 @@
             path, ext = os.path.splitext(relpath)
             if ext == '.gz':
                 relpath = path
-            if '.sig' not in relpath:
+            if not relpath.endswith('.sig'):
                 relpaths.add(relpath)
         paths = list(relpaths)
         return set([self._mapper.unmap(path) for path in paths])

=== modified file 'bzrlib/tests/__init__.py'
--- a/bzrlib/tests/__init__.py	2009-09-17 11:54:41 +0000
+++ b/bzrlib/tests/__init__.py	2009-09-17 22:26:36 +0000
@@ -53,6 +53,7 @@
 from bzrlib import (
     branchbuilder,
     bzrdir,
+    config,
     debug,
     errors,
     hooks,
@@ -2693,6 +2694,14 @@
         super(TestCaseWithTransport, self).setUp()
         self.__vfs_server = None
 
+    def disable_missing_extensions_warning(self):
+        """Some tests expect a precise stderr content.
+
+        There is no point in forcing them to duplicate the extension related
+        warning.
+        """
+        config.GlobalConfig().set_user_option('ignore_missing_extensions', True)
+
 
 class ChrootedTestCase(TestCaseWithTransport):
     """A support class that provides readonly urls outside the local namespace.

=== modified file 'bzrlib/tests/blackbox/test_cat.py'
--- a/bzrlib/tests/blackbox/test_cat.py	2009-09-17 11:54:41 +0000
+++ b/bzrlib/tests/blackbox/test_cat.py	2009-09-17 22:26:36 +0000
@@ -24,6 +24,7 @@
 
 from bzrlib.tests import MemoryServer, TestCaseWithTransport
 
+
 class TestCat(TestCaseWithTransport):
 
     def test_cat(self):
@@ -68,6 +69,7 @@
 
     def test_cat_different_id(self):
         """'cat' works with old and new files"""
+        self.disable_missing_extensions_warning()
         tree = self.make_branch_and_tree('.')
         # the files are named after their path in the revision and
         # current trees later in the test case

=== modified file 'bzrlib/tests/blackbox/test_diff.py'
--- a/bzrlib/tests/blackbox/test_diff.py	2009-06-17 05:11:41 +0000
+++ b/bzrlib/tests/blackbox/test_diff.py	2009-09-17 09:51:29 +0000
@@ -21,11 +21,11 @@
 import os
 import re
 
-import bzrlib
-from bzrlib import workingtree
-from bzrlib.branch import Branch
-from bzrlib.tests import TestSkipped
-from bzrlib.tests.blackbox import ExternalBase
+from bzrlib import (
+    config,
+    tests,
+    workingtree,
+    )
 
 
 def subst_dates(string):
@@ -34,7 +34,7 @@
                   'YYYY-MM-DD HH:MM:SS +ZZZZ', string)
 
 
-class DiffBase(ExternalBase):
+class DiffBase(tests.TestCaseWithTransport):
     """Base class with common setup method"""
 
     def make_example_branch(self):
@@ -355,6 +355,7 @@
 
     def test_external_diff(self):
         """Test that we can spawn an external diff process"""
+        self.disable_missing_extensions_warning()
         # We have to use run_bzr_subprocess, because we need to
         # test writing directly to stdout, (there was a bug in
         # subprocess.py that we had to workaround).
@@ -366,7 +367,7 @@
                                            universal_newlines=True,
                                            retcode=None)
         if 'Diff is not installed on this machine' in err:
-            raise TestSkipped("No external 'diff' is available")
+            raise tests.TestSkipped("No external 'diff' is available")
         self.assertEqual('', err)
         # We have to skip the stuff in the middle, because it depends
         # on time.time()

=== modified file 'bzrlib/tests/blackbox/test_locale.py'
--- a/bzrlib/tests/blackbox/test_locale.py	2009-08-17 22:16:49 +0000
+++ b/bzrlib/tests/blackbox/test_locale.py	2009-09-17 09:51:29 +0000
@@ -19,17 +19,20 @@
 import os
 import sys
 
-from bzrlib.tests import TestCaseWithTransport, TestSkipped
-
-
-class TestLocale(TestCaseWithTransport):
+from bzrlib import (
+    config,
+    tests,
+    )
+
+
+class TestLocale(tests.TestCaseWithTransport):
 
     def setUp(self):
         super(TestLocale, self).setUp()
 
         if sys.platform in ('win32',):
-            raise TestSkipped('Windows does not respond to the LANG'
-                              ' env variable')
+            raise tests.TestSkipped('Windows does not respond to the LANG'
+                                    ' env variable')
 
         tree = self.make_branch_and_tree('tree')
         self.build_tree(['tree/a'])
@@ -41,6 +44,7 @@
         self.tree = tree
 
     def test_log_C(self):
+        self.disable_missing_extensions_warning()
         out, err = self.run_bzr_subprocess(
             '--no-aliases --no-plugins log -q --log-format=long tree',
                env_changes={'LANG':'C', 'BZR_PROGRESS_BAR':'none',

=== modified file 'bzrlib/tests/blackbox/test_serve.py'
--- a/bzrlib/tests/blackbox/test_serve.py	2009-09-17 11:54:41 +0000
+++ b/bzrlib/tests/blackbox/test_serve.py	2009-09-17 22:26:36 +0000
@@ -25,6 +25,7 @@
 import threading
 
 from bzrlib import (
+    config,
     errors,
     osutils,
     revision as _mod_revision,
@@ -42,6 +43,10 @@
 
 class TestBzrServe(TestCaseWithTransport):
 
+    def setUp(self):
+        super(TestBzrServe, self).setUp()
+        self.disable_missing_extensions_warning()
+
     def assertInetServerShutsdownCleanly(self, process):
         """Shutdown the server process looking for errors."""
         # Shutdown the server: the server should shut down when it cannot read

=== modified file 'bzrlib/tests/test_registry.py'
--- a/bzrlib/tests/test_registry.py	2009-03-23 14:59:43 +0000
+++ b/bzrlib/tests/test_registry.py	2009-09-16 10:37:29 +0000
@@ -21,13 +21,13 @@
 
 from bzrlib import (
     errors,
+    osutils,
     registry,
-    osutils,
+    tests,
     )
-from bzrlib.tests import TestCase, TestCaseInTempDir
-
-
-class TestRegistry(TestCase):
+
+
+class TestRegistry(tests.TestCase):
 
     def register_stuff(self, a_registry):
         a_registry.register('one', 1)
@@ -202,7 +202,64 @@
         self.assertIs(sftp_object, found_object)
 
 
-class TestRegistryWithDirs(TestCaseInTempDir):
+class TestRegistryIter(tests.TestCase):
+    """Test registry iteration behaviors.
+
+    There are dark corner cases here when the registered objects trigger
+    addition in the iterated registry.
+    """
+
+    def setUp(self):
+        super(TestRegistryIter, self).setUp()
+
+        # We create a registry with "official" objects and "hidden"
+        # objects. The later represent the side effects that led to bug #277048
+        # and #430510
+        self.registry =  registry.Registry()
+
+        def register_more():
+            self.registry.register('hidden', None)
+
+        self.registry.register('passive', None)
+        self.registry.register('active', register_more)
+        self.registry.register('passive-too', None)
+
+        class InvasiveGetter(registry._ObjectGetter):
+
+            def get_obj(inner_self):
+                # Surprise ! Getting a registered object (think lazy loaded
+                # module) register yet another object !
+                self.registry.register('more hidden', None)
+                return inner_self._obj
+
+        self.registry.register('hacky', None)
+        # We peek under the covers because the alternative is to use lazy
+        # registration and create a module that can reference our test registry
+        # it's too much work for such a corner case -- vila 090916
+        self.registry._dict['hacky'] = InvasiveGetter(None)
+
+    def _iter_them(self, iter_func_name):
+        iter_func = getattr(self.registry, iter_func_name, None)
+        self.assertIsNot(None, iter_func)
+        count = 0
+        for name, func in iter_func():
+            count += 1
+            self.assertFalse(name in ('hidden', 'more hidden'))
+            if func is not None:
+                # Using an object register another one as a side effect
+                func()
+        self.assertEqual(4, count)
+
+    def test_iteritems(self):
+        # the dict is modified during the iteration
+        self.assertRaises(RuntimeError, self._iter_them, 'iteritems')
+
+    def test_items(self):
+        # we should be able to iterate even if one item modify the dict
+        self._iter_them('items')
+
+
+class TestRegistryWithDirs(tests.TestCaseInTempDir):
     """Registry tests that require temporary dirs"""
 
     def create_plugin_file(self, contents):

=== modified file 'bzrlib/tests/test_selftest.py'
--- a/bzrlib/tests/test_selftest.py	2009-09-17 11:54:41 +0000
+++ b/bzrlib/tests/test_selftest.py	2009-09-17 22:26:36 +0000
@@ -28,6 +28,7 @@
 from bzrlib import (
     branchbuilder,
     bzrdir,
+    config,
     debug,
     errors,
     lockdir,
@@ -2406,6 +2407,7 @@
         """finish_bzr_subprocess raises self.failureException if the retcode is
         not the expected one.
         """
+        self.disable_missing_extensions_warning()
         process = self.start_bzr_subprocess(['wait-until-signalled'],
                                             skip_if_plan_to_signal=True)
         self.assertEqual('running\n', process.stdout.readline())

=== modified file 'doc/developers/ppa.txt'
--- a/doc/developers/ppa.txt	2009-02-16 10:13:56 +0000
+++ b/doc/developers/ppa.txt	2009-09-02 10:41:30 +0000
@@ -19,7 +19,7 @@
     Final released versions.
 
 <https://launchpad.net/~bzr-beta-ppa/+archive>
-    Releases and release candidates.    
+    Releases and release candidates.
 
 <https://launchpad.net/~bzr-nightly-ppa/+archive>
     Automatic nightly builds from trunk.
@@ -107,12 +107,16 @@
 release packages is as simple as::
 
   cd ~/dev/bzr/releases/packaging
-  ln ~/dev/bzr/releases/bzr-1.6.tar.gz ./bzr_1.6.orig.tar.gz
-  export UBUNTU_RELEASES="dapper feisty gutsy hardy intrepid"
+  export VERSION="1.17~rc1-1~bazaar1"
+  export PACKAGE="bzr"
+  export UBUNTU_RELEASES="dapper hardy intrepid jaunty karmic"
   ~/dev/bzr/bzr.dev/tools/packaging/update-packaging-branches.sh
-  ~/dev/bzr/bzr.dev/tools/packaging/update-changelogs.sh 1.6~beta3-1~bazaar1
-  ~/dev/bzr/bzr.dev/tools/packaging/build-packages
-  dput bzr-beta-ppa bzr_1.6~beta3-1~bazaar1*.changes
+  ~/dev/bzr/bzr.dev/tools/packaging/update-changelogs.sh
+  ~/dev/bzr/bzr.dev/tools/packaging/update-control.sh 1.16 1.17 1.18
+  ~/dev/bzr/bzr.dev/tools/packaging/build-packages.sh
+  dput bzr-beta-ppa ${PACKAGE}_$VERSION*.changes
+
+Rinse and repeat for all the plugins by changing VERSION and PACKAGE.
 
 Long Form
 ~~~~~~~~~
@@ -121,23 +125,34 @@
    release. Such as ``~/dev/bzr/releases/packaging/hardy``. In each of these
    branches, you will produce the package for the release.
 
+   The scripts will also create the branches and produce packages for
+   bzrtools and bzr-svn.
+
 #. Decide on the final version number.  It should be of this form::
 
-     bzr-1.6~beta3-1~bazaar1~hardy1
+     bzr-1.17~rc1-1~bazaar1~hardy1
 
    **Note:** There are three hyphen-separated parts: the *package name*,
    the *upstream version*, and the *packaging version*.
 
    **Caution:** Upstream betas or release candidates must insert a tilde
    to make them sort before the final release, like this:
-   ``bzr-1.6~beta3-1~bazaar1~hardy1``.
+   ``bzr-1.17~rc1-1~bazaar1~hardy1``.
 
    Final releases will use a release string of the form:
-   ``bzr-1.6-1~bazaar1~hardy1``
+   ``bzr-1.17-1~bazaar1~hardy1``
+
+   Set this base of this up as a usable environment variable::
+
+      export VERSION="1.17~rc1-1~bazaar1"
 
 #. Export the distroreleases that you will be packaging for::
 
-      export UBUNTU_RELEASES="dapper feisty gutsy hardy intrepid jaunty"
+      export UBUNTU_RELEASES="dapper hardy intrepid jaunty karmic"
+
+#. Export the program you are packaging::
+
+      export PACKAGE="bzr"
 
 #. Checkout (or update) the packaging branch for each supported release::
 
@@ -155,13 +170,23 @@
 
    For bzrtools this is typically::
 
-      Build-Depends-Indep: bzr (>= 1.6~), rsync
-      Depends: ${python:Depends}, bzr (>= 1.6~), bzr (<< 1.7~), patch
+      Build-Depends-Indep: bzr (>= 1.17~), rsync
+      Depends: ${python:Depends}, bzr (>= 1.17~), bzr (<< 1.18~), patch
+
+   There is a helper script which will update the control file and commit it
+   for all of your ``$UBUNTU_RELEASES``. It is available as::
+
+    tools/packaging/update-control.sh
+
+   You must supply the versions as arguments as follows
+   OLD_VERSION CURRENT_VERSION NEXT_VERSION, such as::
+
+    tools/packaging/update-control.sh 1.16 1.17 1.18
 
 #. Make a new ``debian/changelog`` entry for the new release,
    either by using ``dch`` or just editing the file::
 
-      dch -v '1.6~beta3-1~bazaar1~hardy1' -D hardy
+      dch -v '1.17~rc1-1~bazaar1~hardy1' -D hardy
 
    dch will default to the distro you're working in and this isn't checked
    against the version number (which is just our convention), so make sure 
@@ -171,7 +196,7 @@
    export DEBEMAIL=`bzr whoami` if it isn't already set), version number, and
    distribution.  It should look something like this::
 
-       bzr (1.6~beta3-1~bazaar1~hardy1) hardy; urgency=low
+       bzr (1.17~rc1-1~bazaar1~hardy1) hardy; urgency=low
      
         * New upstream release.
      
@@ -185,17 +210,11 @@
 
    You will also want to commit these changes into the packaging branch.
 
-   There is a helper script which will update the changelog and commit it
+   There is a helper script which will build all the packages
    for all of your ``$UBUNTU_RELEASES``. It is available as::
 
       tools/packaging/update-changelogs.sh
 
-   You must supply the release string, such as::
-
-      tools/packaging/update-changelogs.sh 1.6~beta3-1~bazaar1
-
-   It will automatically append the distro numbering on the end.
-
 #. Build the source packages::
 
       cd packaging-$DISTRO; bzr builddeb -S
@@ -207,13 +226,18 @@
 
    where ``$UID`` is the gpg key you want to use to sign the changes.
 
+   There is a helper script which will build the package
+   for all of your ``$UBUNTU_RELEASES``. It is available as::
+
+      tools/packaging/build-packages.sh
+
 #. Upload into the beta PPA for each release::
 
-     dput bzr-beta-ppa bzr_1.6-1*.changes
+     dput bzr-beta-ppa bzr*1.17-1*.changes
 
 #. For final release versions, also copy it into the ``~bzr`` PPA::
 
-     dput bzr-ppa ../bzr_1.6-1\~bazaar1\~hardy1\_source.changes
+     dput bzr-ppa ../bzr_1.17-1\~bazaar1\~hardy1\_source.changes
 
    Alternatively, you can use Launchpad's "copy" feature to copy the
    packages between repositories.
@@ -234,11 +258,13 @@
 
 #. Get a checkout of ``lp:~bzr/bzr-svn/hardy-ppa/``
 
-#. Merge from ``http://bzr.debian.org/pkg-bazaar/bzr-svn/experimental/``
-  
+#. Merge from ``http://bzr.debian.org/pkg-bazaar/bzr-svn/unstable/``
+
    This should bring in both upstream and packaging changes for the new
    release, and it's updated as part of the bzr-svn release process.
 
+   It's quite possible you will need to resolve some conflicts.
+
 #. Run ``dch -v 0.4.15-1~bazaar1-hardy1 -D hardy`` or similar
 
 #. Run ``bzr builddeb --source``

=== modified file 'doc/developers/releasing.txt'
--- a/doc/developers/releasing.txt	2009-09-15 06:07:11 +0000
+++ b/doc/developers/releasing.txt	2009-09-16 08:59:26 +0000
@@ -173,9 +173,6 @@
   
      make dist
 
-   This also makes a zip file, which is easier to access on Microsoft
-   Windows.
-
 #. Now we'll try expanding this tarball and running the test suite
    to check for packaging problems::
  
@@ -188,18 +185,33 @@
    failures.
 
 
+Publishing the source tarball
+-----------------------------
+
+#. Go to the relevant milestone page in Launchpad.
+
+#. Within that release, upload the source tarball and the GPG
+   signature.  Or, if you prefer, use the
+   ``tools/packaging/lp-upload-release`` script to do this.
+
+
+Announcing the source freeze
+----------------------------
+
+#. Post to the ``bazaar`` list, saying that the source has been frozen.
+   This is the cue for platform maintainers and plugin authors to update
+   their code.  This is done before the general public announcement of the
+   release.
+
+
 Publishing the release
 ----------------------
 
-Now you have the beta or releasable product.  The next step is making it
+There is normally a delay of a few days after the source freeze to allow
+for binaries to be built on various platforms.  Once they have been built,
+we have a releasable product.  The next step is to make it generally
 available to the world.
 
-go to the release
-
-#. Within that release, upload the source tarball and zipfile and the GPG
-   signature.  Or, if you prefer, use the
-   ``tools/packaging/lp-upload-release`` script to do this.
-
 #. Link from http://bazaar-vcs.org/Download to the tarball and signature.
 
 #. Announce on the `Bazaar home page <http://bazaar-vcs.org/>`_.

=== modified file 'doc/en/user-guide/getting_help.txt'
--- a/doc/en/user-guide/getting_help.txt	2007-11-28 00:07:56 +0000
+++ b/doc/en/user-guide/getting_help.txt	2009-09-14 02:30:23 +0000
@@ -1,18 +1,20 @@
 Getting help
 ============
 
-Bazaar comes with a built-in on-line help system. To see the list of topics,
-the command is::
+Bazaar comes with a built-in on-line help system, accessed through::
 
   bzr help
 
-To see the list of commands, the command is::
+You can ask for help on a command, or on non-command topics.  To see a
+list of available help of each kind, use either::
 
   bzr help commands
-
-To get help on topic xxx or command xxx, the command is::
-
-  bzr help xxx
+  bzr help topics
+
+For help on a particular command, use either of these forms::
+
+  bzr help status
+  bzr status --help
 
 If you wish to search the help or read it as a larger document, the
 information is also available in the Bazaar User Reference.

=== modified file 'tools/packaging/build-packages.sh'
--- a/tools/packaging/build-packages.sh	2009-02-16 10:13:56 +0000
+++ b/tools/packaging/build-packages.sh	2009-05-25 10:59:42 +0000
@@ -9,5 +9,5 @@
 fi
 
 for DISTRO in $UBUNTU_RELEASES; do
-    (cd "packaging-$DISTRO" && bzr builddeb -S)
+    (cd "$PACKAGE-$DISTRO" && bzr builddeb -S)
 done

=== modified file 'tools/packaging/update-changelogs.sh'
--- a/tools/packaging/update-changelogs.sh	2009-02-16 10:13:56 +0000
+++ b/tools/packaging/update-changelogs.sh	2009-06-03 10:26:06 +0000
@@ -7,22 +7,27 @@
     exit 1
 fi
 
-if [ "x$1" = "x" ]; then
+if [ "x$VERSION" = "x" ]; then
     echo "Missing version"
     echo "You want something like:"
-    echo "  update-changelogs.sh 1.6~rc1-1~bazaar1"
+    echo "  VERSION=1.6~rc1-1~bazaar1 update-changelogs.sh"
     echo "or"
-    echo "  update-changelogs.sh 1.6-1~bazaar1"
+    echo "  VERSION=1.6-1~bazaar1 update-changelogs.sh"
     exit
 fi
-VERSION=$1
+
+if [ -z "$1" ]; then
+    MSG="New upstream release"
+else
+    MSG=$1
+fi
 
 for DISTRO in $UBUNTU_RELEASES; do
     PPAVERSION="$VERSION~${DISTRO}1"
     (
         echo "Updating changelog for $DISTRO"
-	cd "packaging-$DISTRO" &&
-	dch -v $PPAVERSION -D $DISTRO -c changelog 'New upstream release.' &&
-	bzr commit -m "New upstream release: $PPAVERSION"
+        cd "$PACKAGE-$DISTRO" &&
+            dch -v $PPAVERSION -D $DISTRO -c changelog "$MSG." &&
+            bzr commit -m "$MSG: $PPAVERSION"
     )
 done

=== added file 'tools/packaging/update-control.sh'
--- a/tools/packaging/update-control.sh	1970-01-01 00:00:00 +0000
+++ b/tools/packaging/update-control.sh	2009-09-02 04:08:08 +0000
@@ -0,0 +1,31 @@
+#!/bin/bash
+
+if [ -z "$UBUNTU_RELEASES" ]; then
+    echo "Configure the distro platforms that you want to"
+    echo "build with a line like:"
+    echo '  export UBUNTU_RELEASES="dapper feisty gutsy hardy intrepid jaunty"'
+    exit 1
+fi
+
+OLD_VERSION=$1
+NEW_VERSION=$2
+NEXT_VERSION=$3
+if [ -z "$OLD_VERSION" -o -z "$NEW_VERSION" -o -z "$NEXT_VERSION" ]; then
+    echo "Missing version"
+    echo "You want something like:"
+    echo "  update-control.sh 1.5 1.6 1.7"
+    exit
+fi
+
+if [ "$PACKAGE" = "bzr" ]; then
+    continue
+fi
+for DISTRO in $UBUNTU_RELEASES; do
+    PPAVERSION="$VERSION~${DISTRO}1"
+    (
+        echo "Updating control for $DISTRO"
+        cd "$PACKAGE-$DISTRO" &&
+            sed -i -e "s/$NEW_VERSION~/$NEXT_VERSION~/;s/$OLD_VERSION~/$NEW_VERSION~/" control &&
+            bzr commit -m "New upstream release: $PPAVERSION, update control"
+    )
+done

=== modified file 'tools/packaging/update-packaging-branches.sh'
--- a/tools/packaging/update-packaging-branches.sh	2009-02-16 10:13:56 +0000
+++ b/tools/packaging/update-packaging-branches.sh	2009-06-03 10:20:19 +0000
@@ -9,12 +9,20 @@
 fi
 
 for DISTRO in $UBUNTU_RELEASES; do
-    if [ -d "packaging-$DISTRO" ] ; then
-        echo "Updating packaging-$DISTRO"
-        bzr update packaging-$DISTRO
+    if [ -d "$PACKAGE-$DISTRO" ] ; then
+        echo "Updating $PACKAGE-$DISTRO"
+        bzr update $PACKAGE-$DISTRO
+        if [ "$PACKAGE" = "bzr-svn" ] ; then
+            cd $PACKAGE-$DISTRO
+            bzr merge http://bzr.debian.org/pkg-bazaar/bzr-svn/unstable/
+            cd ..
+        fi
     else
-        echo "Checking out lp:~bzr/bzr/packaging-$DISTRO"
-        bzr co lp:~bzr/bzr/packaging-$DISTRO
+        SRC="lp:~bzr/$PACKAGE/packaging-$DISTRO"
+        if [ "$PACKAGE" = "bzr-svn" ] ; then
+            SRC="lp:~bzr/$PACKAGE/beta-ppa-$DISTRO"
+        fi
+        echo "Checking out $SRC"
+        bzr co $SRC $PACKAGE-$DISTRO
     fi
 done
-




More information about the bazaar-commits mailing list