build2 | Blog

14 Aug 2024 | Changes to Package Review/Transition Policies
We are inviting the build2 community to help with reviewing package submissions. We are also adjusting the package transition policies between queue.cppget.org and cppget.org as well as between sections within cppget.org. Specifically, migrating a package from queue.cppget.org to cppget.org no longer requires a review, only that the package builds in at least one configuration. As a result, the alpha, beta, and testing sections of cppget.org may now contain unreviewed packages. However, a package can only be migrated from testing to stable if it passes a review. See the full announcement for details.
18 Jun 2024 | build2 0.17.0 Released
The main area of focus in this release was again more advanced functionality for more complex projects. There are also notable improvements in C++20 modules support, including for import std; in Clang and MSVC. On the documentation front, we now have a comprehensive, step-by-step guide for packaging third-party projects for build2.

There are also quite a few smaller features in this release, such as new buildfile value types and functions, including support for JSON. Additionally, a large amount of maintenance work has been done, mostly in the form of handling various corner cases and fixing bugs. For example, there are about a hundred commit messages in this release that start with Fix.

04 Jul 2023 | build2 0.16.0 Released
The two main areas of focus in this release are the system package manager integration and more advanced functionality for more complex projects. The system package manager support includes both consumption and production of binary distribution packages, including uploading them from the CI builds. This support required a large amount of ground work which produced functionality useful in its own right, such as relocatable installations, installation filtering, and installation manifests. The more advanced functionality includes built-in support for the Objective-C/C++ and Assembler with C Preprocessor (.S) compilation, dynamic target extraction in addition to prerequisites, and support for buildfile importation.

There are also quite a few smaller features in this release, such as new functions, commands, and builtins, as well as a large amount of maintenance work, including the low verbosity diagnostics overhaul and support for diagnostics buffering. We have also continued with our performance optimizations in the build system and the package manager which should especially help projects with a large number of dependencies.

28 Jul 2022 | build2 0.15.0 Released
The overall theme of this release is more advanced functionality that is becoming necessary as we start to use build2 to handle more complex projects. Specifically, the package manager now supports a number of more advanced dependency declaration features, including conditional dependencies, dependency alternatives, and dependency configuration. On the build system side we now have rule hints, support for dynamic dependencies in ad hoc recipes, and the ability to save user metadata in C/C++ libraries (plus 23 other items mentioned in the NEWS file). The following sections discuss these and other new features in detail.

Another new development is the creation of the HOWTO repository with practical advice on using build2 to achieve common tasks. At the time of the release the repository contained 10 articles.

02 Nov 2021 | Boost Libraries Packaged for build2
We have added support for the build2 build system to 136 out of 145 Boost libraries and version 1.77.0 is now available from the cppget.org package repository.
26 Oct 2021 | Build Tools for Build-Time Dependencies
One of the main features in the just released build2 0.14.0 is support for build-time dependencies and the target/host configuration split that it necessitates. However, this support is of no use without any tools to depend on at build-time. So we've packaged a number of base tools that can be useful both in your own work as well as when packaging third-party projects.
19 Oct 2021 | build2 0.14.0 Released
The main focus of this release is support for build-time dependencies and the host/target configuration split that it necessitates. This support required a large amount of ground work which produced functionality useful in its own right, such as hermetic builds and configuration linking. Another notable new feature is ad hoc regex pattern rules.
01 Mar 2021 | Upcoming Repository Certificate Replacement
Both cppget.org and stage.build2.org package repository certificates will be replaced with renewed versions on Tue the 9th of Mar 2021 at 12pm UTC. This will result in the change of certificate fingerprints. If you have these fingerprints specified as part of the trust values in your project's repositories.manifest files or --trust option values in bpkg or build2 toolchain install script invocations, then you will need to update any such places with new fingerprints.
16 Feb 2021 | Complete C++20 Modules Support with GCC
The build2 toolchain now provides conforming and scalable support for all the major C++20 Modules features when used with GCC. This includes named modules, module partitions (both interface and implementation), header unit importation, and include translation. All of these features are also supported in libraries, including consumption of installed libraries with information about modules and importable headers conveyed in pkg-config files. As part of this effort we have also created a collection of examples that demonstrate C++20 Modules features that impact the build process.
19 Jan 2021 | Kconfig Support in build2
The build2 toolchain now includes a build system module that allows using the Linux kernel configuration system (Kconfig) to configure build2-based projects.
01 Dec 2020 | Compiling C/C++ on Apple M1
The release of Apple M1 CPU has sure generated a lot of interest. Intrigued by impressive benchmark results, we got an Apple Mini with M1 to test C/C++ compilation.
20 Jul 2020 | build2 0.13.0 Released
The main focus of this release is build system support for project-specific configurations and ad hoc recipes. Another notable new feature is support for alternative (e.g., with include/src split) source code layouts by the bdep-new command.
20 Nov 2019 | build2 0.12.0 Released
The main objective of this release was support for build system modules and it took a while to tie up all the loose ends in this area. As a result, this release has accumulated quite a large number of other major new features across all the tools in the toolchain.
11 Jun 2019 | build2 0.11.0 Released
This release contains a large number of new features across all the tools (build system, package and project dependency managers, etc). It also includes experimental support for C++ modules header unit importation and include translation.
19 Mar 2019 | build2 0.10.0 Released
Coming shortly after 0.9.0, this is more of a maintenance release that nevertheless includes a good number of new features. It was also an opportunity to hone our release process with the overall goal of increasing the release cadence.
21 Feb 2019 | build2 0.9.0 Released
Overall, the main focus of this release was "quality of life" improvements. It includes a large number of bug fixes, tweaks to existing features, as well as new features that should all make for a smoother, more pleasant development experience.
12 Sep 2018 | build2 0.8.0 Released
This release includes a large number of major new features, primarily in the build system and project dependency manager, as well as substantial additions to the documentation. We have also started ci.cppget.org, a free CI service for open source projects that use build2.
30 May 2018 | build2 0.7.0 Released
This release is essentially a brand new toolchain, with new tooling, new workflow, and new documentation. A relaunch, if you will.
08 Aug 2017 | build2 0.6.0 Released
The bulk of the development in this release cycle has again gone into the build system. The two features that undoubtedly stand out are support for C++ Modules TS and precise C/C++ source change detection. Other notable new features include build progress display, automatic generation of pkg-config files for installed libraries, and initial support for utility libraries.
04 May 2017 | build2 0.5.0 Released
With almost 500 commits, the bulk of the development in this release cycle has gone into the build system. The two major features are parallel builds and Testscript. There is also a large number of usability improvements, including support for wildcard patterns and automated project version management.
01 Apr 2017 | Important Project Announcements
We have several very important announcements about exciting new developments in the build2 project... ok, it's April 1 and everyone knows this is a hoax.