potiuk opened a new pull request, #75989: URL: https://github.com/apache/airflow/pull/75989
A regular constraints refresh (`update-constraints-on-push.yml`, and `refresh-constraints.yml`, which calls it) resolves its pins against the `constraints-X-Y` branch as it is when the run starts, then the publish job checks out the branch as it is when the run ends, commits the generated files on top and pushes. If `Release constraints` commits a release candidate's pins in between, the refresh overwrites them with pins resolved against the older baseline, and the push still succeeds because it is an ordinary fast-forward. The two workflows run in different concurrency groups, so nothing serialises them. This came up in review of #75919, which made the regular generation keep the candidate pins it finds in the baseline. That only helps when the baseline it read is the one it publishes onto. - `build-info` records the commit SHA of the target constraints branch before anything is generated. - The publish job compares the branch it checked out against that SHA and fails if it moved, listing the commits that landed and asking for a re-run, which then starts from the current branch. Recording the baseline before generation is conservative: any commit landing at any point during the run blocks the publish, never only part of the window. A push racing in after the check is still rejected by `git push` as a non-fast-forward. A branch that does not exist yet records an empty SHA, and the check is skipped. The manual-refresh section of `dev/MANUALLY_GENERATING_IMAGE_CACHE_AND_CONSTRAINTS.md` says what the new failure means and what to do about it. Checks run locally: prek pre-commit stage on the two changed files (yamllint, zizmor, markdownlint and the rest) passed, except `lychee`, which needs Docker and was not run. No tests read this workflow. --- ##### Was generative AI tooling used to co-author this PR? - [X] Yes (please specify the tool below) Generated-by: Claude Opus 5 following [the guidelines](https://github.com/apache/airflow/blob/main/contributing-docs/05_pull_requests.rst#gen-ai-assisted-contributions) 🤖 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]
