Add CONTRIBUTING.md
This commit is contained in:
49
.github/CONTRIBUTING.md
vendored
Normal file
49
.github/CONTRIBUTING.md
vendored
Normal file
@@ -0,0 +1,49 @@
|
|||||||
|
# Contributing to Refined Storage
|
||||||
|
|
||||||
|
## Versioning
|
||||||
|
|
||||||
|
This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
||||||
|
|
||||||
|
## Pull requests
|
||||||
|
|
||||||
|
- Keep your PR as small as possible, this makes reviewing easier.
|
||||||
|
- Commits serve a clear purpose and have a fitting commit message.
|
||||||
|
- Branches are kept up to date by rebasing, preferably.
|
||||||
|
- PRs are merged by rebasing the commits on top of the target branch.
|
||||||
|
- Changes are added in `CHANGELOG.md`. Please refrain from using technical terminology, keep it user-friendly. The
|
||||||
|
format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
|
||||||
|
|
||||||
|
## Gitflow
|
||||||
|
|
||||||
|
This project uses [Gitflow](https://www.atlassian.com/git/tutorials/comparing-workflows/gitflow-workflow).
|
||||||
|
|
||||||
|
## Releasing
|
||||||
|
|
||||||
|
1) Make sure the version number in `build.gradle` is correct.
|
||||||
|
2) Merge `develop` to `main`.
|
||||||
|
3) Push a tag with the version number (prefixed with `v`).
|
||||||
|
|
||||||
|
After releasing:
|
||||||
|
|
||||||
|
1) Rename the "Unreleased" section to the correct version number in `CHANGELOG.md`.
|
||||||
|
2) Upgrade the version number in `build.gradle`.
|
||||||
|
3) Create a new "Unreleased" section in `CHANGELOG.md`.
|
||||||
|
|
||||||
|
## Pipelines
|
||||||
|
|
||||||
|
### Build
|
||||||
|
|
||||||
|
The build pipeline triggers when a commit is pushed to a branch or pull request.
|
||||||
|
|
||||||
|
All tests are run and an aggregated code coverage report is created. After that, a SonarQube analysis is run.
|
||||||
|
|
||||||
|
### Release
|
||||||
|
|
||||||
|
The release pipeline triggers when a tag is pushed. This will run all the steps that our build pipeline does.
|
||||||
|
|
||||||
|
After that succeeds, it will publish to GitHub packages.
|
||||||
|
|
||||||
|
The "Unreleased" section in `CHANGELOG.md` is parsed and a GitHub release is created with the changelog body and
|
||||||
|
relevant artifacts.
|
||||||
|
|
||||||
|
After that, a Discord and Twitter notification is sent.
|
||||||
Reference in New Issue
Block a user