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
mainwith 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
semanticConventionsVersionvariable inbuild.gradle.ktsto version ofsemantic-conventionsto 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
mainselected - 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.1for 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