Breezy Release Notes

brz 3.3.2

3.3.2:

2023-01-21

Improvements

  • Update Git code to use newer Dulwich APIs for pack generation, significantly improving performance. (Jelmer Vernooij)

  • gitlab: Support URL schemes https, http. (Jelmer Vernooij)

  • Bundle the webdav plugin. (Jelmer Vernooij)

  • Add supports_auto_merge setting. (Jelmer Vernooij)

  • Add –auto argument for “brz propose”. (Jelmer Vernooij)

Bug Fixes

  • Fix anonymous access of lp: URLs. (Jelmer Vernooij, #2000806)

  • gitlab: Handle GitLab consistently returning 500 when updating description in some versions. (Jelmer Vernooij)

  • github: Support multiple pages when enumerating forks. (Jelmer Vernooij)

brz 3.3.1

3.3.1:

2022-11-22

External Compatibility Breaks

  • Drop support for Python < 3.7. (Jelmer Vernooij)

  • Factored gettext support out into setuptools-gettext. (Jelmer Vernooij)

New Features

  • Add --open argument to brz propose. (Jelmer Vernooij)

  • New brz web-open command, which opens a branch or merge proposal in a web browser. Deprecates brz lp-open. (Jelmer Vernooij)

Improvements

  • Various portability fixes for Mac OS X and Windows. (Jelmer Vernooij)

  • Ship typing hints. (Jelmer Vernooij)

  • Build binary on GitHub for most Python platforms. (Jelmer Vernooij)

  • Drop trivial pkg-version dependency. (Ondřej Pohořelský)

  • Drop use of unnecessary iso8061 module for Forge interactions. (Jelmer Vernooij)

  • Support finding GitHub PRs by URL. (Jelmer Vernooij)

Bug Fixes

  • Fix compatibility with Python 3.11. (Jelmer Vernooij, #1995814) + Remove use of PyUnicode_FromUnicode, gone in Python 3.11. + Fix reference counter tests for Python 3.11.

  • Handle unexpected HTTP Status errors from Dulwich, converting them to the appropriate Breezy exceptions. (Jelmer Vernooij)

  • Handle out of file descriptor errors in breezy.dirty_tracker. (Jelmer Vernooij)

  • git: Properly decode remote tag names rather than leaving them as bytes. (Jelmer Vernooij)

  • Fix compatibility with Dulwich >= 0.20.50. (Jelmer Vernooij)

  • Fix Tree.get_file_mtime in shallow git trees. (Jelmer Vernooij)

Documentation

  • Remove various references to brz-gtk and breezy. (Jelmer Vernooij, #1926890, #1837056, #1837053)

API Changes

  • Removed breezy.revision.ensure_null, originally added for the migation from None to NULL_REVISION. (Jelmer Vernooij)

  • New Forge.create_project method. (Jelmer Vernooij)

  • New breezy.forge.get_forge_by_hostname function. (Jelmer Vernooij)

  • New Tree.is_special_filename to match on e.g. .gitattributes and .bzrignore. (Jelmer Vernooij)

Internals

  • Switch to using Launchpad REST API for lp: URL lookups, rather than XML/RPC. (Jelmer Vernooij)

  • Migrate from pkg_resources to importlib for entrypoints. (Jelmer Vernooij)

  • New exception UnsupportedVcs. (Jelmer Vernooij)

  • Support titles for merge proposals. (Jelmer Vernooij)

  • Use standard python infrastructure to mark extensions as optional. (Jelmer Vernooij)

  • Add pyproject.toml. (Jelmer Vernooij)

Testing

  • Increased timeouts since e.g. the setup test takes longer to run now we’re compiling rust files. (Jelmer Vernooij)

  • Raise exception for timed out test rather than killing entire process when hitting timeouts. (Jelmer Vernooij)

  • Add xfail lists for Mac OS X and Windows. (Jelmer Vernooij)

  • Properly clear BRZ_SSH in tests. (Jelmer Vernooij)

brz 3.3.0

3.3.0:

2022-10-07

External Compatibility Breaks

  • Breezy now uses the system merge3 rather than bundling its own copy. (Jelmer Vernooij)

  • Breezy now requires PyYAML. (Jelmer Vernooij)

  • Breezy now requires setuptools-rust and a rust compiler to be built. (Martin Packman, Jelmer Vernooij)

New Features

  • Add –recurse-nested argument to ‘brz export’. (Jelmer Vernooij)

Improvements

  • Add an extra for installing PGP dependencies. (Jelmer Vernooij)

  • Convert multiple authors to the Co-authored-by field. (Jelmer Vernooij)

  • github: Lazily load github pull requests, improving performance. (Jelmer Vernooij)

  • github: Return canonical URLs for branches. (Jelmer Vernooij)

  • Avoid deprecated distutils.version, ahead of removal. (Jelmer Vernooij)

  • Add a docker file. (Jelmer Vernooij)

  • launchpad: Store Launchpad credentials in authentication.conf. (Jelmer Vernooij)

  • git: Support accessing git branch configuration. (Jelmer Vernooij)

  • pgp: Add support for create_signatures=when-possible (Jelmer Vernooij)

  • propose: By default, don’t push tags when proposing changes. (Jelmer Vernooij)

  • git: Split out and separately report ProtectedBranchHookDeclined. (Jelmer Vernooij)

  • git: Avoid reading entire pack files into memory. (Jelmer Vernooij)

Bug Fixes

  • git: Fix handling of empty directories in iter_changes. (Jelmer Vernooij)

  • fastimport: Open stdin in binary mode. (Alexander Grund)

  • Fix printing of exceptions for unsupported formats. (Jelmer Vernooij)

  • Fix compatibility with modern dulwich. (Jelmer Vernooij)

  • bzr: Only update working tree when pushing to active branch. (Jelmer Vernooij)

  • gitlab: Fix API access; now seems to reject ‘;’ as separator of url parameters. (Jelmer Vernooij)

  • Launchpad: Fix instance iteration. (Jelmer Vernooij)

  • git: Fix remote branch reference handling. (Jelmer Vernooij)

  • git: Handle symref loops. (Jelmer Vernooij)

  • Fix handling of chunked HTTP requests. (Jelmer Vernooij)

  • git: Fix handling of date: revision specs. (Jelmer Vernooij)

  • git: Support insteadOf / pushInsteadOf. (Jelmer Vernooij)

Documentation

  • Add link to Matrix room, point to new IRC channel. (Jelmer Vernooij)

API Changes

  • Various errors have moved out of breezy.errors to the modules they are related to. Including: UnsupportedProtocol, FileExists and NoSuchFile from breezy.errors => breezy.transport (Jelmer Vernooij)

  • Add MergeProposal.set_target_branch() method. (Jelmer Vernooij)

  • Move static_tuple to breezy.bzr. (Jelmer Vernooij)

Internals

  • File ids are mostly gone from the API. There are a few select cases where they are still used. (Jelmer Vernooij)

  • python2-cleanup: Remove obsolete __cmp__. (Jelmer Vernooij)

  • bzr: Support name argument in ControlDir.push_branch. (Jelmer Vernooij)

  • Fix flake8 with newer versions of flake8. (Jelmer Vernooij)

  • Avoid deprecated urllib.parse.{splittype,splitport,splithost}. (Jelmer Vernooij)

  • Improve handling of remote git trees; improved performance, support for more functions. (Jelmer Vernooij)

  • git: Raise custom error for unknown encodings in Git commits. (Jelmer Vernooij)

  • Use google docstrings in more places, fixing errors from pydoctor in the process. (Jelmer Vernooij)

  • Lockdir now uses yaml rather than RIO. (Jelmer Vernooij)

Testing

  • Disable known failing test_build_and_install on GitHub. (Jelmer Vernooij)

  • bashcomp: Preserve environment when invoking brz. (Jelmer Vernooij)