3.9 KiB
Versioning and releasing
OpenTelemetry Java Contrib uses SemVer standard for versioning of its artifacts.
The version is specified in version.gradle.kts.
Snapshot builds
Every successful CI build of the main branch automatically executes ./gradlew publishToSonatype
as the last step, which publishes a snapshot build to
Sonatype OSS snapshots repository.
Release cadence
This repository roughly targets monthly minor releases from the main branch on the Friday after
the second Monday of the month (roughly a couple of days after the monthly minor release of
opentelemetry-java-instrumentation).
Preparing a new major or minor release
- Check that dependabot has run
sometime in the past day.
- Check that the OpenTelemetry SDK and Instrumentation versions have been updated to the latest release.
- Close the release milestone if there is one.
- Merge a pull request to
mainupdating theCHANGELOG.md.- The heading for the unreleased entries should be
## Unreleased. - Use
.github/scripts/draft-change-log-entries.shas a starting point for writing the change log.
- The heading for the unreleased entries should be
- Run the Prepare release branch workflow.
- Press the "Run workflow" button, and leave the default branch
mainselected. - Review and merge the two pull requests that 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
Preparing a new patch release
All patch releases should include only bug-fixes, and must avoid adding/modifying the public APIs.
In general, patch releases are only made for regressions, security vulnerabilities, memory leaks and deadlocks.
- Backport pull request(s) to the release branch.
- Run the Backport workflow.
- Press the "Run workflow" button, then select the release branch from the dropdown list,
e.g.
release/v1.9.x, then enter the pull request number that you want to backport, then click the "Run workflow" button below that. - Review and merge the backport pull request that it generates.
- Merge a pull request to the release branch updating the
CHANGELOG.md.- The heading for the unreleased entries should be
## Unreleased.
- The heading for the unreleased entries should be
- Run the Prepare patch release workflow.
- Press the "Run workflow" button, then select the release branch from the dropdown list,
e.g.
release/v1.9.x, and click the "Run workflow" button below that. - Review and merge the pull request that it creates for updating the version.
- Press the "Run workflow" button, then select the release branch from the dropdown list,
e.g.
Making the release
- Run the Release workflow.
- Press the "Run workflow" button, then select the release branch from the dropdown list,
e.g.
release/v1.9.x, and click the "Run workflow" button below that. - This workflow will publish the artifacts to maven central and will publish a GitHub release with release notes based on the change log and with the jmx metrics jar attached.
- Review and merge the pull request that it creates for updating the change log in main (note that if this is not a patch release then the change log on main may already be up-to-date, in which case no pull request will be created).
- Press the "Run workflow" button, then select the release branch from the dropdown list,
e.g.
Credentials
Same as the core repo, see opentelemetry-java/RELEASING.md#credentials.