ci: improve artifact verification flow#741
ci: improve artifact verification flow#741Haricharanpanjwani wants to merge 1 commit intoapache:mainfrom
Conversation
|
I ran the new verifier flow locally in a clean clone to exercise the issue #720 implementation paths. What the local run confirmed:
Caveats from the local run:
Reproducibility-specific caveats encountered:
So this comment is not claiming a fully green release verification from local demo artifacts. It is documenting that the new verifier checks are implemented, executable, and correctly detect both success and failure conditions. |
|
Follow-up update pushed in This came out of local validation with Apache RAT 0.18:
This follow-up makes the verifier more robust and backward compatible by:
|
9c8417d to
965f087
Compare
f5b34ac to
e47df20
Compare
skrawcz
left a comment
There was a problem hiding this comment.
Nice improvement to the release verification flow. The structured VerificationSummary / CheckResult approach is clean and makes the output much more useful for voters. The RAT 0.18 compatibility work (log-line parsing, relative-target invocation, new XML format handling) and reproducible build verification are both valuable additions.
One question on _build_reproducible_wheel (line 772): the os.environ.clear() followed by os.environ.update(original_env) pattern is risky if anything goes wrong between those two calls — the process would be left with an empty environment. Could you pass the modified env through to the subprocess calls instead of mutating os.environ directly?
A few smaller suggestions inline. All 9 tests pass locally and the overall structure is solid.
e47df20 to
a0ac346
Compare
|
tks @Haricharanpanjwani ! looked at this. the CI failure is just a missing init.py, easy fix one thing tho, get_first_matching_hook means only one interceptor per action right? might want to document that EOF |
|
MInd rebasing? Looks reasonable. I added some changes so can you rebase? Then I'll look again. |
a0ac346 to
20c34a4
Compare
Closes #720.
Improve the Apache release artifact verification flow used by voters and release managers.
Summary
scripts/verify_apache_artifacts.pyLICENSE,NOTICE, andDISCLAIMERcontents in release artifactsLICENSE-wheel.rat-excludespatterns so RAT 0.18 applies the intended exclusions during end-to-end verification--vote-emailand--vote-email-outputpytest, making wheel metadata requirements explicit, removing the genericbuild_toolpath, and isolating rebuild environment changes to subprocess executionHow I tested this
python -m pytest tests/test_verify_apache_artifacts.pyPYTHONPYCACHEPREFIX=/tmp/pycache python -m py_compile scripts/apache_release.py scripts/verify_apache_artifacts.py tests/test_verify_apache_artifacts.pypython scripts/verify_apache_artifacts.py --helppython scripts/verify_apache_artifacts.py all --help.venvpython scripts/apache_release.py archive 0.41.0 0,python scripts/apache_release.py sdist 0.41.0 0, andpython scripts/apache_release.py wheel 0.41.0 0python scripts/verify_apache_artifacts.py signatures --artifacts-dir distpython scripts/verify_apache_artifacts.py artifacts --artifacts-dir distpython scripts/verify_apache_artifacts.py licenses --artifacts-dir dist --rat-jar /Users/hpanjwani/Downloads/apache-rat-0.18/apache-rat-0.18.jarpython scripts/verify_apache_artifacts.py reproducible --artifacts-dir distpython scripts/verify_apache_artifacts.py all --artifacts-dir dist --rat-jar /Users/hpanjwani/Downloads/apache-rat-0.18/apache-rat-0.18.jar --vote-email --vote-email-output /tmp/burr-vote-email.txtNotes
scripts/apache_release.pyscripts/verify_apache_artifacts.py,tests/test_verify_apache_artifacts.py,.rat-excludes, and the release/rebuild alignment inscripts/apache_release.pyChecklist