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]

Reply via email to