# Releasing new versions ## Preparing the release - Understand what changes we are shipping by inspecting unreleased commits ```bash git co main git pull origin main --rebase git log $(git describe --abbrev=0 --tags)...HEAD --oneline ``` - Determine next release version according to [SemVer](https://semver.org/) - Create a short-lived branch ```bash git checkout -b ufs/release-x.y.z ``` - Add **notable changes** the to [changelog file](https://github.com/dotanuki-labs/gradle-wrapper-validator/blob/main/docs/changelog.md) - Bump version at [Cargo.toml](https://github.com/dotanuki-labs/gradle-wrapper-validator/blob/main/Cargo.toml#L3) - Raise a PR preparing the release ## Creating a release (GitHub admins-only) - Ensure the next release is prepared (as described above) - Execute the [CD Workflow](https://github.com/dotanuki-labs/gradle-wrapper-validator/actions/workflows/cd.yml) - Go to the [releases page](https://github.com/dotanuki-labs/gradle-wrapper-validator/releases) - Review the release draft and add any final touches (for instance, updating `RenovateBot` identity name) - Publish the release 🚀 ## Updating distributions - Clone [dotanuki-labs/homebrew-taps](https://github.com/dotanuki-labs/homebrew-taps) - Create a branch like `ufs/gwv-x.y.z` - Update the `gwv.rb` formula with proper version and checksums - Raise a PR