Skip to content

Latest commit

 

History

History
47 lines (31 loc) · 2.06 KB

readme.rst

File metadata and controls

47 lines (31 loc) · 2.06 KB

Circular Buffer

Circular Buffer, or cb for short, is a C/C++ library that implements a circular buffer interface for generic types. It uses stdatomic for single consumer single producer scenarios, avoiding the need for a lock, and provides a callback to implement a locking and unlocking mechanism for other scenarios or platforms.

cb is fully tested and documented and it is MISRA C:2012 compliant.

Refer to the documentation here for details.

Build and Development

Clone the repository as:

git clone https://github.com/dmg0345/cb

Example commands to build the library and run the tests are provided below:

cmake -C "./other/cmake/preload/release.cmake" -S . -B "./.cmake_build"
cmake --build "./.cmake_build" -j --target all
cmake --build "./.cmake_build" -j --target install
ctest --test-dir "./.cmake_build"

Find the base Docker image for the development container at DockerHub. To develop using devcontainers and Visual Studio Code:

docker pull dmg00345/cb:latest
./manage.ps1 run

Create a release

To generate a release follow the steps below:

  1. Create a release branch from develop branch, e.g. release/X.Y.Z.
  2. Update version in conf.py file and in version.cmake file.
  3. Run cmake with -DCFG_TAG:BOOL=ON to tag all the relevant files.
  4. Create pull request from release branch to master with the changes with title Release X.Y.Z.
  5. When merged in master create release and tag from Github, review production workflow passes for deployment.