@@ -34,6 +34,37 @@ the `semantic-convention` release version, e.g. `v1.21.0.1`
3434 * This workflow will publish artifacts to maven central and will publish a GitHub release with
3535 release notes based on the change log.
3636
37+ ## Making release candidate locally
38+
39+ * Follow steps to [ prepare a new release] ( #preparing-a-new-release ) , but DO NOT [ make the release] ( #making-the-release )
40+ * Check out release branch locally
41+ * Set required environment variables
42+ * ` export CI=true ` - trick tooling to thinking this is the official release process, and sign artifacts
43+ * ` export GPG_PRIVATE_KEY=<private_key> `
44+ * ` export GPG_PASSWORD=<password> `
45+ * ` export SONATYPE_USER=<user> `
46+ * ` export SONATYPE_KEY=<key> `
47+ * Adjust version tag to include ` -rc.<num> ` suffix (i.e. ` -rc.1 ` for the first release candidate) in [ build.gradle.kts] ( ./build.gradle.kts ) :
48+
49+ ```
50+ var ver = semanticConventionsVersion
51+ ver += "-rc.1" // <-- ADD THIS LINE
52+ val release = findProperty("otel.release")
53+ if (release != null) {
54+ ver += "-" + release
55+ }
56+ if (snapshot) {
57+ ver += "-SNAPSHOT"
58+ }
59+ version = ver
60+ ```
61+
62+ * Build and publish artifacts to staging repository
63+ * Run ` ./gradlew assemble publishToSonatype closeSonatypeStagingRepository `
64+ * Notably, this stages the artifacts in sonatype and gives a chance for manual verification before publishing
65+ * Publishing via the sonatype UI
66+ * After publishing, manually create Github release using the contents from the [ CHANGELOG.md] ( ./CHANGELOG.md )
67+
3768## Credentials
3869
3970See [ opentelemetry-java credentials] ( https://github.com/open-telemetry/opentelemetry-java/blob/main/RELEASING.md#credentials ) .
0 commit comments