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"))
- Create a PGP key, for example on keybase.io, and distribute it to a public keyserver
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:
- Clean the
mimaBinaryIssueFilters
inbuild.sbt
if needed - Run scripts/bump_scio.sh to update homebrew formula
- Update
scioVersion
in downstream repos (scio.g8, etc.) - Send announcement to scio-users@googlegroups.com