Hi, A new beta release, our fourth one, has been released: 2.4b4. 2.4.0 is planned to be released in August 2011.
As usual, this contains all known bug fixes (including the ones we made for the previous stable releases). Thanks to all participants, whether you sent merge proposals, comments, suggestions and feedback, we very much appreciate all of them. Bazaar is now available for download from https://launchpad.net/bzr/2.4/2.4b4/ as a source tarball. Installers have been built in record time after the source freeze for windows and the OSX ones will hopefully be available soon. 2.4b4 is available in Debian sid (unstable) and packages for Ubuntu are available in the beta ppa: https://launchpad.net/~bzr/+archive/beta Reminder: since 2.4b3, we've stopped supporting python-2.4/2.5 and hardy there for the *beta*, the 2.3 stable series will maintain compatibility with python2.4. IMPORTANT NOTE: Quickly after the beta was made available on debian sid we had two reports of http://pad.lv/799212 . The fix has already landed on trunk and will be available in 2.4b5. It impacts anybody with a bazaar.conf containing some non-ascii chars but only when no BZR_EDITOR environment variable is set. So the workaround is to set BZR_EDITOR to a valid editor. We'll have another (and last) beta before the final 2.4.0 release. If you're a plugin author, please make sure you have a clearly identified released compatible with 2.4 (preferably with a dedicated series like http://pad.lv/p/qbzr does or at least a tag for the version you'd like to be carried by the installers and the ppas). Whatever you decide, keep in touch with the packagers or just reply to this mail. There is no urgency (yet ;) but you'll get better feedback if your planned release can be packaged with 2.4b5 (expected to be frozen 2011-07-07). And now for the gory details: External Compatibility Breaks ***************************** * Do not treat configuration option 'check_signatures = require' as if it were 'create_signatures = always' (Jonathan Riddell) New Features ************ * Hooks have been added for config stacks: ``get``, ``set`` and ``remove`` are called when an option is respectively read, modified or deleted. Also added ``load`` and ``save`` hooks for config stores, called when the stores are loaded or saved. (Vincent Ladeuil) * New hook server_exception in bzrlib.smart.server to catch any exception caused while running bzr serve. (Jonathan Riddell, #274578) * New hook set_commit_message in bzrlib.msgeditor to set a commit message and revision properties. (Jonathan Riddell, #274578) * Support ``-S`` as an alias for ``--short`` for the ``log`` and ``missing`` commands. (Martin von Gagern, #38655) Improvements ************ * ``bzr annotate`` can be run without setting whoami data first. (Jonathan Riddell, #667408) Bug Fixes ********* * Bazaar can now detect when a lock file is held by a dead process originating from the same machine, and steal the lock after printing a message to the user. This is off by default, for safety, but can be turned on by setting the configuration variable ``locks.steal_dead`` to ``True``. (Martin Pool, #220464) * Credentials in the log output produced by ``-Dhttp`` are masked so users can more freely post them in bug reports. (Vincent Ladeuil, #723074) * Fix a race condition for ``server_started`` hooks leading to a spurious test failure. (Vincent Ladeuil, #789167) * Fix exporting subdirectory with ``--per-file-timestamps``. (Szilveszter Farkas, #795557) * Handle files that get created but don't get used during TreeTransform. ``open()`` can create a file, and still raise an exception before it returns. So anything we might have created, make sure we destroy during ``finalize()``. (Martin [gz], #597686) * ``pack_repo`` now uses ``Transport.move`` instead of ``Transport.rename``, deleting any existing targets even on SFTP. (Martin von Gagern, #421776) * Pass the ``build_mo`` command to the rest of the setup() calls in setup.py. The ``bdist_wininst`` and ``py2exe`` code paths were failing because ``build_mo`` became a required step that they didn't know about. (John Arbash Meinel, #787122) * Properly avoid re-adding a file after it changes case on CICP filesystems. (John Arbash Meinel, #798130) * Reports the original error when an InvalidHttpResponse exception is encountered to facilitate debug. (Vincent Ladeuil, #788530) * Reports a non-existant file error when trying to merge in a file that does not exist. (Jonathan Riddell, #330063) * ``UIFactory.prompt``, ``UIFactory.get_username``, ``UIFactory.get_password`` and ``UIFactory.get_boolean`` now require a unicode prompt to be passed in. (Jelmer Vernooij, #592083) * Support merging into the empty tree. (Aaron Bentley, #595328) Documentation ************* * Improve documentation of ``bzr merge --force``. (Neil Martinsen-Burrell, #767307) * Make docs for configuration options for digital signatures match reality. (Jonathan Riddell) * Add user-guide page on GPG signatures. (Jonathan Riddell) API Changes *********** * Information about held lockdir locks returned from eg `LockDir.peek` is now represented as a `LockHeldInfo` object, rather than a plain Python dict. (Martin Pool) * Remove `file_status` function. (Martin Pool) * ``Repository.iter_reverse_revision_history`` is now deprecated. Use ``Graph.iter_lefthand_ancestry`` instead. (Jelmer Vernooij, #739481) Internals ********* * ``tools/check-newsbugs.py`` accepts a ``--browser`` option to open corresponding launchpad pages in a browser. (Vincent Ladeuil) Testing ******* * A `ImportTariffTestCase` base class has been added in ``bzrlib.tests.test_import_tariff``, which can be used for import tariff tests in plugins. (Jelmer Vernooij, #793465) * Fix deadlock in `TestImportTariffs.test_simple_serve` when stderr gets more output than fits in the default buffer. This was happening on the Windows buildslave, and could easily happen in other circumstances where the default OS buffer size for pipes is small or the ``python -v`` output is large. (Andrew Bennetts, #784802) * Fix spurious test failure on OSX for WorkingTreeFormat2. (Vincent Ladeuil, #787942) * Re-target ``bb.test_merge.TestMerge.test_merge_reversed_revision_range`` and rewrite it as a parametrized test to avoid unrelated failures. (Vincent Ladeuil, #795456) * Show log file contents from subprocesses started by `start_bzr_subprocess` in test failure details. This may help diagnose strange hangs and failures involving subprocesses. (Andrew Bennetts) * Skip ``utextwrap`` tests when ``sphinx`` breaks text_wrap by an hostile monkeypatch to textwrap.TextWrapper.wordsep_re. (Vincent Ladeuil, #785098) * Multiple ``selftest --exclude`` options are now combined instead of overriding each other. (Vincent Ladeuil, #746991) * Restore some ``FTPTransport`` test coverage by allowing ``pyftpdlib 0.6.0`` to be used. Also restore ``medusa`` support while leaving it disabled to make it easier to use if/when we can in the future. (Vincent Ladeuil, #781140) * `TestImportTariffs` no longer uses the real ``$HOME``. This prevents it from polluting ``$HOME/.bzr.log`` or being accidentally influenced by user configuration such as aliases. It still runs with all the user's plugins enabled, as intended. (Vincent Ladeuil, Andrew Bennetts, #789505)
