Skip to content

Latest commit

 

History

History
37 lines (29 loc) · 1.59 KB

RELEASE.md

File metadata and controls

37 lines (29 loc) · 1.59 KB

Release Management

The bulk of work of releasing a new version is done by the ./release.sh script. This script takes care of bumping the versions, creating a tag and deploying to Maven Central.

USAGE:
    release.sh [FLAGS] <release-version> <next-version>

FLAGS:
    -h, --help          Prints help information
    -v, --version       Prints version information
    --no-color          Uses plain text output

ARGS:
    <release-version>   The release version (as semver)
    <next-snapshot>     The next snapshot version  (as semver)

Prerequisites

  • <release-version> and <next-version> must be semantic versions following major.minor.micro.
  • <next-version> must be greater than <release-version>
  • there must be no uncommitted changes
  • there must be no tag v<next-version>
  • there should be some entries in the Unreleased section of the changelog.

What it does

  1. Bump the version to <release-version>.Final
  2. Update the changelog headings and internal links (there should already be entries in the Unreleased section)
  3. Create a tag for v<release-version>
  4. Commit and push to upstream (which will trigger the release workflow at GitHub):
    1. Deploy to Maven Central
    2. Create a GitHub release with the relevant entries from the changelog
    3. Announce the release in the discussions
  5. Bump the version to <next-version>-SNAPSHOT
  6. Commit and push to upstream