Releases: swar-mukh/cbt
cbt-2024.10.31
Here with the seventh public release of cbt
i.e. cbt-2024.10.31
!
This is a minor release primarily focused on fixing a bug and other minor enhancements.
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
- Fix a bug (#15) where test-scaffolds generated on Windows wouldn't compile on Linux by @swar-mukh (5a0fba9)
- Co-locate test-cases and context definition in their respective functions by @swar-mukh (81e3fc9)
- Add hyperlinks to
CONTRIBUTING.md
by @swar-mukh (f681a65)
Full Changelog: refer here
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
cbt-2024.07.12
I am thrilled to share the fifth public release of cbt
i.e. cbt-2024.07.12
!
This release primarily focused on under-the-hood improvements including refactoring the codebase and fixing some major bugs, among many other subtle changes. Consequently, the readymade binary sizes for Ubuntu
and Windows
have shrunk roughly by 3kb
and 2kb
respectively.
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
Note: Since testing is made on a custom harness (via cbt_tools/test_harness
), it is deliberately unaware of timestamps. The ideal scenario would be to only execute test-case(s) which has/have been modified, or run the entire test-suite if any file/dependency in the entire chain has been modified. It is quite difficult to accomplish that, and hence has been postponed (refer Roadmap
section in README.md
).
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
- Update GitHub
Issues
template forBug Report
by @swar-mukh (042af8c) - Fix a bug that prevented compilation from source on MacOS by @swar-mukh (0aba100)
- Fix a bug that would cause error while
build
ing project if a directory undersrc/
had no.cpp
files by @swar-mukh (222dcfc) - Perform a major code refactoring by @swar-mukh (4ebfbd)
- Move private definitions to unnamed namespaces
- Update scaffold content to reflect the same practice as that of
cbt
source-code - Update most function prototypes to pass composite elements by reference
- Make scaffold content more informational (with updated test-cases)
Full Changelog: refer here
cbt-2024.06.23
I am thrilled to share the fourth public release of cbt
i.e. cbt-2024.06.23
! This is the biggest release so far and the primary reason why I started this project, i.e. to make compilation easy without resorting to cryptic Make/CMake commands and/or maintaining them perpetually.
This release primarily focused on making compilations timestamp-aware. When compile-project
is invoked, cbt
will now compile only those file(s) which:
- Has/have been newly created
- OR, was/were updated/modified since last compilation
- OR, was/were unsuccessful during previous compilation
- OR, is a dependent of a header file which was modified or has been newly created since last compilation
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
Note: Since testing is made on a custom harness (via cbt_tools/test_harness
), it is deliberately unaware of timestamps. The ideal scenario would be to only execute test-case(s) which has/have been modified, or run the entire test-suite if any file/dependency in the entire chain has been modified. It is quite difficult to accomplish that, and hence has been postponed (refer Roadmap
section in README.md
).
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
- Compile file(s) only if modified or updated or if previous compilation was/were unsuccessful by @swar-mukh (b6c698c)
- Add support for generating
SHA-256
hash on MacOS by @swar-mukh (68d88a6) - Show proper usage of environment parameters by @swar-mukh (2549635)
- Fix an issue where directories with no binaries were being added while building project by @swar-mukh (b384439)
- Use normalised path for directory traversal and execution by @swar-mukh (aa9e999)
- Include '<vector>' in the correct file generated during scaffolding by @swar-mukh (cdcd371)
Full Changelog: refer here
cbt-2024.05.26
I am thrilled to share the third public release of cbt
i.e. cbt-2024.05.26
!
This release primarily focused on using project.cfg
as the single source of truth for the entire project/workspace management.
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
Note: Currently compiling and testing is unaware of timestamps, so invoking them will re-compile, and re-run tests for, all files. This is in the roadmap and will be rectified in a future release.
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
- Prepare
project.cfg
as a source of truth for entire project configuration by @swar-mukh (f89f3fa) - Pass configuration values directly through
project.cfg
by @swar-mukh in (3acf1bf)- Optimise
build
ing of project by using glob patterns on directories instead of listing all files - Show the entire command that is constructed through
project.cfg
while compiling, building and running unit tests
- Optimise
- Use proper exit value when exception is thrown by @swar-mukh (c826c91)
Full Changelog: refer here
cbt-2024.05.19
I am thrilled to share the second public release of cbt
i.e. cbt-2024.05.19
!
This release primarily focused on supporting Windows
platform along with other minor bug fixes. For students/beginners, who only have access to a Windows
machine or don't know how to dual-boot their system, fret not! cbt
can now be easily used on Windows
.
Features
- Build, compile and test 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
Note: Currently compiling and testing is unaware of timestamps, so invoking them will re-compile, and re-run tests for, all files. This is in the roadmap and will be rectified in a future release.
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
- Add support for Windows by @swar-mukh (5a9f538)
- Reduce binary size by half by @swar-mukh (fae55b1)
- Make starter script more maintainable by @swar-mukh (f27d1d1)
- Address an issue where the
build
directory may not be in sync withcbt
by @swar-mukh (810a4fe) - Add automated
SHA-256
hashing in build step by @swar-mukh (50a92b8)
Full Changelog: refer here
cbt-2024.05.03
I am thrilled to share the first public release of cbt
i.e. cbt-2024.05.03
!
This project is a labour of love and through this, I hope to give back something to the community.
Features
- Build, compile and test simply by invoking commands
- Use readymade scaffold file content or customise/update it
- Use
cbt_tools
library AS IS or customise it as per project requirements
Note: Currently compiling and testing is unaware of timestamps, so invoking them will re-compile, and re-run tests for, all files. This is in the roadmap and will be rectified in a future release.
Installation
Note 1: Currently, binary for only Ubuntu
platform is 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 for your respective platform
- Rename the binary to just
cbt
- On
*nix
platform, move the binary to/opt
directory - On Windows, move the binary to
C:\<whatever-is-appropriate-for-you>
- Update path accordingly for your respective platform
- Run
cbt help
You are good to go!