cbt-2024.07.30
I am thrilled to share the sixth public release of cbt
i.e. cbt-2024.07.30
!
This release primarily focused on providing better support for unit-testing through cbt run-unit-tests
command. Addressing a long standing request, tests are now timestamp-aware, i.e. only when any file in the dependency chain (including the test file) is modified, respective tests will be compiled and executed. This gives a significant boost to cbt
and brings cbt
to be at par with existing and well-established build tools.
cbt
now also has a Contribution guidelines page allowing the community to participate in shaping its future!
Features
- Compile, test and build simply by invoking commands
- Use ready-made scaffold file content or customise/update it
- Use
cbt_tools
library AS IS or customise it as per project requirements
Installation
Note 1: Currently, binaries for only Ubuntu
and Windows
platforms are provided. For other platforms, refer to README.md
for instructions on building from source.
Note 2: cbt
relies on g++
for the underlying compilation mechanism. Ensure you have the GNU toolchain for your respective platform.
Steps
- Download the binary and the
<platform>.sha256.checksum.txt
for your respective platform. - IMPORTANT: Ensure that the integrity of the binary is preserved by verifying it through the respective
<platform>.sha256.checksum.txt
file. - Rename the binary to just
cbt
(orcbt.exe
onWindows
). - On
*nix
platform, move the binary to/opt
directory. - On Windows, create a new folder
C:\CBT\
and move the binary under it. - Update
PATH
accordingly for your respective platform. - Run
cbt help
.
You are good to go!
Highlights
- Significantly upgrade testing support by @swar-mukh (095641a)
- Detect dependencies in source file(s) during execution of unit-test(s) (this addresses #13)
- Make unit-tests timestamp-aware
- Add support for access to custom context for each test case
- Fix a bug (#12) where nested test-files would not execute due to absent namespace by @swar-mukh (4877a0)
- Add contribution guidelines for the community by @swar-mukh (aeb9521)
Full Changelog: refer here