Skip to content

Releases: swar-mukh/cbt

cbt-2024.10.31

31 Oct 14:21
Compare
Choose a tag to compare

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

  1. Compile, test and build simply by invoking commands
  2. Use ready-made scaffold file content or customise/update it
  3. 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

  1. Download the binary and the <platform>.sha256.checksum.txt for your respective platform.
  2. IMPORTANT: Ensure that the integrity of the binary is preserved by verifying it through the respective <platform>.sha256.checksum.txt file.
  3. Rename the binary to just cbt (or cbt.exe on Windows).
  4. On *nix platform, move the binary to /opt directory.
  5. On Windows, create a new folder C:\CBT\ and move the binary under it.
  6. Update PATH accordingly for your respective platform.
  7. Run cbt help.

You are good to go!

Highlights

Full Changelog: refer here

cbt-2024.07.30

29 Jul 19:04
Compare
Choose a tag to compare

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

  1. Compile, test and build simply by invoking commands
  2. Use ready-made scaffold file content or customise/update it
  3. 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

  1. Download the binary and the <platform>.sha256.checksum.txt for your respective platform.
  2. IMPORTANT: Ensure that the integrity of the binary is preserved by verifying it through the respective <platform>.sha256.checksum.txt file.
  3. Rename the binary to just cbt (or cbt.exe on Windows).
  4. On *nix platform, move the binary to /opt directory.
  5. On Windows, create a new folder C:\CBT\ and move the binary under it.
  6. Update PATH accordingly for your respective platform.
  7. 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

11 Jul 18:43
Compare
Choose a tag to compare

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

  1. Compile, test and build simply by invoking commands
  2. Use ready-made scaffold file content or customise/update it
  3. 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

  1. Download the binary and the <platform>.sha256.checksum.txt for your respective platform
  2. IMPORTANT: Ensure that the integrity of the binary is preserved by verifying it through the respective <platform>.sha256.checksum.txt file
  3. Rename the binary to just cbt (or cbt.exe on Windows)
  4. On *nix platform, move the binary to /opt directory
  5. On Windows, create a new folder C:\CBT\ and move the binary under it
  6. Update PATH accordingly for your respective platform
  7. Run cbt help

You are good to go!

Highlights

  • Update GitHub Issues template for Bug 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 building project if a directory under src/ 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

23 Jun 17:17
Compare
Choose a tag to compare

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:

  1. Has/have been newly created
  2. OR, was/were updated/modified since last compilation
  3. OR, was/were unsuccessful during previous compilation
  4. OR, is a dependent of a header file which was modified or has been newly created since last compilation

Features

  1. Compile, test and build simply by invoking commands
  2. Use ready-made scaffold file content or customise/update it
  3. 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

  1. Download the binary and the <platform>.sha256.checksum.txt for your respective platform
  2. IMPORTANT: Ensure that the integrity of the binary is preserved by verifying it through the respective <platform>.sha256.checksum.txt file
  3. Rename the binary to just cbt (or cbt.exe on Windows)
  4. On *nix platform, move the binary to /opt directory
  5. On Windows, create a new folder C:\CBT\ and move the binary under it
  6. Update PATH accordingly for your respective platform
  7. 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

26 May 12:07
3acf1bf
Compare
Choose a tag to compare

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

  1. Compile, test and build simply by invoking commands
  2. Use ready-made scaffold file content or customise/update it
  3. 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

  1. Download the binary and the <platform>.sha256.checksum.txt for your respective platform
  2. IMPORTANT: Ensure that the integrity of the binary is preserved by verifying it through the respective <platform>.sha256.checksum.txt file
  3. Rename the binary to just cbt (or cbt.exe on Windows)
  4. On *nix platform, move the binary to /opt directory
  5. On Windows, create a new folder C:\CBT\ and move the binary under it
  6. Update PATH accordingly for your respective platform
  7. 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 building 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
  • Use proper exit value when exception is thrown by @swar-mukh (c826c91)

Full Changelog: refer here

cbt-2024.05.19

19 May 08:15
Compare
Choose a tag to compare

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

  1. Build, compile and test simply by invoking commands
  2. Use ready-made scaffold file content or customise/update it
  3. 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

  1. Download the binary and the <platform>.sha256.checksum.txt for your respective platform
  2. IMPORTANT: Ensure that the integrity of the binary is preserved by verifying it through the respective <platform>.sha256.checksum.txt file
  3. Rename the binary to just cbt (or cbt.exe on Windows)
  4. On *nix platform, move the binary to /opt directory
  5. On Windows, create a new folder C:\CBT\ and move the binary under it
  6. Update PATH accordingly for your respective platform
  7. Run cbt help

You are good to go!

Highlights

Full Changelog: refer here

cbt-2024.05.03

04 May 15:14
Compare
Choose a tag to compare

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

  1. Build, compile and test simply by invoking commands
  2. Use readymade scaffold file content or customise/update it
  3. 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

  1. Download the binary for your respective platform
  2. Rename the binary to just cbt
  3. On *nix platform, move the binary to /opt directory
  4. On Windows, move the binary to C:\<whatever-is-appropriate-for-you>
  5. Update path accordingly for your respective platform
  6. Run cbt help

You are good to go!