# Versioning and releasing OpenTelemetry Auto-Instrumentation for Java uses [SemVer standard](https://semver.org) for versioning of its artifacts. The version is specified in [version.gradle.kts](https://github.com/open-telemetry/opentelemetry-java-instrumentation/blob/main/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](https://oss.sonatype.org/content/repositories/snapshots/io/opentelemetry/). ## Starting the Release Before making the release: * Merge a PR to `main` updating the `CHANGELOG.md` * Create a release branch, e.g. `v1.9.x` ``` git checkout -b v1.9.x upstream/main git push upstream v1.9.x ``` * Merge a PR to the release branch with the following changes * Remove `-SNAPSHOT` from the version in these files: * version.gradle.kts * examples/distro/build.gradle * examples/extension/build.gradle * Bump the version in the download link in the root `README.md` file Open the release build workflow in your browser [here](https://github.com/open-telemetry/opentelemetry-java-instrumentation/actions/workflows/release-build.yml). You will see a button that says "Run workflow". Press the button, then enter the following: * Use workflow from: * The release branch to use: * The version of the release: (Yes there is redundancy between the above inputs that we plan to address.)