morningman opened a new pull request, #66663:
URL: https://github.com/apache/doris/pull/66663
### What problem does this PR solve?
Issue Number: N/A
Related PR: #65488
Problem Summary:
Two gaps in the release helper scripts, both found while preparing
4.0.8-rc02.
**1. `02-package-sign-upload.sh` signs the convenience binaries but never
uploads them**
The script writes `.asc` and `.sha512` next to each `BIN_FILES` entry and
stops there, while `03-vote-mail.sh` already advertises those files under
`BIN_DOWNLOAD_BASE`. Nothing told the RM to publish them, so a vote mail could
go to `dev@` with dead `.asc` links.
The reminder now prints on every successful exit, including the two paths
that answer `n` at the SVN confirmations — the binaries are already signed by
then, so the reminder is just as relevant there.
```
[WARN] the binary .asc signatures are NOT uploaded by this script.
Upload each binary together with its .asc and .sha512 to https://<base>/ :
apache-doris-4.0.8-bin-x64.tar.gz apache-doris-4.0.8-bin-x64.tar.gz.asc
apache-doris-4.0.8-bin-x64.tar.gz.sha512
...
03-vote-mail.sh advertises them under https://<base>/, so upload them BEFORE
sending the vote email.
```
**2. `03-vote-mail.sh` produced an incomplete draft**
- The subject only reached the console and the `.eml` header, so the RM had
to take the subject from one place and the body from another. `vote-email.txt`
now starts with the `Subject:` line, and the whole mail can be copied from a
single file.
- The subject wording is now `[VOTE] Release for Apache Doris <tag>`,
matching what is used on the list.
- The body now ends with the RM's own `Here is my +1(binding)`, placed above
the signature, so it does not have to be typed in by hand every release.
### Release note
None
### Check List (For Author)
- Test
- [x] Unit Test
Two new cases under `tools/release-tools/tests/`, both following the
existing stub-`release.env` plus fake-binaries-on-`PATH` pattern already used
by `test-release-complete-checksum.sh`:
- `test-package-binary-upload-reminder.sh` runs `02` end to end with a
fake `git` and `gpg`, answers `n` at the first SVN confirmation, and asserts
that each `.asc` was produced and that the reminder names it, names the
download base, and states that the script does not upload.
- `test-vote-mail-draft.sh` runs `03` and asserts the subject line
heads `vote-email.txt`, the same subject is a header in `vote-email.eml`, and
the binding vote appears in both, above `Best Regards,`.
`./tests/run.sh`: the four other cases pass.
`test-release-complete-checksum.sh` fails, but it fails the same way on a
pristine `master` checkout and this PR does not touch `04-release-complete.sh`,
so it is left alone here.
- Behavior changed:
- [x] Yes.
Only for the RM running these scripts: the vote email subject gains
"for", `vote-email.txt` gains a leading `Subject:` line, the body gains the
`+1(binding)` line, and `02` prints an extra reminder. No product code is
touched.
- Does this need documentation?
- [x] No. `tools/release-tools/README.md` is updated in this PR.
### Check List (For Reviewer who merge this PR)
- [ ] Confirm the release note
- [ ] Confirm test cases
- [ ] Confirm document
- [ ] Add branch pick label
🤖 Generated with [Claude Code](https://claude.com/claude-code)
--
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]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]