C++ 23 static library template
- Warnings as errors
- clang-tidy and cppcheck static analysis
- CPM for dependencies
-
unit testing using UT/μt
-
fuzz testing using fuzztest
-
tooling to verify consistent commits format inspired by conventional commits
-
autocreation of version tags in main branch based on commits
-
Documentation powered by doxygen, graphviz and doxygen-awesome-css
Publishing of documentation to Gitpub Pages, enabled by default(see 'Deploy Pages' job in CI), cofigure repository to enable Pages with "Github Actions" source. To build documentation locally, install doxygen and graphviz, set CMake variable %%myproject%%_DOC. If doxygen not found, set %%myproject%%_DOXYGEN_SEARCH_PATHS to directory contaning doxygen binaries. If dot (graphviz utility) not found, set %%myproject%%_GRAPHVIZ_BIN_PATHS to directory contaning graphviz binaries.
- API breaking change (will increment major version) For example: removal of public interface parts after introducing new version of API Please, provide short description with reasons and migration hints if needed
api: remove deprecated v1 API
api(parser): hide parser API from public interface
- New feature or backward compatible API change (will increment minor version and reset patch to 0)
feat: introduce parser v2 API
feat(parser): extend parser v2 API public interface
- Fix of bug in existing logic
fix: bug with list parsing in v2 API
refactor(parser): reduce heap allocations in parser v2 API
- cmake
- a compiler
| Windows | Ubuntu | |
|---|---|---|
| MSVC | ✔️ | |
| clang | ✔️ | |
| gcc | ✔️ |
- Click on 'Use this template', select 'Create a new repository'
- After initial commit, template janitor action triggered to cleanup repo (rename files, replace readme, verify that build works)
- Clone new repository, rename 'csl' namespace, write your code
- Publishing of documentation to Gitpub Pages, enabled by default(see 'Deploy Pages' job in CI), cofigure repository to enable Pages with "Github Actions" source
- Commit your changes to main, use conventional commits (for example 'feat: initial commit')
- Wait for CI to complete and create version 0.1.0 of your library
Congrats, now you can focus on your code