Repository navigation
Commit 86aa26e
authored
* Prepare RC: stage through nexus-staging-maven-plugin
A plain `mvn deploy` to repository.apache.org relies on Nexus implicitly
creating a staging repository, and never tells the client which one it
used. prepare-rc.sh then had to guess: nexus_find_open_staging_repo
listed every open repository in the org.apache.parquet profile and
refused to continue unless there was exactly one.
That guess fails in two ways. On 2026-09-10 a single 1.19.0 run ended
with two open repositories (orgapacheparquet-1085 and -1086) and aborted
before closing either. And parquet-format publishes under the same
groupId, so it shares the staging profile: any open repository from a
parquet-format release would block a parquet-java release, or be
mistaken for one. GitHub concurrency groups are per repository, so the
workflows cannot serialize across the two.
Add nexus-staging-maven-plugin 1.7.0 to the apache-release profile with
extensions enabled, so it replaces maven-deploy-plugin for `mvn deploy`
under that profile only. It stages every module locally, opens one
staging repository, uploads into it, closes it, and records the
repository ID in target/nexus-staging/staging/<profileId>.properties.
prepare-rc.sh now reads the ID from that file rather than searching for
it, which removes nexus_find_open_staging_repo and its multiple-repo
guard.
The plugin also takes over the close from our bulk-close call. Its close
waits for completion and prints rule failures (such as the missing
public key on 2026-09-14), where the bulk call returned while the close
was still in progress. keepStagingRepositoryOnCloseRuleFailure keeps a
repository that fails a rule so it can be inspected, and the properties
file is written before the close, so a failed close still reports which
repository was left behind. stagingProgressTimeoutMinutes is raised from
5 to 15 because a 16-module close may run past the default.
-DstagingDescription sets "Apache Parquet <version> RC<n>" on the
repository at creation, which is the description cancel-rc.sh and
publish-release.sh verify. After the deploy, prepare-rc.sh runs the same
nexus_verify_staging_repo check against the new repository.
stagingProfileId is left unset, so the plugin resolves the profile from
the groupId through the profile_evaluate endpoint. If the deployer
account cannot call that endpoint, the next run fails before uploading
anything and the profile ID has to be configured explicitly.
nexus_close_staging_repo had no remaining callers and is removed.
cancel-rc.sh and publish-release.sh already take the repository ID as an
argument and are unchanged.
Generated-by: Claude Opus 5.5 (1M context)
* Prepare RC: find the staging repo from the deploy log on failure
On a close rule failure, nexus-staging-maven-plugin 1.7.0 deletes its
staging properties file in afterUploadFailure before deciding whether to
keep the repository. With keepStagingRepositoryOnCloseRuleFailure set,
that is exactly the case where a repository is left behind, so reading
the properties file on the failure path could never report it, and
printed a misleading "Expected one staging properties file" error
instead.
maven_deploy now tees Maven output to target/nexus-deploy.log, and the
failure path reads every ` * Created staging repository with ID "..."`
line from it. The plugin logs that line for each repository it opens,
before any upload, so it survives every failure mode. The message says
to check whether the repository still exists, because some failures
(an upload IOException) drop it automatically. PIPESTATUS keeps mvnw's
exit status through the tee regardless of pipefail.
Set autoReleaseAfterClose=false explicitly. It is the default, but the
plugin also binds it to -DautoReleaseAfterClose, and a release after
close would publish an RC before the vote; configuration in the pom
takes precedence over the user property.
The plugin version moves to a nexus-staging-maven-plugin.version
property like the other build plugins. The step summary now reports
success only after nexus_verify_staging_repo passes, and records a line
for each failure exit.
Tests cover the stale staging directory being cleared, the description
reaching mvnw as one argument, mvnw's exit status propagating through
the tee, more than one properties file, the default staging directory,
and parsing repository IDs from the deploy log.
Generated-by: Claude Opus 5.5 (1M context)
* Prepare RC: name the staging repo when its ID cannot be read
When the deploy succeeds but maven_read_staging_repo_id fails, the step
summary only said to look in the Maven log. The deploy log already
records every repository the plugin created, so report those IDs the
same way the deploy failure path does.
If the log shows no created repository either, nexus-staging-maven-plugin
most likely did not run and maven-deploy-plugin deployed into a
repository Nexus created implicitly, so say that and point at Nexus.
Generated-by: Claude Opus 5.5 (1M context)
1 parent 02af344 commit 86aa26e
7 files changed
Lines changed: 231 additions & 231 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
103 | 103 | | |
104 | 104 | | |
105 | 105 | | |
| 106 | + | |
106 | 107 | | |
107 | 108 | | |
108 | 109 | | |
| |||
726 | 727 | | |
727 | 728 | | |
728 | 729 | | |
| 730 | + | |
| 731 | + | |
| 732 | + | |
| 733 | + | |
| 734 | + | |
| 735 | + | |
| 736 | + | |
| 737 | + | |
| 738 | + | |
| 739 | + | |
| 740 | + | |
| 741 | + | |
| 742 | + | |
| 743 | + | |
| 744 | + | |
| 745 | + | |
| 746 | + | |
| 747 | + | |
| 748 | + | |
| 749 | + | |
| 750 | + | |
729 | 751 | | |
730 | 752 | | |
731 | 753 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
263 | 263 | | |
264 | 264 | | |
265 | 265 | | |
266 | | - | |
267 | | - | |
268 | | - | |
269 | | - | |
270 | | - | |
271 | | - | |
272 | | - | |
273 | | - | |
274 | | - | |
| 266 | + | |
| 267 | + | |
| 268 | + | |
| 269 | + | |
| 270 | + | |
| 271 | + | |
| 272 | + | |
| 273 | + | |
| 274 | + | |
| 275 | + | |
| 276 | + | |
275 | 277 | | |
276 | | - | |
277 | | - | |
278 | | - | |
279 | | - | |
280 | | - | |
| 278 | + | |
| 279 | + | |
| 280 | + | |
| 281 | + | |
| 282 | + | |
| 283 | + | |
| 284 | + | |
281 | 285 | | |
| 286 | + | |
282 | 287 | | |
283 | 288 | | |
284 | | - | |
| 289 | + | |
| 290 | + | |
| 291 | + | |
| 292 | + | |
285 | 293 | | |
286 | | - | |
| 294 | + | |
287 | 295 | | |
288 | 296 | | |
289 | 297 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
33 | 33 | | |
34 | 34 | | |
35 | 35 | | |
| 36 | + | |
| 37 | + | |
36 | 38 | | |
37 | 39 | | |
38 | 40 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
62 | 62 | | |
63 | 63 | | |
64 | 64 | | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
65 | 69 | | |
66 | 70 | | |
| 71 | + | |
67 | 72 | | |
68 | 73 | | |
69 | 74 | | |
70 | 75 | | |
71 | 76 | | |
72 | 77 | | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
73 | 81 | | |
74 | 82 | | |
75 | 83 | | |
76 | 84 | | |
| 85 | + | |
77 | 86 | | |
78 | | - | |
| 87 | + | |
| 88 | + | |
| 89 | + | |
| 90 | + | |
| 91 | + | |
| 92 | + | |
| 93 | + | |
| 94 | + | |
| 95 | + | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
| 99 | + | |
| 100 | + | |
| 101 | + | |
| 102 | + | |
| 103 | + | |
| 104 | + | |
| 105 | + | |
| 106 | + | |
| 107 | + | |
| 108 | + | |
| 109 | + | |
| 110 | + | |
| 111 | + | |
| 112 | + | |
| 113 | + | |
| 114 | + | |
| 115 | + | |
| 116 | + | |
| 117 | + | |
| 118 | + | |
| 119 | + | |
| 120 | + | |
| 121 | + | |
| 122 | + | |
| 123 | + | |
| 124 | + | |
| 125 | + | |
| 126 | + | |
| 127 | + | |
| 128 | + | |
| 129 | + | |
| 130 | + | |
| 131 | + | |
| 132 | + | |
| 133 | + | |
| 134 | + | |
79 | 135 | | |
80 | 136 | | |
81 | 137 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
50 | 50 | | |
51 | 51 | | |
52 | 52 | | |
53 | | - | |
54 | | - | |
55 | | - | |
56 | | - | |
57 | | - | |
58 | | - | |
59 | 53 | | |
60 | 54 | | |
61 | 55 | | |
| |||
170 | 164 | | |
171 | 165 | | |
172 | 166 | | |
173 | | - | |
174 | | - | |
175 | | - | |
176 | | - | |
177 | | - | |
178 | | - | |
179 | | - | |
180 | | - | |
181 | | - | |
182 | | - | |
183 | | - | |
184 | | - | |
185 | | - | |
186 | | - | |
187 | | - | |
188 | | - | |
189 | | - | |
190 | | - | |
191 | | - | |
192 | | - | |
193 | | - | |
194 | | - | |
195 | | - | |
196 | | - | |
197 | | - | |
198 | | - | |
199 | | - | |
200 | | - | |
201 | | - | |
202 | | - | |
203 | | - | |
204 | | - | |
205 | | - | |
206 | | - | |
207 | | - | |
208 | | - | |
209 | | - | |
210 | | - | |
211 | | - | |
212 | | - | |
213 | | - | |
214 | | - | |
215 | | - | |
216 | | - | |
217 | | - | |
218 | | - | |
219 | | - | |
220 | | - | |
221 | | - | |
222 | | - | |
223 | | - | |
224 | | - | |
225 | | - | |
226 | | - | |
227 | | - | |
228 | | - | |
229 | | - | |
230 | | - | |
231 | | - | |
232 | | - | |
233 | | - | |
234 | | - | |
235 | | - | |
236 | | - | |
237 | | - | |
238 | | - | |
239 | | - | |
240 | | - | |
0 commit comments