diff --git a/.github/PULL_REQUEST_TEMPLATE/pull_request_template.md b/.github/PULL_REQUEST_TEMPLATE/pull_request_template.md index efb410d..fb5c32e 100644 --- a/.github/PULL_REQUEST_TEMPLATE/pull_request_template.md +++ b/.github/PULL_REQUEST_TEMPLATE/pull_request_template.md @@ -1,11 +1,8 @@ ### Description +[ ] CHANGELOG.md has been updated under an `## Unreleased` section at the top of the document right below `# Changelog` [ ] Tests have been written and included ### Related tasks - -### Screenshots - - diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index efb63c2..67e917b 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -22,3 +22,12 @@ make build ```sh make test ``` + +## PRs + +Include Rust related changes under `## Unreleased` (Copy the format from +the existing releases). + +Changes should be included under `### Added`, `### Changed` and `### +Removed`. Bullet point information should be written in present tense +and should describe what the change does. diff --git a/RELEASE.md b/RELEASE.md new file mode 100644 index 0000000..f56cd88 --- /dev/null +++ b/RELEASE.md @@ -0,0 +1,47 @@ +# Release process + +1. Create a release commit. This includes specific updated files: + + 1. Cargo.toml (Bump the version using [semver] standards) + 1. Cargo.lock (This is usually updated automatically with the `cargo` + CLI tool) + 1. Make sure the changes for the new release exist under + `CHANGELOG.md`. This should already exist since changes done in + GitHub Pull Requests should include updates to the `CHANGELOG.md`. + If this doesn't exist, the release will fail. + 1. Change `CHANGELOG.md` `## Unreleased` to `## [x.x.x] - YYYY-MM-DD` + where `x.x.x` is the new Tinty version specified in the + `Cargo.toml` file and the link to `[x.x.x]` at the bottom of the + `CHANGELOG.md` file and compare it with the previously released + version, eg: + + ```md + [0.22.0]: https://github.com/tinted-theming/tinty/compare/v0.21.1...v0.22.0 + ``` + + 1. Run `cargo about generate about.hbs > LICENSES-THIRD-PARTY.md` to + update the third party licenses. (`cargo install cargo-about` if + you don't have it installed) + 1. Create a commit with the 3 changed files titled `Release x.x.x` + where `x.x.x` is the new Tinty version specified in the + `Cargo.toml` file + +1. Push the commit or create a Pull Request and merge +1. Once the CI tests have passed, run the [Release GitHub action]. This + will automatically do the following: + + 1. Add a Git tag to the release commit with the new + version number + 1. Create a release under [GitHub releases] with the changes + mentioned in `CHANGELOG` + 1. Generate the various binaries and add it to the GitHub release +1. Run the [homebrew-tinted] [Update CLI tool GitHub + action] and specify `tinty` as the action input value. This will + update the version for [Homebrew] + +[semver]: https://semver.org/ +[Release GitHub action]: https://github.com/tinted-theming/tinty/actions/workflows/release.yml +[GitHub releases]: https://github.com/tinted-theming/tinty/releases +[homebrew-tinted]: https://github.com/tinted-theming/homebrew-tinted +[Update CLI tool GitHub action]: https://github.com/tinted-theming/homebrew-tinted/actions/workflows/update-cli-tool.yml +[Homebrew]: https://brew.sh/