Version 0.7.0

  * Support for using git repositories as package repositories. See the
    bpkg-repository-types(1) help topic for details (structure, URL format).

  * Support for ~ and ^ version constraint operators. See the 'depends'
    package manifest value documentation in the bpkg manual for details.

  * The pkg-build command has been significantly reworked. In particular, it
    allows "building" repositories in addition to packages (primarily useful
    with version control-based repositories) and upgrading (--upgrade|-u) or
    patching (--patch|-p) immediate (--immediate|-i) or all (--recursive|-r)
    dependencies of a package. See bpkg-pkg-build(1) for details.

  * The pkg-status has been significantly reworked. In particular, it allows
    querying the status of immediate (--immediate|-i) or all (--recursive|-r)
    dependencies of a package. See bpkg-pkg-status(1) for details.

  * New commands: rep-list, rep-remove, and pkg-checkout. See their respective
    man pages for details.

  * The pkg-{test,install,uninstall} commands now also support --immediate|-i
    and --recursive|-r options (testing/installation of dependencies).

  * The pkg-{update,clean,test,install,uninstall} commands now support the
    --all|-a option.

  * The rep-fetch command now supports shallow fetching and fetching only a
    specific repository. See bpkg-rep-fetch(1) for details.

  * New --for|-f <operation> option to the pkg-update and pkg-build commands.

    This allows executing build2 *-for-X operations (e.g., update-for-install
    or update-for-test) in order to minimize the amount of stuff to be
    updated.

  * New --fetch-timeout common option.

  * The repositories, packages, and signature files now use the .manifest
    extension.

Version 0.6.0

  * Add doc-url and src-url manifest values.

  * Support for repository certificate wildcards.

    A wildcard in the *.example.com form matches any single-level subdomain
    while **.example.com -- any subdomains. See the bpkg-repository-signing(1)
    help topic for details.

Version 0.5.0

  * Multiple usability fixes and improvements.

  * The test suite has been rewritten in Testscript and can now be used on all
    supported platforms.

Version 0.4.0

  * Support for repository signing and authentication.

    The rep-create command can now sign the repository with rep-fetch(fetch)
    and rep-info authenticating it. See the bpkg-repository-signing(1) help
    topic for details.

  * Support for system packages.

    Now a package can be "built" as available from the system rather than
    compiling it from source. To specify a system package the new sys: package
    scheme is used, for example:

    bpkg build sys:libsqlite3

    Currently, if no version is specified for a system package, then it is
    considered to be unknown but satisfying any dependency constraint (such a
    wildcard version is displayed as '*'). In the future bpkg will support
    querying system package managers (rpm, dpkg, pkg-config) for the installed
    version.

    See the pkg-build(build) man page for details.

  * Support for stub packages.

    A stub is a package without source code. It has the special upstream
    version 0 (with a possible revision, for example 0+1) and can only be
    built as a system package.

  * Support for build-time dependencies.

    Now a depends: value in the package manifest that starts with '*' is
    recognized as a built-time dependency.  Currently, build-time dependencies
    are treated in the same way as normal (run-time) ones except that the
    'build2' and 'bpkg' names are recognized as special. They can be used to
    specify a constraint (usually the required minimum version) on the build2
    build system and package manager, respectively. In the future, the
    semantics for build-time dependencies will be extended, for example, to
    verify that they can be executed on the build machine and/or to build them
    in a separate configuration in case of cross-compilation.

  * The pkg-build(build) command now offers to automatically update dependent
    packages that were reconfigured.

    It also supports the following new options:

    --drop-prerequisite|-D
    --update-dependent|-U
    --leave-dependent|-L

     As well as the -K alias for --keep-prerequisite. See the command's man
     page for details.

  * The pkg-drop(drop) command now supports the following new options:

    --keep-dependent|-K,
    --drop-prerequisite|-D
    --keep-prerequisite

    See the command's man page for details.

  * The cfg-add command was renamed to rep-add (the add alias stays the same)
    and cfg-fetch to rep-fetch (the fetch alias stays the same).

  * The new -V option is an alias for --verbose 3 (show all commands).

Version 0.3.0

  * Command line options and arguments can now be specified in any order. This
    is especially useful if you want to re-run the previous command with -v:

    bpkg update libfoo -v

  * The pkg-build command now offers to drop prerequisite packages that are no
    longer necessary. This can happen if a package that is being upgraded or
    downgraded changes its prerequisite set. You can use the
    --keep-prerequisite option to suppress this behavior.

  * The pkg-build command now updates all packages at once (that is, with a
    single build system invocation) instead of sequentially one at a time.
    This should improve performance, especially once parallelism is supported.

  * The rep-create command now loads the description-file and changes-file
    files from the package archives and includes their contents inline into
    the 'packages' manifest file.

Version 0.2.1

  * The pkg-build command no longer considers an argument as a potential
    package directory unless it ends with a directory separator.

Version 0.2.0

  * First public release.