Skip to content

Commit 1b5d4a3

Browse files
authored
docs: clarify Maven staging behavior across release candidates (#3963)
1 parent bce2ae0 commit 1b5d4a3

1 file changed

Lines changed: 14 additions & 2 deletions

File tree

docs/source/contributor-guide/release_process.md

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -302,8 +302,13 @@ Creating Nexus staging repository
302302
In the Nexus repository UI (https://repository.apache.org/) locate and verify the artifacts in
303303
staging (https://central.sonatype.org/publish/release/#locate-and-examine-your-staging-repository).
304304

305-
If the artifacts appear to be correct, then close and release the repository so it is made visible (this should
306-
actually happen automatically when running the script).
305+
The script closes the staging repository but does not release it. Releasing to Maven Central is a manual step
306+
performed only after the vote passes (see [Publishing Maven Artifacts](#publishing-maven-artifacts) below).
307+
308+
Note that the Maven artifacts are always published under the final release version (e.g. `0.13.0`), not the RC
309+
version — the `-rc1` / `-rc2` suffix only appears in the git tag and the source tarball in SVN. Because the script
310+
creates a new staging repository on each run, re-staging the same version for a subsequent RC is supported as long
311+
as no staging repository for that version has been released to Maven Central.
307312

308313
### Create the Release Candidate Tarball
309314

@@ -345,6 +350,13 @@ If the vote does not pass, address the issues raised, increment the release cand
345350
the [Tag the Release Candidate](#tag-the-release-candidate) step. For example, the next attempt would be tagged
346351
`0.13.0-rc2`.
347352

353+
Before staging the next RC, drop the previous RC's staging repository in the
354+
[Nexus UI](https://repository.apache.org/#stagingRepositories) by selecting it and clicking "Drop". This avoids
355+
leaving multiple closed staging repositories for the same version and prevents accidentally releasing the wrong
356+
one when the vote eventually passes. The Maven version (e.g. `0.13.0`) is shared across all RCs, so each run of
357+
`publish-to-maven.sh` creates a new staging repository for the same GAV — only one of them should ever be
358+
released to Maven Central.
359+
348360
## Publishing Binary Releases
349361

350362
Once the vote passes, we can publish the source and binary releases.

0 commit comments

Comments
 (0)