Files
Lucina3DS/externals/cryptopp-cmake/CONTRIBUTING.md
2025-02-06 22:24:29 +08:00

90 lines
2.5 KiB
Markdown

# 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)