Skip to content

Latest commit

 

History

History
76 lines (50 loc) · 2.02 KB

RELEASING.md

File metadata and controls

76 lines (50 loc) · 2.02 KB

Releasing

The deployment process of cucumber-jvm is based on Deploying to OSSRH with Apache Maven.

Check Build Status

Is the build passing?

git checkout main

Also check if you can upgrade any dependencies:

make update-dependency-versions

Decide what the next version should be

Versions follow Semantic Versioning. To sum it up, it depends on what's changed (see CHANGELOG.md). Given a version number MAJOR.MINOR.PATCH:

  • Bump MAJOR when you make incompatible API changes:
    • There are Removed entries, or Changed entries breaking compatibility
    • A cucumber library dependency upgrade was major
  • Bump MINOR when you add functionality in a backwards compatible manner:
    • There are Added entries, Changed entries preserving compatibility, or Deprecated entries
  • Bump PATCH when you make backwards compatible bug fixes:
    • There are Fixed entries

Display future version by running:

make version

Check if branch name and version are as expected. To change version run:

mvn versions:set -DnewVersion=X.Y.Z-SNAPSHOT

Secrets

Secrets are required to make releases. Members of the core team can install keybase and join the cucumberbdd team to access these secrets.

During the release process, secrets are fetched from keybase and used to sign and upload the maven artifacts.

Make the release

Check if branch name and version are as expected:

make version

Do the release:

make release

Last bits

Update the cucumber-jvm version in the documentation project:

The cucumber-jvm version for the docs is specified in the docs versions.yaml

All done! Hurray!