I'm happy to announce Release Candidate 1 for Bazaar 0.18.
This release provides over 50 changes including:

* 15 bug fixes
* 16 user visible improvements
* 20+ enhancements to internals such as test suite enhancements,
  cleaner APIs and much more developer documentation.

Some of the highlights include better criss-cross merging, improved
usability, faster bundle, merge, missing, pull, update and info operations.

The source is available here:

http://bazaar-vcs.org/releases/src/bzr-0.18rc1.tar.gz

The GPG signature is available here:

http://bazaar-vcs.org/releases/src/bzr-0.18rc1.tar.gz.sig

Please test this release and report any problems.  If there are no
major problems, this release will become 0.18 final on or around the
target release date of 17-Jul-2007.

I've attached a summary of the changes in 0.18rc1, based on NEWS.
*Authors of plug-ins and 3rd party tools should note the library API
breaks section in particular.*

Many thanks to all the contributors to this release!

Enjoy,
Ian Clatworthy - 0.18 Release Manager.
bzr 0.18rc1  2007-07-10

  BUGFIXES:

    * Do not suppress pipe errors, etc. in non-display commands
      (Alexander Belchenko, #87178)

    * Display a useful error message when the user requests to annotate
      a file that is not present in the specified revision.
      (James Westby, #122656)

    * Commands that use status flags now have a reference to 'help
      status-flags'.  (Daniel Watkins, #113436)

    * Work around python-2.4.1 inhability to correctly parse the
      authentication header.
      (Vincent Ladeuil, #121889)

    * Use exact encoding for merge directives. (Adeodato Simó, #120591)

    * Fix tempfile permissions error in smart server tar bundling under
      Windows. (Martin_, #119330)

    * Fix detection of directory entries in the inventory. (James Westby)

    * Fix handling of http code 400: Bad Request When issuing too many ranges.
      (Vincent Ladeuil, #115209)

    * Issue a CONNECT request when connecting to an https server
      via a proxy to enable SSL tunneling.
     (Vincent Ladeuil, #120678)

    * Fix ``bzr log -r`` to support selecting merge revisions, both 
      individually and as part of revision ranges.
      (Kent Gibson, #4663)
 
    * Don't leave cruft behind when failing to acquire a lockdir.
      (Martin Pool, #109169)

    * Don't use the '-f' strace option during tests.
      (Vincent Ladeuil, #102019).

    * Warn when setting ``push_location`` to a value that will be masked by
      locations.conf.  (Aaron Bentley, #122286)

    * Fix commit ordering in corner case (Aaron Bentley, #94975)

    *  Make annotate behave in a non-ASCII world (Adeodato Simó).

  IMPROVEMENTS:

    * The --lsprof-file option now dumps a text rendering of the profiling
      information if the filename ends in ".txt". It will also convert the
      profiling information to a format suitable for KCacheGrind if the
      output filename ends in ".callgrind". Fixes to the lsprofcalltree
      conversion process by Jean Paul Calderone and Itamar were also merged.
      See http://ddaa.net/blog/python/lsprof-calltree. (Ian Clatworthy)

    * ``info`` now defaults to non-verbose mode, displaying only paths and
      abbreviated format info.  ``info -v`` displays all the information
      formerly displayed by ``info``.  (Aaron Bentley, Adeodato Simó)

    * ``bzr missing`` now has better option names ``--this`` and ``--other``.
      (Elliot Murphy)

    * The internal ``weave-list`` command has become ``versionedfile-list``,
      and now lists knits as well as weaves.  (Aaron Bentley)

    * Automatic merge base selection uses a faster algorithm that chooses
      better bases in criss-cross merge situations (Aaron Bentley)

    * Progress reporting in ``commit`` has been improved. The various logical
      stages are now reported on as follows, namely:

      * Collecting changes [Entry x/y] - Stage n/m
      * Saving data locally - Stage n/m
      * Uploading data to master branch - Stage n/m
      * Updating the working tree - Stage n/m
      * Running post commit hooks - Stage n/m
      
      If there is no master branch, the 3rd stage is omitted and the total
      number of stages is adjusted accordingly.

      Each hook that is run after commit is listed with a name (as hooks
      can be slow it is useful feedback).
      (Ian Clatworthy, Robert Collins)

    * Various operations that are now faster due to avoiding unnecessary
      topological sorts. (Aaron Bentley)

    * Make merge directives robust against broken bundles. (Aaron Bentley)

    * The lsprof filename note is emitted via trace.note(), not standard
      output.  (Aaron Bentley)

    * ``bzrlib`` now exports explicit API compatibility information to assist
      library users and plugins. See the ``bzrlib.api`` module for details.
      (Robert Collins)

    * Remove unnecessary lock probes when acquiring a lockdir.
      (Martin Pool)

    * ``bzr --version`` now shows the location of the bzr log file, which
      is especially useful on Windows.  (Martin Pool)

    * -D now supports hooks to get debug tracing of hooks (though its currently
      minimal in nature). (Robert Collins)

    * Long log format reports deltas on merge revisions. 
      (John Arbash Meinel, Kent Gibson)

    * Make initial push over ftp more resilient. (John Arbash Meinel)

    * Print a summary of changes for update just like pull does.
      (Daniel Watkins, #113990)

    * Add a -Dhpss option to trace smart protocol requests and responses.
      (Andrew Bennetts)

  LIBRARY API BREAKS:

    * Testing cleanups - 
     ``bzrlib.repository.RepositoryTestProviderAdapter`` has been moved
      to ``bzrlib.tests.repository_implementations``;
      ``bzrlib.repository.InterRepositoryTestProviderAdapter`` has been moved
      to ``bzrlib.tests.interrepository_implementations``;
      ``bzrlib.transport.TransportTestProviderAdapter`` has moved to 
      ``bzrlib.tests.test_transport_implementations``.
      ``bzrlib.branch.BranchTestProviderAdapter`` has moved to
      ``bzrlib.tests.branch_implementations``.
      ``bzrlib.bzrdir.BzrDirTestProviderAdapter`` has moved to 
      ``bzrlib.tests.bzrdir_implementations``.
      ``bzrlib.versionedfile.InterVersionedFileTestProviderAdapter`` has moved
      to ``bzrlib.tests.interversionedfile_implementations``.
      ``bzrlib.store.revision.RevisionStoreTestProviderAdapter`` has moved to
      ``bzrlib.tests.revisionstore_implementations``.
      ``bzrlib.workingtree.WorkingTreeTestProviderAdapter`` has moved to
      ``bzrlib.tests.workingtree_implementations``.
      These changes are an API break in the testing infrastructure only.
      (Robert Collins)

    * Relocate TestCaseWithRepository to be more central. (Robert Collins)

    * ``bzrlib.add.smart_add_tree`` will no longer perform glob expansion on
      win32. Callers of the function should do this and use the new
      ``MutableTree.smart_add`` method instead. (Robert Collins)

    * ``bzrlib.add.glob_expand_for_win32`` is now
      ``bzrlib.win32utils.glob_expand``.  (Robert Collins)

    * ``bzrlib.add.FastPath`` is now private and moved to 
      ``bzrlib.mutabletree._FastPath``. (Robert Collins, Martin Pool)

    * ``LockDir.wait`` removed.  (Martin Pool)

    * The ``SmartServer`` hooks API has changed for the ``server_started`` and
      ``server_stopped`` hooks. The first parameter is now an iterable of
      backing URLs rather than a single URL. This is to reflect that many
      URLs may map to the external URL of the server. E.g. the server interally
      may have a chrooted URL but also the local file:// URL will be at the 
      same location. (Robert Collins)

  INTERNALS:

    * New SMTPConnection class to unify email handling.  (Adeodato Simó)

    * Fix documentation of BzrError. (Adeodato Simó)

    * Make BzrBadParameter an internal error. (Adeodato Simó)

    * Remove use of 'assert False' to raise an exception unconditionally.
      (Martin Pool)

    * Give a cleaner error when failing to decode knit index entry.
      (Martin Pool)

    * TreeConfig would mistakenly search the top level when asked for options
      from a section. It now respects the section argument and only
      searches the specified section. (James Westby)

    * Improve ``make api-docs`` output. (John Arbash Meinel)

    * Use os.lstat rather than os.stat for osutils.make_readonly and
      osutils.make_writeable. This makes the difftools plugin more
      robust when dangling symlinks are found. (Elliot Murphy)

    * New ``-Dlock`` option to log (to ~/.bzr.log) information on when 
      lockdirs are taken or released.  (Martin Pool)

    * ``bzrlib`` Hooks are now nameable using ``Hooks.name_hook``. This 
      allows a nicer UI when hooks are running as the current hook can
      be displayed. (Robert Collins)

    * ``Transport.get`` has had its interface made more clear for ease of use.
      Retrieval of a directory must now fail with either 'PathError' at open
      time, or raise 'ReadError' on a read. (Robert Collins)

    * New method ``_maybe_expand_globs`` on the ``Command`` class for 
      dealing with unexpanded glob lists - e.g. on the win32 platform. This
      was moved from ``bzrlib.add._prepare_file_list``. (Robert Collins)

    * ``bzrlib.add.smart_add`` and ``bzrlib.add.smart_add_tree`` are now
      deprecated in favour of ``MutableTree.smart_add``. (Robert Collins,
      Martin Pool)

    * New method ``external_url`` on Transport for obtaining the url to
      hand to external processes. (Robert Collins)

    * Teach windows installers to build pyrex/C extensions.
      (Alexander Belchenko)

  TESTING:

    * Removed the ``--keep-output`` option from selftest and clean up test
      directories as they're used.  This reduces the IO load from 
      running the test suite and cuts the time by about half.
      (Andrew Bennetts, Martin Pool)

    * Add scenarios as a public attribute on the TestAdapter classes to allow
      modification of the generated scenarios before adaption and easier
      testing. (Robert Collins)

    * New testing support class ``TestScenarioApplier`` which multiplies
      out a single teste by a list of supplied scenarios. (RobertCollins)

    * Setting ``repository_to_test_repository`` on a repository_implementations
      test will cause it to be called during repository creation, allowing the
      testing of repository classes which are not based around the Format
      concept. For example a repository adapter can be tested in this manner,
      by altering the repository scenarios to include a scenario that sets this
      attribute during the test parameterisation in
      ``bzrlib.tests.repository.repository_implementations``. (Robert Collins)

    * Clean up many of the APIs for blackbox testing of Bazaar.  The standard 
      interface is now self.run_bzr.  The command to run can be passed as
      either a list of parameters, a string containing the command line, or
      (deprecated) varargs parameters.  (Martin Pool)

    * The base TestCase now isolates tests from -D parameters by clearing
      ``debug.debug_flags`` and restores it afterwards. (Robert Collins)

    * Add a relpath parameter to get_transport methods in test framework to
      avoid useless cloning.
      (Vincent Ladeuil, #110448)

Reply via email to