👍🎉 Thanks for taking the time to contribute! 🎉👍
The project is setup for husky and conventional commits to keep some standard for the commit messages.
In order to be able to use that, have nodejs
and npm
installed in your
environment and run the following just one time after you clone this project:
npx husky install
npm install -g @commitlint/cli @commitlint/config-conventional
Commit message are linted automatically.
The project is also setup for conventional changelog to automatically generate change logs.
In order to be able to use that, have nodejs
and npm
installed in your
environment and run the following just one time after you clone this project:
npm install -g standard-version
When the project is ready for a new release, run the following command in the
project root to update the CHANGELOG.md
and the CMakeLists.txt
files:
npx standard-version --skip.commit --skip.tag -r M.m.p
M.m.p is version number to be released:
The version number will be automatically bumped in the CMakeLists.txt
and the
CHANGELOG.md
file will be automatically updated. Open both of them, check the
changes, lint and format the CHANGELOG.md
and write any additional notes, then
commit.
Testing is integrated into the project and is automated via ctest
.
Create a new tag for the release by using the following command:
git tag -a CRYPTOPP_M_m_p -m "Blah blah blah..."
⚠️ Pay attention to the format of the tag: the version uses_
and not.
! Also note that patch tags will also have a sequential number suffix (e.g. CRYPTOPP_8_7_0_1).
Push with the following command:
git push --follow-tags
The automatic GitHub actions will take care of the rest, including the multi-platform builds, the testing, and when everything is successful, the creation of a release and its associated artifacts.
Here are the links where you can check the result of the actions: