Bazaar 2.3b1

Milestone information

Project:
Bazaar
Series:
2.3
Version:
2.3b1
Released:
 
Registrant:
Vincent Ladeuil
Release registered:
Active:
No. Drivers cannot target bugs and blueprints to this milestone.  

Download RDF metadata

Activities

Assigned to you:
No blueprints or bugs assigned to you.
Assignees:
1 Alexandre Garnier, 4 Andrew Bennetts, 6 John A Meinel, 6 John C Barstow, 1 Marius Kruger, 6 Martin Packman, 1 Matthäus G. Chajdas, 1 Neil Martinsen-Burrell, 1 Parth Malwankar, 8 Vincent Ladeuil
Blueprints:
No blueprints are targeted to this milestone.
Bugs:
35 Fix Released

Download files for this release

After you've downloaded a file, you can verify its authenticity using its MD5 sum or signature. (How do I verify a download?)

File Description Downloads
download icon bzr-2.3b1.win32-py2.6.exe (md5, sig) Windows Python 2.6 Installer 136
last downloaded 4 days ago
download icon bzr-2.3b1.win32-py2.5.exe (md5, sig) Windows Python 2.5 Installer 89
last downloaded 4 days ago
download icon bzr-2.3b1.win32-py2.4.exe (md5, sig) Windows Python 2.4 Installer 76
last downloaded 4 days ago
download icon bzr-2.3b1-setup.exe (md5, sig) Windows Standalone Installer 213
last downloaded 4 days ago
download icon Bazaar-2.3b1-OSX-10.5-1.dmg (md5, sig) Mac OS X 10.5 Installer 85
last downloaded 4 days ago
download icon Bazaar-2.3b1-OSX-10.6-1.dmg (md5, sig) Mac OS X 10.6 Installer 284
last downloaded 4 days ago
download icon bzr-2.3b1.tar.gz (md5, sig) Source tarball 1,609
last downloaded 4 days ago
Total downloads: 2,492

Release notes 

This is the first beta of the 2.3 series, leading up to a 2.3.0
release in January or February. Beta releases are suitable for everyday use
but may cause some incompatibilities with plugins. Some plugins may need
small updates to work with 2.3b1.

2.3b1 includes some performance improvements in both speed and memory
consumption, some preliminary support for generating a texinfo version of
the doc and better support for launchpad. Many changes were made to make
our test suite more robust as well as numerous documentation fixes. It
improves the common infrastructure for dealing with colocated named
branches and foreign branches. We plan to continue with these themes
through the 2.3 series.

It also includes bug fixes for 2.0.6, 2.1.3 and 2.2.1 and over 40 fixes of
its own.

Changelog 

View the full changelog

bzr 2.3b1
#########

:2.3b1: 2010-09-20

This is the first beta of the 2.3 series, leading up to a 2.3.0
release in January or February. Beta releases are suitable for everyday use
but may cause some incompatibilities with plugins. Some plugins may need
small updates to work with 2.3b1.

2.3b1 includes some performance improvements in both speed and memory
consumption, some preliminary support for generating a texinfo version of
the doc and better support for launchpad. Many changes were made to make
our test suite more robust as well as numerous documentation fixes. It
improves the common infrastructure for dealing with colocated named
branches and foreign branches. We plan to continue with these themes
through the 2.3 series.

It also includes bug fixes for 2.0.6, 2.1.3 and 2.2.1 and over 40 fixes of
its own.

Compatibility Breaks
********************

* BzrError subclasses no longer support the name "message" to be used
  as an argument for __init__ or in _fmt format specification as this
  breaks in some Python versions. errors.LockError.__init__ argument
  is now named "msg" instead of earlier "message".
  (Parth Malwankar, #603461)

* Additional merges after an unrelated branch has been merged with its
  history no longer crash when deleted files are involved.
  (Vincent Ladeuil, John Arbash Meinel, #375898)

* ``bzr add SYMLINK/FILE`` now works properly when the symlink points to a
  previously-unversioned directory within the tree: the directory is
  marked versioned too.
  (Martin Pool, #192859)

* ``bzr commit SYMLINK`` now works, rather than trying to commit the
  target of the symlink.
  (Martin Pool, John Arbash Meinel, #128562)

* ``bzr upgrade`` now creates the ``backup.bzr`` directory with the same
  permissions as ``.bzr`` directory on a POSIX OS.
  (Parth Malwankar, #262450)

* ``bzrlib.transform.TreeTransformBase.final_kind``,
  ``bzrlib.transform.TreeTransform.tree_kind`` and
  ``bzrlib.transform.TransformPreview.tree_kind`` now return None instead
  of raising NoSuchFile. (Vincent Ladeuil)

* CommitBuilder now uses the committer instead of _config.username to generate
  the revision-id. (Aaron Bentley, #614404)

* Configuration files in ``${BZR_HOME}`` are now written in an atomic
  way which should help avoid problems with concurrent writers.
  (Vincent Ladeuil, #525571)

* `ControlDirFormat` and `ControlDir` have been split out of `BzrDirFormat`
  and `BzrDir`, respectively. `ControlDirFormat`
  and `ControlDir` should be used as the base classes for new non-.bzr
  implementations.

  `BzrDirFormat.register_control_format` has been renamed to
  `ControlDirFormat.register_format`.

  `BzrDirFormat.register_server_control_format` has been removed.

  Probing for control directories is now done by separate objects derived
  from `bzrlib.controldir.Prober` and registered using
  `bzrlib.controldir.ControlDirFormat.register_prober` or
  `bzrlib.controldir.ControlDirFormat.register_server_prober`.
  `BzrDirFormat.probe_transport` has been moved onto `Prober`.

  `BzrDirFormat.register_format` has been renamed to
  `BzrProber.register_bzrdir_format`.

  `bzrlib.bzrdir.network_format_registry` has been moved to
  `bzrlib.controldir`.

  (Jelmer Vernooij)

* Cope with Microsoft FTP server that returns reply '250 Directory
  created' when mkdir succeeds. (Martin Pool, #224373)

* Don't traceback when a lockdir's ``held/info`` file is corrupt (e.g.
  contains only NUL bytes). Instead warn the user, and allow ``bzr
  break-lock`` to remove it. (Andrew Bennetts, #619872)

* `decode` parameter to get() method in FtpTransport and GioTransport classes
  is deprecated. (Alexander Belchenko)

* `FileInWrongBranch` is deprecated in favour of `PathNotChild` and no
  longer raised.
  (Martin Pool)

* Fix ``AttributeError on parent.children`` when adding a file under a
  directory that was a symlink in the previous commit.
  (Martin Pool, #192859)

* Fix ``AttributeError: 'NoneType' object has no attribute 'close'`` in
  ``_close_ssh_proc`` when using ``bzr+ssh://``. This was causing
  connections to pre-1.6 bzr+ssh servers to fail, and causing warnings on
  stderr in some other circumstances. (Andrew Bennetts, #633745)

* Only call ``setlocale`` in the bzr startup script on posix systems. This
  avoids an issue with the newer windows C runtimes used by Python 2.6 and
  later which can mangle bytestrings printed to the console.
  (Martin [gz], #631350)

* Prevent ``CHKMap.apply_delta`` from generating non-canonical CHK maps,
  which can result in "missing referenced chk root keys" errors when
  fetching from repositories with affected revisions.
  (Andrew Bennetts, #522637)

* Raise ValueError instead of a string exception.
  (John Arbash Meinel, #586926)

* Reduce peak memory by one copy of compressed text.
  (John Arbash Meinel, #566940)

* Repositories accessed via a smart server now reject being stacked on a
  repository in an incompatible format, as is the case when accessing them
  via other methods. This was causing fetches from those repositories via
  a smart server (e.g. using ``bzr branch``) to receive invalid data.
  (Andrew Bennetts, #562380)

* Selftest with versions of subunit that support ``stopTestRun`` will no longer
  error. This error was caused by 2.0 not being updated when upstream
  python merged the end of run patch, which chose ``stopTestRun`` rather than
  ``done``. (Robert Collins, #571437)

* Stop ``AttributeError: 'module' object has no attribute 'ElementTree'``
  being thrown from ``xml_serializer`` on certain cElementTree setups.
  (Martin [gz], #254278)

* The old ``bzr selftest --benchmark`` option has been removed.
  <https://launchpad.net/bzr-usertest> is an actively-maintained
  macrobenchmark suite.
  (Martin Pool)

* `tree_files` and `internal_tree_files` are now deprecated in favor of
  `WorkingTree.open_containing_paths`.
  (Martin Pool)

* Upgrading or fetching from a non-rich-root repository to a rich-root
  repository (e.g. from pack-0.92 to 2a) no longer fails with
  ``'Inter1and2Helper' object has no attribute 'source_repo'``. This was
  a regression from Bazaar 2.1. (Andrew Bennetts, #636930)

* When passing a file to ``UTF8DirReader`` make sure to close the current
  directory file handle after the chdir fails. Otherwise when passing many
  filenames into a command line ``bzr status`` we would leak descriptors.
  (John Arbash Meinel, #583486)

New Features
************

* Added ``pre_status`` and ``post_status`` hooks. This allows plugins
  to register custom handlers which will be invoked before/after the
  standard status output is displayed. (Parth Malwankar)

* ``bzr break-lock --config [location]`` can now break config files
  locks. (Vincent Ladeuil, #525571)

* ``bzrlib.config.LockableConfig`` is a base class for config files that
  needs to be protected against multiple writers. All methods that
  change a configuration variable value must be decorated with
  @needs_write_lock (set_option() for example).
  (Vincent Ladeuil, #525571)

* The ``lp:`` prefix will now use your known username (from
  ``bzr launchpad-login``) to expand ``~`` to your username. For example:
  ``bzr launchpad-login user && bzr push lp:~/project/branch`` will now
  push to ``lp:~user/project/branch``. (John Arbash Meinel)

* New development format ``development8-subtree`` which is similar to the
  ``2a`` format and adds subtree support. (Jelmer Vernooij)

Bug Fixes
*********

* Allow using both --using and --diff-options.
  (Matthäus G. Chajdas, #234708)

* Allow using non-integer bug ID with generic bug trackers.
  (Alexandre Garnier, #440472)

* ``bzr add SYMLINK/FILE`` now works properly when the symlink points to a
  previously-unversioned directory within the tree: the directory is
  marked versioned too.
  (Martin Pool, #192859)

* ``bzr ignore PATTERNS`` exits with error if a bad pattern is supplied.
  ``InvalidPattern`` exception error message now shows faulting
  regular expression.
  (Parth Malwankar #300062)

* ``clean-tree`` issues a warning if it is unable to delete a file
  due to ``errno.EACCES`` instead of exiting with an error on Windows.
  (Parth Malwankar, #430785)

* CommitBuilder now uses the committer instead of _config.username to generate
  the revision-id. (Aaron Bentley, #614404)

* Configuration files in ``${BZR_HOME}`` are now protected against
  concurrent writers by using a lock. (Vincent Ladeuil, #525571)

* Cope with Microsoft FTP Server and VSFTPd that return reply '250
  Directory created' when mkdir succeeds. (Martin Pool, #224373)

* Decrease peak memory during ``bzr send``. The old code was caching all
  text content and all inventory strings for all revisions before
  computing the diffs. Now we only cache as long as there is a child that
  will need them. Sending 2000 bzr revisions drops from 1.2GB peak to
  256MB peak. (John Arbash Meinel, #614576)

* Don't print internal object name when print an invalid revision spec
  error. (Neil Martinsen-Burrell, #598701)

* Don't traceback when a lockdir's ``held/info`` file is corrupt (e.g.
  contains only NUL bytes). Instead warn the user, and allow ``bzr
  break-lock`` to remove it. (Andrew Bennetts, #619872)

* ``EPIPE`` can be raised during test server shutdown. This happened on
  gentoo only so far. (Vincent Ladeuil, #627277)

* Errors occurring during http(s) test server starts should now be
  handled cleanly. (Vincent Ladeuil, #392402)

* Fix ``AttributeError on parent.children`` when adding a file under a
  directory that was a symlink in the previous commit.
  (Martin Pool, #192859)

* Fix ``AttributeError: 'NoneType' object has no attribute 'close'`` in
  ``_close_ssh_proc`` when using ``bzr+ssh://``. This was causing
  connections to pre-1.6 bzr+ssh servers to fail, and causing warnings on
  stderr in some other circumstances. (Andrew Bennetts, #633745)

* Fix spurious paramiko warning on hardy by ensuring that ``selftest``
  properly remove its warning filter. (Vincent Ladeuil, #625686)

* ``HTTP/1.1`` test servers now set a ``Content-Length`` header to comply
  with pedantic ``HTTP/1.1`` clients. (Vincent Ladeuil, #568421)

* Most of the leaked threads during selftest are now fixed, allowing the
  full test suite to pass on gentoo.
  (Vincent Ladeuil, #392127)

* Only call ``setlocale`` in the bzr startup script on posix systems. This
  avoids an issue with the newer windows C runtimes used by Python 2.6 and
  later which can mangle bytestrings printed to the console.
  (Martin [gz], #631350)

* `PathNotChild` should not give a traceback.
  (Martin Pool, #98735)

* ``PQM`` will no longer ignore syntax errors in submissions.
  (Vincent Ladeuil, #626667)

* Prevent ``CHKMap.apply_delta`` from generating non-canonical CHK maps,
  which can result in "missing referenced chk root keys" errors when
  fetching from repositories with affected revisions.
  (Andrew Bennetts, #522637)

* strace test-helper tests cope with the new Ubuntu policy of not allowing
  users to attach to their own processes by default.
  (Martin Pool, #626679)

* Test classes like ``TestCase``, ``TestLoader``, and ``TestSuite`` should
  be available from ``bzrlib.tests.*``. They used to be, but were
  accidentally removed. (John Arbash Meinel, #627438)

* ``Transport.stat`` on a symlink, including a transport pointing directly
  to a symlink, now returns information about the symlink.
  (Martin Pool)

* Upgrading or fetching from a non-rich-root repository to a rich-root
  repository (e.g. from pack-0.92 to 2a) no longer fails with
  ``'Inter1and2Helper' object has no attribute 'source_repo'``.
  (Andrew Bennetts, #636930)

* Wait for the SSH server to actually finish, rather than just waiting for
  it to negotiate the key exchange. (John Arbash Meinel, #626876)

Improvements
************

* ``bzr remove`` now just backs up changed files instead of exiting,
  forcing you to choose to either keep or delete them. Bazaar will now delete
  the files if they can easily be recovered using revert, otherwise they
  will be backed up (adding an extention of the form .~#~).
  (Marius Kruger, #400554)

* ``bzr revert`` and ``bzr status`` are up to 15% faster on large trees
  with many changes by not repeatedly building a list of all file-ids.
  (Andrew Bennetts)

* Decrease memory consumption when many chk index pages are loaded. (Such
  as during ``bzr co`` or ``bzr ls -R`` of a large tree.) Often we need to
  read many chk pages because the individual chk map nodes will be spread
  randomly. Peak memory for 'bzr ls -R' on a large tree dropped from 396MB
  down to 247MB, expect even more significant savings on 64-bit platforms.
  (John Arbash Meinel)

* ``DirState`` internals use a little bit less memory. For bzr.dev it
  drops the memory from 1MB down to about 800kB. And replaces a few
  thousand tuples and sets with StaticTuple. (John Arbash Meinel)

* Inventory entries now consume less memory (on 32-bit Ubuntu file entries
  have dropped from 68 bytes to 40, and directory entries from 120 bytes
  to 48). (Andrew Bennetts)

* When building new working trees, default to reading from the repository
  rather than the source tree unless explicitly requested. (via
  ``--files-from`` and ``--hardlink`` for ``bzr branch`` and
  ``bzr checkout``. Generally, 2a format repositories extract
  content faster than seeking and reading content from another tree,
  especially in cold-cache situations. (John Arbash Meinel, #607298)

* Add ``__pycache__`` to the default ``ignores`` file. Future releases of
  Python will use this directory to store bytecodes.
  (Andrea Corbellini, #626687)

Documentation
*************

* Added a builder/writer sphinx extension that can generate texinfo files. The
  generated files are syntactically correct but the info navigation nodes
  needs more work. (Vincent Ladeuil, #219334)

* First tests defined for sphinx, including a new bzrlib.tests.features.sphinx
  to make the tests conditional.
  (Vincent Ladeuil)

* Fix a lot of references in the docs to the old http://bazaar-vcs.org to
  the new http://bazaar.canonical.com or http://wiki.bazaar.canonical.com
  (John Arbash Meinel, #617503)

API Changes
***********

* Configuration files should now use the ``from_string`` constructor rather
  than the ``file`` parameter of the ``_get_parser`` method. The later has
  been deprecated. ``from_string`` also accept a ``save=True`` parameter to
  have the configuration file immediately written to disk.
  (Vincent Ladeuil)

* Deprecate treating a `PushResult` and `PullResult` as an integer for the
  relative change in revno.
  (Martin Pool)
  `
* ``IniBaseConfig`` objects should now use the ``from_string`` constructor
  the rather than the ``file`` parameter of the ``_get_parser`` method. The
  later has been deprecated. (Vincent Ladeuil)

* InventoryEntry instances now raise AttributeError if you try to assign
  to attributes that are irrelevant to that kind of entry. e.g. setting
  ``symlink_target`` on an InventoryFile will fail. It is still okay to
  read those attributes on any kind of InventoryEntry. The complete list
  of affected attributes is: ``executable``, ``text_id``, ``text_sha1``,
  ``text_size`` (only valid for kind == file); ``symlink_target`` (only
  valid for kind == link); and ``reference_revision`` (only valid for kind
  == tree-reference). (Andrew Bennetts)

* InventoryEntry objects no longer have ``_put_in_tar`` or
  ``_put_on_disk`` methods. (Andrew Bennetts)

* The ``get_filename`` parameter in the ``config.IniBaseConfig``
  constructor has been deprecated, use the ``file_name`` parameter instead.
  (Vincent Ladeuil)

Internals
*********

* Remove used and broken code path in ``BranchInitHookParams.__repr__``.
  (Andrew Bennetts)

Testing
*******

* ``build_tree_contents`` can create symlinks.
  (Martin Pool, John Arbash Meinel)

* Catch socket errors to avoid
  bt.test_sftp_transport.SSHVendorBadConnection.test_bad_connection_ssh
  random failures. (Vincent Ladeuil, #601804)

* HTTP test servers will leak less threads (and sockets) and will not hang on
  AIX anymore. (Vincent Ladeuil, #405745)

* On platforms that don't support forking give a nice error message saying so
  when ``bzr selftest --parallel=fork`` is used. (Martin [gz], #528730)

* Rearrange thread leak detection code to eliminate global state and make it
  possible to extend the reporting. (Marting [gz], #633462)

* The test suite now simply holds log files in memory, rather than writing them
  out to disk and then reading them back in and deleting them.
  (Andrew Bennetts)

* The way ``bzr selftest --parallel`` generates N partitions of tests to
  run in parallel has changed. Instead of splitting the list of tests at
  N-1 points, it distributes the tests one-by-one into the partitions in a
  round robin fashion. This reduces the total time to run the tests in
  parallel because a series of slow tests in the test suite will be
  distributed evenly among the parallel test suites, rather than slowing
  down just one suite. (Andrew Bennetts)

* Tracebacks from a parameterized test are no longer reported against every
  parameterization of that test. This was done by adding a hack to
  ``bzrlib.tests.clone_test`` so that it no longer causes
  testtools.TestCase instances to share a details dict.
  (Andrew Bennetts, #625574)

0 blueprints and 35 bugs targeted

Bug report Importance Assignee Status
626876 #626876 tests.test_transport.TestSSHConnections.test_bzr_connect_to_bzr_ssh considered harmful 2 Critical John A Meinel  10 Fix Released
627438 #627438 import failure in plugin-info during selftest 2 Critical John A Meinel  10 Fix Released
636930 #636930 Upgrading a repository fails with 'Inter1and2Helper' object has no attribute 'source_repo' 2 Critical Andrew Bennetts  10 Fix Released
254278 #254278 module object has no attribute ElementTree 3 High Martin Packman  10 Fix Released
392127 #392127 selftest fails with "can't start new thread" 3 High Vincent Ladeuil  10 Fix Released
614522 #614522 Monkey patching private escaping functions breaks with ElementTree 1.3 3 High Martin Packman  10 Fix Released
633745 #633745 bzr+ssh to pre-1.6 server fails with AttributeError: 'NoneType' object has no attribute 'close' in close_ssh_proc 3 High Andrew Bennetts  10 Fix Released
36294 #36294 No way to ask bzrlib to close an SFTP connection 4 Medium Vincent Ladeuil  10 Fix Released
146780 #146780 document why unix tar install goes into /usr/ instead of /usr/local 4 Medium John C Barstow  10 Fix Released
392402 #392402 Selftest: attempt to HTTPS test server should time out and generate an error 4 Medium Vincent Ladeuil  10 Fix Released
400554 #400554 bzr rm {--force, --keep, --safe} is hard to use 4 Medium Marius Kruger  10 Fix Released
405745 #405745 blackbox.test_check.ChrootedCheckTests.test_check_missing_branch hangs on AIX 4 Medium Vincent Ladeuil  10 Fix Released
430785 #430785 bzr clean-tree --force --detritus stops on io error (file in use) 4 Medium Parth Malwankar  10 Fix Released
528443 #528443 Can't run the full test suite on windows 4 Medium Vincent Ladeuil  10 Fix Released
601053 #601053 spelling error in builtins.py 4 Medium John C Barstow  10 Fix Released
607298 #607298 Slow branch creation with cold disk cache 4 Medium John A Meinel  10 Fix Released
607406 #607406 os.kill exists on win32 Python 2.7 but isn't real posix signalling support 4 Medium Martin Packman  10 Fix Released
614476 #614476 Code using tuned_gzip may throw writing crc with Python 2.7 4 Medium Martin Packman  10 Fix Released
614576 #614576 "bzr send" is slow and memory-hungry 4 Medium John A Meinel  10 Fix Released
619872 #619872 bzr: ERROR: exceptions.ValueError: tag/value separator not found in line '' reading lockdir info file 4 Medium Andrew Bennetts  10 Fix Released
625574 #625574 testtools details should not be shared between parameterised tests 4 Medium Andrew Bennetts  10 Fix Released
625686 #625686 persistent paramiko DeprecationWarning: integer argument expected, got float on hardy 4 Medium Vincent Ladeuil  10 Fix Released
191466 #191466 bzr update on missing file does nothing. svn update brings back file. 5 Low John C Barstow  10 Fix Released
234708 #234708 diff --diff-options argument ignored 5 Low Matthäus G. Chajdas  10 Fix Released
343218 #343218 export could take unmodified files from wt rather than repository 5 Low John A Meinel  10 Fix Released
401605 #401605 BZR_LOG environment variable is not documented 5 Low John C Barstow  10 Fix Released
410855 #410855 bzrlib.lsprof is missing some docstrings 5 Low John C Barstow  10 Fix Released
440472 #440472 Be able to use string in bug tracker 5 Low Alexandre Garnier  10 Fix Released
515660 #515660 document behaviour of no-argument 'bzr bind' 5 Low John C Barstow  10 Fix Released
576269 #576269 verbose mode in selftest show "running 0 tests" 5 Low Martin Packman  10 Fix Released
598701 #598701 bzr should not show internal object name in "<rev> does not exist" error 5 Low Neil Martinsen-Burrell  10 Fix Released
601804 #601804 test failure on hardy: bzrlib.tests.test_sftp_transport.SSHVendorBadConnection.test_bad_connection_ssh 5 Low Vincent Ladeuil  10 Fix Released
528730 #528730 selftest --parallel=fork fails on win32 because os does not have fork() 6 Wishlist Martin Packman  10 Fix Released
617503 #617503 Dead link in documentation to Glossary 1 Undecided John A Meinel  10 Fix Released
627277 #627277 EPIPE not ignored when shutting down test servers (on gentoo) 1 Undecided Vincent Ladeuil  10 Fix Released
This milestone contains Public information
Everyone can see this information.