dashorst opened a new issue, #1749: URL: https://github.com/apache/wicket/issues/1749
Restaging the 11.0.0 release candidate turned up three faults in what `release.sh` generates: `release-vote.txt`, `release-announce.txt`, `promote-$version.sh` and `revert-$version.sh`. All three had to be corrected by hand before the vote mail could go out. **1. The staging repository ID can be the wrong one.** `release.sh` (line 505) takes the ID from `rc-list`, keeping every `orgapachewicket-*` line that is not `CLOSED`: ``` stagingrepoid=$(mvn ...:rc-list ... | grep -v "CLOSED" | grep -Eo "orgapachewicket-[0-9]+") ``` That isn't necessarily the repository this deploy uploaded to. On the 11.0.0 restage the generated files named `orgapachewicket-1280`, while the artifacts were in `orgapachewicket-1283`. The vote mail would have pointed voters at a repository that doesn't exist, `promote-11.0.0.sh` would have tried to release it, and `revert-11.0.0.sh` would have tried to drop it. If more than one Wicket repository is open (another release line being staged at the same time, or an implicitly created one), the variable holds several IDs. If none is open, it is empty. The script carries on either way. It should identify the repository that this deploy created, and stop if it can't find exactly one. **2. Rerunning a version duplicates the changelog in the vote and announce mails.** `generate_signatures_from_release` appends the changelog section to `/tmp/release-$version-sigs.txt` with `>>`, and nothing ever empties or removes that file. A second run of the same version, after a revert, appends a second copy, so `release-vote.txt` and `release-announce.txt` list the whole changelog twice. The file should be written fresh on every run (a `mktemp` file, or truncated first). The revert shouldn't depend on it being removed. **3. The generated revert script continues after its local steps fail.** `revert-$version.sh` starts with `git checkout $GIT_BRANCH`. When the generated files on the build branch have local modifications, the hand fix for (1) for example, the checkout refuses to switch. Then `git branch -D` fails because the branch is still checked out. The script has no `set -e`, so it goes on to delete the remote branch and tag, `svn rm` the dist area and drop the Nexus repository, and leaves the local branch and tag behind. The generated scripts should stop at the first failing step. `promote-$version.sh` has the same structure and should be checked for the same thing. Follows up on #1721. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
