Releases are performed in lockstep with open-telemetry/semantic-conventions releases.
Applies to major, minor and patch releases of open-telemetry/semantic-conventions
.
- Merge a PR to
main
with the following changes:- Update the
CHANGELOG.md
- The heading for the unreleased entries should be
## Unreleased
- The heading for the unreleased entries should be
- Bump the
semanticConventionsVersion
variable inbuild.gradle.kts
to version ofsemantic-conventions
to be released - Follow the instructions to generate the semantic conventions
- Update the
- Run
the Prepare release branch workflow
- Press the "Run workflow" button, and leave the default branch
main
selected - Review and merge the two pull requests it creates (one is targeted to the release branch and one
is targeted to
main
)
- Press the "Run workflow" button, and leave the default branch
TODO(jack-berg): Define process for releasing a patch, which should add a 4th component to
the semantic-convention
release version, e.g. v1.21.0.1
- Run
the Release workflow
- Press the "Run workflow" button, then select the release branch from the dropdown list,
e.g.
release/v1.21.0
, and click the "Run workflow" button below that. - This workflow will publish artifacts to maven central and will publish a GitHub release with release notes based on the change log.
- Press the "Run workflow" button, then select the release branch from the dropdown list,
e.g.
-
Follow steps to prepare a new release, but DO NOT make the release
-
Check out release branch locally
-
Set required environment variables
export CI=true
- trick tooling to thinking this is the official release process, and sign artifactsexport GPG_PRIVATE_KEY=<private_key>
export GPG_PASSWORD=<password>
export SONATYPE_USER=<user>
export SONATYPE_KEY=<key>
-
Adjust version tag to include
-rc.<num>
suffix (i.e.-rc.1
for the first release candidate) in build.gradle.kts:var ver = semanticConventionsVersion val release = findProperty("otel.release") if (release != null) { ver += "-" + release } if (snapshot) { ver += "-SNAPSHOT" } ver += "-rc.1" // <-- ADD THIS LINE version = ver
-
Build and publish artifacts to staging repository
- Run
./gradlew assemble publishToSonatype closeSonatypeStagingRepository
- Notably, this stages the artifacts in sonatype and gives a chance for manual verification before publishing
- Publishing via the sonatype UI
- Run
-
After publishing, manually create Github release using the contents from the CHANGELOG.md