Release: complete the Nexus secret rename and harden cancel/publish - #3814
Merged
Merged
Conversation
The 2026-09-16 Cancel RC run for 1.19.0 rc9 failed with HTTP 401 because release-cancel-rc.yml still read secrets.PARQUET_NEXUS_USER / PARQUET_NEXUS_PASSWORD, which do not exist on apache/parquet-java. apache#3776 moved prepare-rc and publish to the ASF org-shared NEXUS_STAGE_DEPLOYER_USER / NEXUS_STAGE_DEPLOYER_PW but missed cancel-rc, the last two references in the tree. Nothing was cancelled: verification is step 0, so the run aborted before dropping the staging repo or deleting the SVN artifacts. An absent secret expands to the empty string rather than failing, so the credentials were present-but-blank and the first authenticated curl reported only "error: 401". Add require_env and call it from all three release scripts when DRY_RUN is not 1, so a missing credential is named before any network call. Dry runs stay usable without secrets because every authenticated call is already gated on DRY_RUN. _maven.sh had this check for the deploy path only, which is why prepare-rc's Nexus 401 was equally opaque. Also apply apache#3787's tag-push ordering to publish-release.sh. It pushed the final tag in step 3 and released the staging repo in step 4, so a Nexus failure left a published release tag and the "Final release tag already exists" guard then blocked the retry -- the same trap apache#3787 removed from prepare-rc, where eight orphaned 1.19.0 RC tags accumulated. Keep git tag -a in step 3 for the local reads that follow and move only the push to step 5, immediately before the GitHub release that needs it on the remote. Generated-by: Claude Opus 5 (1M context)
RussellSpitzer
force-pushed
the
fix/cancel-rc-parity
branch
from
September 22, 2026 21:26
aeb23c4 to
1bffb8c
Compare
Fokko
approved these changes
Sep 23, 2026
| DRY_RUN: ${{ inputs.dry_run && '1' || '0' }} | ||
| NEXUS_USERNAME: ${{ secrets.PARQUET_NEXUS_USER }} | ||
| NEXUS_PASSWORD: ${{ secrets.PARQUET_NEXUS_PASSWORD }} | ||
| NEXUS_USERNAME: ${{ secrets.NEXUS_STAGE_DEPLOYER_USER }} |
Contributor
There was a problem hiding this comment.
This is the last one: https://github.com/search?q=repo%3Aapache%2Fparquet-java+PARQUET_NEXUS_USER&type=code
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Rationale for this change
While we fixed the URLs for Nexus checking in the prepare script, we did not also fix it in the Cancel and publish script.
What changes are included in this PR?
Urls are fixed and a safeguard is included to make sure that if our required secrets are not set, we fail fast. Also do the same Tag reordering thing we also fixed in prepare which moves the GitHub tagging to the end so that a failed publish doesn't leave behind a git tag.
Are these changes tested?
Local Bats runs.
Are there any user-facing changes?
No