diff --git a/CHANGELOG.md b/CHANGELOG.md index 6d769b4..251b25f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,8 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). + + ## [Unreleased](https://github.com/jeertmans/languagetool-rust/compare/v2.1.4...HEAD) ### Chore @@ -13,6 +15,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Fixed some types. [#115](https://github.com/jeertmans/languagetool-rust/pull/115) - Derive `Hash` on requests types. [#114](https://github.com/jeertmans/languagetool-rust/pull/114) - Use Codspeed and `check-changelog` actions. [#121](https://github.com/jeertmans/languagetool-rust/pull/121) +- Use `cargo release` and add `RELEASE-PROCESS.md` [#130](https://github.com/jeertmans/languagetool-rust/pull/130) ### Fixed diff --git a/Cargo.toml b/Cargo.toml index 9a61575..88b607c 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -59,6 +59,13 @@ repository = "https://github.com/jeertmans/languagetool-rust" rust-version = "1.74.0" version = "2.1.4" +[package.metadata.release] +pre-release-replacements = [ + {file="CHANGELOG.md", search="Unreleased", replace="{{version}}", min=1}, + {file="CHANGELOG.md", search="\\.\\.\\.HEAD\\)", replace="...{{version}}) {{date}}", exactly=1}, + {file="CHANGELOG.md", search="", replace="\n\n## [Unreleased](https://github.com/jeertmans/languagetool-rust/compare/v{{version}}...HEAD)", exactly=1}, +] + [package.metadata.docs.rs] all-features = true rustdoc-args = ["--cfg", "docsrs"] diff --git a/RELEASE-PROCESS.md b/RELEASE-PROCESS.md new file mode 100644 index 0000000..eaadbaa --- /dev/null +++ b/RELEASE-PROCESS.md @@ -0,0 +1,26 @@ +# Release process + +First, make sure you are logged-in https://crates.io with: `cargo login`. +If you don't have write access to **LanguageTool-Rust**' crates, you can still +perform steps 1-4, and ask a maintainer with accesses to perform step 5. + +This project uses `cargo-release` to publish all packages with more ease. +Note that, by default, every command runs in *dry mode*, and you need to append `--execute` +to actually perform the action. + +Here are the the following steps to install `cargo-release`: +```bash +cargo install cargo-release +``` +Here are the following steps to release a new version: + +1. create a branch `release-x.y.z` from the `main` branch; +2. run and commit `cargo release version `; +3. run and commit `cargo release replace`; +4. push your branch and create a pull request; +5. and, once your branch was merged to `main`, run the following: + ```bash + cargo release publish --package languagetool-rust + ``` + +And voilĂ !