Bazaar 2.0.1 and 2.1.0b1 released

John Arbash Meinel john.meinel at canonical.com
Wed Oct 28 21:46:25 GMT 2009


Our first post-2.0 releases of Bazaar have finally become official. Now
that we are at 2.0, we decided to split a stable releases series and a
development series. As such, 2.0.1 has only bugfixes relative to the 2.0
release, while new features and potential compatibility changes are
contained only within 2.1.0b1. All of the changes in 2.0.1 are available
in 2.1.0b1.


Thanks to everyone who has helped polish the 2.0.1 release, and ensure
that our next 2.1 stable release will have lots of interesting changes
to come.

To get your own copy, please visit http://bazaar-vcs.org/Download.
Packages for many popular platforms are available.


The short summaries of changes are:
bzr 2.0.1
#########

:Codename: Stability First
:2.0.1: 2009-10-14

The first of our new ongoing bugfix-only stable releases has arrived. It
includes a collection of 12 bugfixes applied to bzr 2.0.0, but does not
include any of the feature development in the 2.1.0 series.

bzr 2.1.0b1
###########

:Codename: While the cat is away
:2.1.0b1: 2009-10-14

This is the first development release in the new split "stable" and
"development" series. As such, the release is a snapshot of bzr.dev
without creating a release candidate first. This release includes a
fair amount of internal changes, with deprecated code being removed,
and several new feature developments. People looking for a stable code
base with only bugfixes should focus on the 2.0.1 release. All bugfixes
present in 2.0.1 are present in 2.1.0b1.

Highlights include support for ``bzr+ssh://host/~/homedir`` style urls,
finer control over the plugin search path via extended BZR_PLUGIN_PATH
syntax, visible warnings when extension modules fail to load, and
improved error handling during unlocking.


John
=:->

This is the full NEWS entry about all bugs/features fixed and released
relative to 2.0.0:

bzr 2.1.0b1
###########

:Codename: While the cat is away
:2.1.0b1: 2009-10-14

This is the first development release in the new split "stable" and
"development" series. As such, the release is a snapshot of bzr.dev
without creating a release candidate first. This release includes a
fair amount of internal changes, with deprecated code being removed,
and several new feature developments. People looking for a stable code
base with only bugfixes should focus on the 2.0.1 release. All bugfixes
present in 2.0.1 are present in 2.1.0b1.

Highlights include support for ``bzr+ssh://host/~/homedir`` style urls,
finer control over the plugin search path via extended BZR_PLUGIN_PATH
syntax, visible warnings when extension modules fail to load, and improved
error handling during unlocking.


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

* Bazaar can now send mail through Apple OS X Mail.app.
  (Brian de Alwis)

* ``bzr+ssh`` and ``bzr`` paths can now be relative to home directories
  specified in the URL.  Paths starting with a path segment of ``~`` are
  relative to the home directory of the user running the server, and paths
  starting with ``~user`` are relative to the home directory of the named
  user.  For example, for a user "bob" with a home directory of
  ``/home/bob``, these URLs are all equivalent:

  * ``bzr+ssh://bob@host/~/repo``
  * ``bzr+ssh://bob@host/~bob/repo``
  * ``bzr+ssh://bob@host/home/bob/repo``

  If ``bzr serve`` was invoked with a ``--directory`` argument, then no
  home directories outside that directory will be accessible via this
  method.

  This is a feature of ``bzr serve``, so pre-2.1 clients will
  automatically benefit from this feature when ``bzr`` on the server is
  upgraded.  (Andrew Bennetts, #109143)

* Extensions can now be compiled if either Cython or Pyrex is available.
  Currently Pyrex is preferred, but that may change in the future.
  (Arkanes)

* Give more control on BZR_PLUGIN_PATH by providing a way to refer to or
  disable the user, site and core plugin directories.
  (Vincent Ladeuil, #412930, #316192, #145612)

Bug Fixes
*********

* Bazaar's native protocol code now correctly handles EINTR, which most
  noticeably occurs if you break in to the debugger while connected to a
  bzr+ssh server.  You can now can continue from the debugger (by typing
  'c') and the process continues.  However, note that pressing C-\ in the
  shell may still kill the SSH process, which is bug 162509, so you must
  sent a signal to the bzr process specifically, for example by typing
  ``kill -QUIT PID`` in another shell.  (Martin Pool, #341535)

* ``bzr add`` in a tree that has files with ``\r`` or ``\n`` in the
  filename will issue a warning and skip over those files.
  (Robert Collins, #3918)

* ``bzr dpush`` now aborts if uncommitted changes (including pending merges)
  are present in the working tree. The configuration option ``dpush_strict``
  can be used to set the default for this behavior.
  (Vincent Ladeuil, #438158)

* ``bzr merge`` and ``bzr remove-tree`` now requires --force if pending
  merges are present in the working tree.
  (Vincent Ladeuil, #426344)

* Clearer message when Bazaar runs out of memory, instead of a
``MemoryError``
  traceback.  (Martin Pool, #109115)

* 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)

* ftp transports were built differently when the kerberos python module was
  present leading to obscure failures related to ASCII/BINARY modes.
  (Vincent Ladeuil, #443041)

* Network streams now decode adjacent records of the same type into a
  single stream, reducing layering churn. (Robert Collins)

* PreviewTree behaves correctly when get_file_mtime is invoked on an
unmodified
  file. (Aaron Bentley, #251532)

* 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
************

* Bazaar gives a warning before exiting, and writes into ``.bzr.log``, if
  compiled extensions can't be loaded.  This typically indicates a
  packaging or installation problem.  In this case Bazaar will keep
  running using pure-Python versions, but this may be substantially
  slower.  The warning can be disabled by setting
  ``ignore_missing_extensions = True`` in ``bazaar.conf``.
  See also <https://answers.launchpad.net/bzr/+faq/703>.
  (Martin Pool, #406113, #430529)

* Secondary errors that occur during Branch.unlock and Repository.unlock
  no longer obscure the original error.  These methods now use a new
  decorator, ``only_raises``.  This fixes many causes of
  ``TooManyConcurrentRequests`` and similar errors.
  (Andrew Bennetts, #429747)

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

* Describe the new shell-like test feature. (Vincent Ladeuil)

* Help on hooks no longer says 'Not deprecated' for hooks that are
  currently supported. (Ian Clatworthy, #422415)

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)

* ``diff._get_trees_to_diff`` has been renamed to
  ``diff.get_trees_and_branches_to_diff``. It is now a public API, and it
  returns the old and new branches. (Gary van der Merwe)

* ``bzrlib.trace.log_error``, ``error`` and ``info`` have been deprecated.
  (Martin Pool)

* ``MutableTree.has_changes()`` does not require a tree parameter
anymore. It
  now defaults to comparing to the basis tree. It now checks for pending
  merges too.  ``Merger.check_basis`` has been deprecated and replaced
by the
  corresponding has_changes() calls. ``Merge.compare_basis``,
  ``Merger.file_revisions`` and ``Merger.ensure_revision_trees`` have also
  been deprecated.
  (Vincent Ladeuil, #440631)

* ``ProgressTask.note`` is deprecated.
  (Martin Pool)

Internals
*********

* Added ``-Drelock`` debug flag.  It will ``note`` a message every time a
  repository or branch object is unlocked then relocked the same way.
  (Andrew Bennetts)

* ``BTreeLeafParser.extract_key`` has been tweaked slightly to reduce
  mallocs while parsing the index (approx 3=>1 mallocs per key read).
  This results in a 10% speedup while reading an index.
  (John Arbash Meinel)

* The ``bzrlib.lsprof`` module has a new class ``BzrProfiler`` which makes
  profiling in some situations like callbacks and generators easier.
  (Robert Collins)

Testing
*******

* Passing ``--lsprof-tests -v`` to bzr selftest will cause lsprof output to
  be output for every test. Note that this is very verbose! (Robert Collins)

* Setting ``BZR_TEST_PDB=1`` when running selftest will cause a pdb
  post_mortem to be triggered when a test failure occurs. (Robert Collins)

* Shell-like tests can now be written. Code in ``bzrlib/tests/script.py`` ,
  documentation in ``developers/testing.txt`` for details.
  (Vincent Ladeuil)

* Some tests could end up with the same id, that was dormant for
  a long time.
  (Vincent Ladeuil, #442980)

* Stop showing the number of tests due to missing features in the test
  progress bar.  (Martin Pool)

* Test parameterisation now does a shallow copy, not a deep copy of the test
  to be parameterised. This is not expected to break external use of test
  parameterisation, and is substantially faster. (Robert Collins)

* 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 break-in test no longer cares about clean shutdown of the child,
  instead it is happy if the debugger starts up. (Robert  Collins)

* The full test suite is expected to pass when the C extensions are not
  present. (Vincent Ladeuil, #430749)


bzr 2.0.1
#########

:Codename: Stability First
:2.0.1: 2009-10-14

The first of our new ongoing bugfix-only stable releases has arrived. It
includes a collection of 12 bugfixes applied to bzr 2.0.0, but does not
include any of the feature development in the 2.1.0 series.


Bug Fixes
*********

* ``bzr add`` in a tree that has files with ``\r`` or ``\n`` in the
  filename will issue a warning and skip over those files.
  (Robert Collins, #3918)

* bzr will attempt to authenticate with SSH servers that support
  ``keyboard-interactive`` auth but not ``password`` auth when using
  Paramiko.   (Andrew Bennetts, #433846)

* Fixed fetches from a stacked branch on a smart server that were failing
  with some combinations of remote and local formats.  This was causing
  "unknown object type identifier 60" errors.  (Andrew Bennetts, #427736)

* Fixed ``ObjectNotLocked`` errors when doing some log and diff operations
  on branches via a smart server.  (Andrew Bennetts, #389413)

* Handle things like ``bzr add foo`` and ``bzr rm foo`` when the tree is
  at the root of a drive. ``osutils._cicp_canonical_relpath`` always
  assumed that ``abspath()`` returned a path that did not have a trailing
  ``/``, but that is not true when working at the root of the filesystem.
  (John Arbash Meinel, Jason Spashett, #322807)

* Hide deprecation warnings for 'final' releases for python2.6.
  (John Arbash Meinel, #440062)

* Improve the time for ``bzr log DIR`` for 2a format repositories.
  We had been using the same code path as for <2a formats, which required
  iterating over all objects in all revisions.
  (John Arbash Meinel, #374730)

* 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)

* Occasional IndexError on renamed files have been fixed. Operations that
  set a full inventory in the working tree will now go via the
  apply_inventory_delta code path which is simpler and easier to
  understand than dirstates set_state_from_inventory method. This may
  have a small performance impact on operations built on _write_inventory,
  but such operations are already doing full tree scans, so no radical
  performance change should be observed. (Robert Collins, #403322)

* Retrieving file text or mtime from a _PreviewTree has good performance
when
  there are many changes.  (Aaron Bentley)

* The CHK index pages now use an unlimited cache size. With a limited
  cache and a large project, the random access of chk pages could cause us
  to download the entire cix file many times.
  (John Arbash Meinel, #402623)

* When a file kind becomes unversionable after being added, a sensible
  error will be shown instead of a traceback. (Robert Collins, #438569)

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

* Improved README. (Ian Clatworthy)

* Improved upgrade documentation for Launchpad branches.
  (Barry Warsaw)



More information about the bazaar mailing list