Improve PMC RC verification breeze command for Airflow distribution #60993
+2,533
−353
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.
related: #58578
Context
@amoghrajesh had introduced a great automation for verification of Airflow releases by PMC, which I found that has a potential to do more, as well as to be expanded to other types of releases.
With the help of LLM, I tried to take it to the edge (probably overengineered it 😅). At the same time I tried to consider Jarek's concern regarding "over-automation". My honest view is that the release process for all of our artifacts is very deterministic and technical (like many other problems we tackle in Airflow) - so while we need to understand what's happening as PMC, it should be automated***. At the same time, it should also be well-tested (unit tests + integration), and during execution it should reflect to ther user exactly what's happening.
Chronologically I first started to work on expanding the ability to the providers (#60802), but then I've realized that the new features could be applied here and it would make it easier to review them first on Airflow's release. After merging this PR, I will rebase my second PR for the providers and prepare it for review.
In general, I think that it would make sense to keep this feature for now experimental (mainly due to the introduced "Isolated reproducible builds" - which deviates a bit from the manual instructions), so we could adjust and stabilize it along the way in the next 2-3 releases (i.e., people who use this automation at that time - should also do the process manually).*** - Edit (2026-01-25): considering the expected official automation using Apache Trusted Releases (ATR), it will make all checks redundant except for the reproducibility build. For that reason, this tool should be used as an experimental helper tool until the official automation is completed. After full migration, redundant checks will be deprecated and this tool will be dedicated only to reproducible checks.
What
Misc.
validate-rc-by-pmctoverify-rc-by-pmcas it is more precise description and paired with instruction's terminology (deprecated alias kept for backwards compatibility, and will be deleted upon stabilization).--help+ docs) , with clear disclaimer that builds should also be verified manually.Core Improvements
AirflowReleaseValidatorto parent classReleaseValidatorfor enhanced reusability--no-verbosefor development)git checkoutto the new branch, running the breeze commands, and then go back to the original branch. Added a check that there are no git uncommitted changes due to the temporary branch changing.Note
Initially I thought of using git worktrees for reproduicble builds, but I got troubled with it. To avoid further deviation from current instructions, I fully aligned the implementation with the instructions. We could handle it after migrating to ATR.
CI/CD
Was generative AI tooling used to co-author this PR?
Claude Opus + Gemini (Core), ChatGPT (docs)
{pr_number}.significant.rstor{issue_number}.significant.rst, in airflow-core/newsfragments.