####################
Breezy Release Notes
####################

.. toctree::
   :maxdepth: 1

brz 3.0.3
#########

:3.0.3: NOT RELEASED YET

External Compatibility Breaks
*****************************

.. These may require users to change the way they use Breezy.

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

.. New commands, options, etc that users may wish to try out.

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

.. Improvements to existing commands, especially improved performance 
   or memory usage, or better results.

Bug Fixes
*********

.. Fixes for situations where brz would previously crash or give incorrect
   or undesirable results.

 * Don't throw an error attempting to read the parent of a ref.
   (Jelmer Vernooĳ)

 * Fix fast-exporting of symlinks on Python 3. (Jelmer Vernooĳ, #1851478)

 * Don't rely on private transport attribute in fast-import.
   (Jelmer Vernooĳ, #1854607)

 * Fix conversion of time_t to int on certain platforms (arm64, armhf,
   ppc64el). (Jelmer Vernooĳ)

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

.. Improved or updated documentation.

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

.. Changes that may require updates in plugins or other code that uses
   breezy.

Internals
*********

.. Major internal changes, unlikely to be visible to users or plugin 
   developers, but interesting for brz developers.

Testing
*******

.. Fixes and changes that are only relevant to brz's test framework and 
   suite.  This can include new facilities for writing tests, fixes to 
   spurious test failures and changes to the way things should be tested.


brz 3.0.2
#########

:3.0.2: 2019-11-19

External Compatibility Breaks
*****************************

None.

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

None.

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

None.

Bug Fixes
*********

 * Disable loading from entrypoints by default, since it can
   significantly slow down startup on some platforms.
   (Jelmer Vernooĳ, #1832868)

 * Don't fail when unable to write per-user ignore list due to
   one of the intermediate directories not existing
   (Jelmer Vernooĳ, #1851904)

 * Fix file graph operations on Git repositories.
   (Jelmer Vernooĳ, #1847913)

 * Allow running tests without launchpadlib installed.
   (Jelmer Vernooĳ, #1849988)

 * Fix compatibility with Python 3.8.
   (Jelmer Vernooĳ, Victor Stinner, #1844684)

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

None

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

None.

Internals
*********

None.

Testing
*******

 * Fix bb.test_testament.TestTestament.test_testament_non_ascii
   when the host encoding is non-utf8.
   (Jelmer Vernooĳ, #1849986)


bzr 3.0.1
#########

:3.0.1: 2019-06-16

brz 3.0.1 is the second release of ``Breezy``, a fork of Bazaar. For more
information, see our release announcement on the Bazaar mailing list and
README.

External Compatibility Breaks
*****************************

None.

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

None.

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

None.


Bug Fixes
*********

* Fix compatibility with newer versions of Dulwich (>= 0.19.12).
  (Jelmer Vernooĳ)

* Fix a nasty corner case merging changes into a tree with changed
  symlinks when pushing from bzr into git.
  (Jelmer Vernooĳ)

* Fix installation on Windows. (Raoul Snyman, #1818947)

* Fix switching between branches while preserving uncommitted changes in git.
  (Jelmer Vernooĳ, #1820606)

* Return consist errors from ``Branch.get_revid`` and
  ``Repository.get_revid_for_revno`` when the revision
  number is invalid. (Jelmer Vernooĳ, #701953)

* Print full upgrade command to run when complaining about lack of
  support for tags. (Jelmer Vernooĳ, #163908)

* Refactor auto conflict handling and add a ``--auto`` flag
  to ``bzr resolve``. (Martin Packman, #688506)

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

None.

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

None.

Internals
*********

None.

Changed Behaviour
*****************

None.

Testing
*******

None.


brz 3.0.0
#########

:Codename: Pelican
:3.0.0: 2019-03-06

brz 3.0.0 is the first release of ``Breezy``, a fork of Bazaar. For more
information, see our release announcement on the Bazaar mailing list and
README.

External Compatibility Breaks
*****************************

 * The bzr command has been renamed to brz, to prevent clashes with upstream
   Bazaar.
   (Martin Packman, Jelmer Vernooĳ)

 * The --prefix/-p argument for ``brz diff`` now defaults to -p1 rather
   than -p0. (Jelmer Vernooĳ, #1695126)

 * The ``brz register-branch`` command from the Launchpad plugin has been
   removed, because it has not worked for at least five years: it relies on
   password authentication rather than SSO, the relevant systems no longer
   have firewall-level access to the outside world, and in general the
   Mirrored branch type is deprecated.  Either just push the branch to
   Launchpad or use code imports instead
   (https://help.launchpad.net/VcsImports).
   (Colin Watson, #254567, #483689)

 * brz no longer supports building the C extensions using Pyrex.
   Only Cython is supported. (Jelmer Vernooĳ)

 * Support for HTTP support using "pycurl" and the associated
   URL schemes "http+pycurl://" and "https+pycurl://" has been dropped.
   (Jelmer Vernooij, #82086, #377389, #122258, #516222, #545776, #1696602)

 * Support for medusa for FTP tests has been dropped, only
   pyftpdlib is now supported. (Jelmer Vernooĳ)

 * The deprecated ``brz get`` and ``brz clone`` commands have been
   removed. (Jelmer Vernooĳ)

 * The setting to ignore missing C extensions has been changed from
   ``ignore_missing_extensions=True`` to
   ``suppress_warnings=missing_extensions``. (Jelmer Vernooĳ)

 * Remove format names as options to ``brz init`` and ``brz
   init-repository``.. Now you must use ``brz init --format=...``.
   This simplifies ``brz init --help``.
   (Neil Martinsen-Burrell, #330494)

 * ``python-gpg`` is now used for checking GPG signatures rather than
   ``python-gpgme``. (Jelmer Vernooĳ, #1702308)

 * ``python-gpg`` is now used for signing commits, rather than shelling
   out to the gnupg command. The ``gpg_signing_command`` option has been
   removed.  (Jelmer Vernooĳ, #847388)

 * The ``bzr.transform.orphan_policy`` configuration option
   has been renamed to ``transform.orphan_policy``.
   (Jelmer Vernooĳ)

 * Backslash (\) is no longer accepted as a path separator
   on platforms where it is not the default path separator,
   e.g. POSIX systems. This is so that filenames with backslashes
   in their name can be added explicitly. (#176263, #165151)

 * One-letter shortcuts for Ubuntu releases are no
   longer supported after 'ubuntu:'. Bazaar's mapping for
   one-letter distroseries had not been updated since natty.
   (Jelmer Vernooĳ)

 * The ``brz lp-mirror-branch`` subcommand has been removed.
   Please use the ``lp-force-branch-mirror`` command from
   the lptools package instead. (Jelmer Vernooĳ, #518807)

 * Up-to-date checking for Bazaar packaging branches is no
   longer performed, since there are no longer
   any automated imports. (Jelmer Vernooĳ)

 * ``setuptools`` is now required to build and install Breezy.
   (Jelmer Vernooĳ)

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

 * The 'bisect' plugin is now shipped with brz. (Jelmer Vernooĳ)

 * The 'fastimport' plugin is now bundled with Breezy.
   (Jelmer Vernooĳ)

 * The ``grep`` plugin has been merged into Breezy.
   (Parth Malwankar, Martin Packman, Jelmer Vernooĳ)

 * The 'stats' plugin is now bundled with Breezy.
   (Jelmer Vernooĳ)

 * The 'upload' plugin is now bundled with Breezy.
   (Jelmer Vernooĳ)

 * The 'cvs' and 'mtn' plugins are now bundled with Breezy.
   (Jelmer Vernooĳ)

 * The 'email' plugin is now bundled with Breezy.
   (Jelmer Vernooĳ)

 * The 'import' command is now bundled with brz.
   Imported from bzrtools by Aaron Bentley. (Jelmer Vernooĳ, #773241)

 * The 'link-tree' command is now bundled with brz.
   Imported from bzrtools by Aaron Bentley. (Jelmer Vernooĳ)

 * The 'fetch-ghosts' command is now bundled with brz.
   Imported from bzrtools by Aaron Bentley. (Jelmer Vernooĳ)

 * The 'commitfromnews' plugin is now bundled and
   can be enabled by setting ``commit.template_from_files = NEWS``.
   (Jelmer Vernooĳ)

 * The 'darcs' plugin is now bundled.
   (Jelmer Vernooĳ)

 * The functionality from ``bzr-guess`` is now merged into Breezy.
   It will provide suggestions if the user typoes a command.
   (Jelmer Vernooĳ)

 * Support the creation of colocated branches in ``brz fast-import``.
   (Jelmer Vernooĳ, #1744626)

 * New ``lp-logout`` command to unset launchpad username.
   (Jelmer Vernooĳ, #349143)

 * Plugins can now be registered using the 'entrypoints' mechanism in
   setuptools. (Jelmer Vernooĳ, #1802647)

 * The Breezy UI now handles RCP-style URLs and suggests the
   user specify either ``git+ssh`` or ``bzr+ssh``.
   (Jelmer Vernooĳ)

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

 * Doc generators now support the SOURCE_DATE_EPOCH environment
   variable (https://reproducible-builds.org/specs/source-date-epoch/).
   (Jelmer Vernooĳ)

 * The ``repodebug`` plugin is now bundled.
   (Jelmer Vernooĳ)

 * New ``brz cp`` command which copies files (but does not currently track
   history). (Jelmer Vernooĳ, start towards #269095)

 * HPSS calls for ``RevisionTree.archive`` and
   ``RevisionTree.annotate_iter`` have been added. (Jelmer Vernooĳ,
   #897781)

 * Branches with symlinks are now supported on Windows. Symlinks are
   ignored by operations like branch, diff etc. with a warning as Symlinks
   are not created on Windows.
   (Parth Malwankar, #81689)

 * New ``lp+bzr://`` URL scheme for Bazaar-only branches on Launchpad.
   (Jelmer Vernooĳ)

 * Report colocated branch information in ``brz info``.
   (Jelmer Vernooĳ, #1803846)

Bug Fixes
*********

* Support Server Name Indication (SNI) when talking to https servers.
  Cherry-picked from lp:~vila/bzr/1089352-sni-support
  (Vincent Ladeuil, #1089352)

* The ``bisect`` command now works in non-``.bzr`` directories.
  (Jelmer Vernooĳ)

* When creating ``authentication.conf``, umask is now set so only the
  current user can read the file. Breezy warns if the file is
  accessible for other users when it starts.
  (Joke de Buhr, Jelmer Vernooĳ, #475501)

* Support ``brz commit -x`` in combination with iter_changes.
  (Jelmer Vernooĳ, #796582, #403811, #694946, #268135, #299879)

* Print a proper error when encountering ghost revisions in
  mainline in ``brz log``. (Jelmer Vernooĳ, #726466)

* Security fix: hostnames starting with a dash in bzr+ssh URLs
  are now filtered out when using a subprocess SSH client.
  .
  Thanks to Augie Fackler for reporting.
  (Jelmer Vernooĳ, #1710979)

* Mark all options as unicode. Allows using non-ASCII values in most
  options. (Jelmer Vernooĳ, #563692)

* Support automatic rename tracking into new directories.
  (mnn, #373319)

* Avoid writing directly to sys.stdout, but use self.outf in
  Command implementations instead. (#268573, B. Clausius)

* It is now possible to version files with backslashes in their name
  on platforms that support it. (Jelmer Vernooij, #81844)

* Support '0' markers in fastimport plugin. (Jelmer Vernooĳ, #1744615)

* Support adding/removing filenames that consist of just
  backslashes in where backslash is not the path separator.
  (Jelmer Vernooĳ, #176263, #165151)

* Report correct path in output of ``brz add``.
  (Brian de Alwis, Jelmer Vernooĳ, #1799482)

* Don't report empty directories in git trees as changes.
  (Jelmer Vernooĳ, #1804072)

* Fix support for 'brz ignore' in Git trees.
  (Jelmer Vernooĳ, #1804053)

* Print a clearer error when GPG can't be found.
  (Jelmer Vernooĳ, #1803898)

* Fix a corner case when moving files.
  (Jelmer Vernooĳ, #533152)

* Fix fastexport output to standard output when
  running under Python 3. (Jelmer Vernooĳ, #1805172)

* Restore absolute URLs in branch reference URLs. This is
  needed for backwards compatibility with Bazaar.
  (Jelmer Vernooĳ, #1803845)

* Don't report .git files as unknown files.
  (Jelmer Vernooĳ, Debian Bug #921240)

* Raise better error when path subsegments lack =.
  (Jelmer Vernooĳ, #891483)

* Display correct pull location argument in
  output of ``brz uncommit``.
  (Jelmer Vernooĳ, #386577)

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

 * Various documents have been updated to explain that Breezy is a fork
   of Bazaar.

 * Documentation translations into Japanese, Spanish and Russian have been
   removed since there are no current translators to update them.
   (Jelmer Vernooĳ)

 * A quick introduction about using Breezy with GitHub has been added.
   (Jelmer Vernooĳ, #1803867)

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

 * bzrlib has been renamed to breezy. (Martin Packman, Jelmer Vernooĳ)

 * Signature of ``load_tests`` used by ``TestLoader`` changed to be
   compatible with standard libarary unittest.  (Martin Packman)

 * All previously deprecated functionality has been removed.
   (Jelmer Vernooĳ)

 * ``CommitBuilder.record_entry_contents`` has been removed.
   (Jelmer Vernooĳ, #731433, #604953)

 * Renamed ``breezy.delta.report_delta`` parameter ``filter=`` to
   ``predicate=``. (Martin Packman)

 * ``Branch.bzrdir``, ``Repository.bzrdir`` and ``WorkingTree.bzrdir``
   have been renamed to ``Branch.controldir``, ``Repository.controldir``
   and ``WorkingTree.controldir``, respectively.
   (Jelmer Vernooĳ, #1695774)

 * ``BzrBranch`` and the various bzr branch format implementations
   have been moved to ``breezy.bzr``. (Jelmer Vernooĳ)

 * ``MetaDirBranchFormatFactory`` has been removed.
   Use lazy registration on ``breezy.branch.format_registry``
   instead. (Jelmer Vernooĳ)

 * ``breezy.bzrdir.format_registry`` has been removed; use
   ``breezy.controldir.format_registry`` instead.
   (Jelmer Vernooĳ)

 * ``breezy.api`` has been removed.  (Jelmer Vernooĳ, #742192)

 * ``ControlDir.find_bzrdirs`` has been renamed to
   ``ControlDir.find_controldirs``. (Jelmer Vernooĳ)

 * ``Repository.get_revisions`` no longer accepts ``None`` as
   argument. (Jelmer Vernooĳ)

 * A new ``Repository.iter_revisions`` method has been added.
   (Jelmer Vernooĳ)

 * A new ``WorkingTreeFormat.supports_setting_file_ids`` property
   has been added that can be set to False to indicate a working tree
   doesn't support e.g. passing a file_id into ``WorkingTree.mkdir``.
   (Jelmer Vernooĳ, #1707533)

 * A new ``RepositoryFormat.supports_setting_revision_ids`` property
   has been added that can be set to False to indicate a repository
   doesn't support passing revision ids to ``CommitBuilder.commit``.
   (Jelmer Vernooĳ)

 * A new ``RepositoryFormat.supports_overriding_transport`` property
   has been added that can be set to False to indicate a repository
   doesn't support passing an alternative transport to
   ``RepositoryFormat.open``.
   (Jelmer Vernooĳ)

 * ``Repository.print_file`` and ``Branch.print_file`` have been removed.
   (Jelmer Vernooĳ)

 * Various ``lock_write`` and ``lock_read`` functions now return a
   context manager. (Jelmer Vernooĳ)

 * The ``BranchWriteLockResult.branch_token`` (returned by
   ``Branch.lock_write``) has been renamed to
   ``BranchWriteLockResult.token``. (Jelmer Vernooĳ)

 * ``breezy.decorators.needs_write_lock``,
   ``breezy.decorators.needs_read_lock`` and
   ``breezy.mutabletree.needs_tree_write_lock`` have been deprecated.
   Instead, use the context managers returned by ``.lock_write``,
   ``.lock_read`` and ``.lock_tree_write`` respectively. (Jelmer Vernooĳ)

 * ``Tree`` methods now take a ``path`` as primary key argument, rather
   than a ``file_id``. ``file_id`` is still present as optional argument
   for most functions, and can be specified to speed up lookups.
   (Jelmer Vernooĳ)

Internals
*********

.. Major internal changes, unlikely to be visible to users or plugin 
   developers, but interesting for brz developers.

* Allow overriding of default HTTP headers by caller.
  (Jelmer Vernooĳ, #1753734)

Testing
*******

 * Allow /dev/null to be a symlink to a chardev. (Igo Pashev, #832257)

 * A test isolation issue in ``breezy.tests.test_ui`` was fixed,
   which caused ``output_encoding = iso-8859-1`` to be added to the
   users' bazaar.conf. (Jelmer Vernooĳ)

 * Newer versions of ``pyftpdlib`` are now supported for running FTP tests.
   (Jelmer Vernooĳ)

 * The ``--subunit`` argument for ``brz selftest`` has been renamed to
   ``--subunit1``, and a new argument ``--subunit2`` has been added that
   outputs subunit v2.
   (Jelmer Vernooĳ, #1699346, #661205)

 * Launchpad plugin tests no longer try to connect to production
   Launchpad. (Jelmer Vernooĳ, #723183)

 * Set the ``GPGHOME`` environment variable during testing, to prevent
   e.g. leaking keys into the users' GNUPG directory.
   (Jelmer Vernooĳ, #843885)

 * Allow some slack when comparing times.
   (Jelmer Vernooĳ, #1804121)

 * Fix a spuriously failing fastexport test due to dictionary
   ordering. (Jelmer Vernooĳ, #1808630)

..
   vim: tw=74 ft=rst ff=unix
