How to Release

1. Update version matrix

If the release includes a Beam version bump, update the version matrix

2. Run the pre-release check

Trigger the pre-release check and ensure that the latest CI build is green.

3. Release

The release steps are configured in GHA using the Typelevel CI Release plugin. Any tag pushed with the format vx.y.z will trigger a release of Scio verison x.y.z.

You can release fully using the GitHub UI, or manage tag creation on command line.

When drafting release notes, we recommend organizing the release notes into the following categories:

## ๐Ÿš€ Enhancements
## ๐Ÿ› Bug Fixes
## ๐Ÿ“— Documentation
## ๐Ÿ—๏ธ Build Improvements
## ๐ŸŒฑ Dependency Updates

Call out any Beam version upgrades in the top line of the release notes. See https://github.com/spotify/scio/releases for reference.

Option 1: Release using GitHub UI

This is the easiest way to release the main branch. Simply draft a new release from the Releases tab and create a new tag (in the format vx.y.z). This will trigger a tag build in GHA, which performs the release steps automatically.

Option 2: Release using Github CLI

Checkout and update the main branch.

git checkout main

git pull

Create and push a new version tag

git tag -a vX.Y.Z -m "vX.Y.Z"

git push origin vX.Y.Z

In the GitHub UI, create a GitHub release from the newly created tag.

Option 3: Release Manually

Included for reference, but not recommended.

Prerequisites:

  • Sign up for a Sonatype account here
  • Ask for permissions to push to com.spotify domain like in this ticket
  • Add Sonatype credentials to ~/.sbt/1.0/credentials.sbt
credentials ++= Seq(
Credentials(
    "Sonatype Nexus Repository Manager",
    "oss.sonatype.org",
    "$USERNAME",
    "$PASSWORD"))

Manual release steps:

  • Run release skip-tests in sbt console and follow the instructions
  • Go to oss.sonatype.org, find the staging repository, “close” and “release”
  • When the tag build completes, draft a release in the GitHub UI using the existing tag.

4. Post-release steps

When the artifacts have been published, you can: