First Commit
This commit is contained in:
89
externals/cryptopp-cmake/CONTRIBUTING.md
vendored
Normal file
89
externals/cryptopp-cmake/CONTRIBUTING.md
vendored
Normal file
@@ -0,0 +1,89 @@
|
||||
# Contributing to this project
|
||||
|
||||
👍🎉 Thanks for taking the time to contribute! 🎉👍
|
||||
|
||||
## Table of Contents
|
||||
|
||||
- [Conventional Commits](#conventional-commits)
|
||||
- [Conventional Changelog](#conventional-changelog)
|
||||
- [New Release Process](#new-release-process)
|
||||
- [Testing](#testing)
|
||||
- [GitHub Actions](#github-actions)
|
||||
|
||||
## Conventional Commits
|
||||
|
||||
The project is setup for husky and [conventional
|
||||
commits](https://www.conventionalcommits.org/en/v1.0.0/) 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:
|
||||
|
||||
```shell
|
||||
npx husky install
|
||||
npm install -g @commitlint/cli @commitlint/config-conventional
|
||||
```
|
||||
|
||||
Commit message are linted automatically.
|
||||
|
||||
## Conventional Changelog
|
||||
|
||||
The project is also setup for [conventional
|
||||
changelog](https://github.com/conventional-changelog/standard-version) 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:
|
||||
|
||||
```shell
|
||||
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:
|
||||
|
||||
```shell
|
||||
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
|
||||
|
||||
Testing is integrated into the project and is automated via `ctest`.
|
||||
|
||||
## New release process
|
||||
|
||||
Create a new tag for the release by using the following command:
|
||||
|
||||
```shell
|
||||
git tag -a CRYPTOPP_M_m_p -m "Blah blah blah..."
|
||||
```
|
||||
|
||||
> :warning: **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:
|
||||
|
||||
```shell
|
||||
git push --follow-tags
|
||||
```
|
||||
|
||||
## GitHub Actions
|
||||
|
||||
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:
|
||||
>
|
||||
> [GitHubActions](https://github.com/abdes/cryptopp-cmake/actions)
|
||||
>
|
||||
> [GitHub Releases](https://github.com/abdes/cryptopp-cmake/releases)
|
||||
Reference in New Issue
Block a user