Repository navigation
Conversation
6491f0b to
9db131f
Compare
Detailed upgrade investigations grow with the number of outdated packages and delay canary completion even when test preparation gets faster. Maintainers need prompt test results while retaining reproducible upgrade diagnostics.
Diagnostic reruns must retain their original inputs without gaining cache write access on the default branch. The workflow-run event already provides that boundary and the standard rerun action preserves the source canary.
9db131f to
79998e9
Compare
potiuk
left a comment
There was a problem hiding this comment.
Thanks, moving the explanations out of the canary itself makes sense. Details are inline; the first one (a single missing artifact stops every report) looks likely to make the report fail on most runs.
Drafted-by: Claude Code (Opus 5.5); reviewed by @potiuk before posting
|
Could you also share some measurements of the actual savings: how much shorter the main AMD canary gets with the explanations moved out, against the runner time the separate report uses (up to 15 jobs of up to 90 minutes, three at a time)? Drafted-by: Claude Code (Opus 5.5); reviewed by @potiuk before posting |
Picks up the httpx2 Dag processor client fix (apache#74731) that the core test jobs and the airflow-core mypy check failed on. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- Skip entries whose saved constraints or CI image are missing or expired, with a warning and a summary line, instead of failing every report. - Name report inputs by canary attempt and explain each input once, so a re-run canary no longer queues a second report from the same inputs. - Post the same notice on every attempt when the canary saved no inputs. - Free up disk space and move Docker to /mnt before loading the image. - Save the checked constraints through breeze's --save-constraints-to, pinned to the resolved constraints commit; failing to save only warns, so the canary no longer depends on raw `gh api` calls. - Say that no cache step, not workflow_run, keeps the cache untouched, and skip the plan tests when node is unavailable. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Thanks for the review. Here is where this stands. Review comments (all fixed in 5edef09 unless noted)
RunsOn canaries (35938b5): since #74889, scheduled canaries keep the CI image in RunsOn's S3 cache, and only its digest is a GitHub artifact. The plan accepts that digest, and the explain job runs on a RunsOn runner and fetches exactly that tarball by its digest, verified as Timeout (a505227): the explain job limit goes from 90 to 150 min. The Measurements from the four latest scheduled
How I estimated it:
Earlier failures: the 14 failing checks before main was merged in (6648f4f) were not caused by this PR. CI: 35938b5, which merges in main and adds the RunsOn change, is green: 137 checks passed, none failed. Still open
|
Explaining constraints-source-providers took 105-120 minutes per job in the last four main canaries, past the report job's 90-minute timeout. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
The measurements are now part of the updated summary: #74311 (comment) |
CONSTRAINTS_GITHUB_REPOSITORY names the repository holding the constraints-* branches, apache/airflow by default, and the Dockerfiles read it. Breeze's download_constraints_file and get_branch_commit always used apache/airflow instead, so setting it changed nothing for constraints-version-check, the SBOM and provider dependency downloads, or the constraints commit saved for the dependency report. Both functions now read CONSTRAINTS_GITHUB_REPOSITORY and fall back to apache/airflow when it is unset or empty, so existing callers and CI on apache/airflow behave as before, and a saved commit always comes from the repository its constraints were downloaded from. Other files fetched through download_file_from_github still come from apache/airflow.
Since apache#74889 scheduled canaries run on RunsOn, where the CI image stash goes to RunsOn's S3 cache and only its digest is a GitHub artifact, so every report entry was skipped as "CI image missing". The plan now also accepts that digest artifact; the explain job then runs on a RunsOn runner, downloads exactly that tarball by its digest and checks it like stash-restore does. It prepares the disk with the workflow version's runner scripts, as the image build job now does.
|
I merged Why: scheduled canaries now run on RunsOn. There the CI image stash goes to RunsOn's S3 cache, and only its digest is a GitHub artifact: the latest canaries, e.g. 40200075185, only have What changed in 35938b5:
@shahar1, this touches the RunsOn path; could you take a look? The CI run for this commit is also waiting for a maintainer to approve it. |
Scheduled and manually dispatched AMD canaries on
maincurrently wait for detailed dependency upgrade explanations, which can require a full resolution for each outdated package. Keep the quick freshness summary in the canary and run the detailed explanations in a separate Dependency upgrade report workflow after the canary completes.Canary (
finalize-tests.yml)mainschedule and dispatch canaries, theDepsstep runsconstraints-version-check --no-explain-why --save-constraints-to files/dependency-report. Breeze resolves the constraints branch to a commit, downloads the constraints at that commit, and saves both. A failure to save only warns.continue-on-error, so the report path cannot turn the canary red.--explain-whyin the canary.Report (
dependency-upgrade-report.yml,workflow_run)mainschedule or dispatch AMD canary of this repository.stash-restoredoes. On public runners it downloads the image artifact as before.Breeze
constraints-version-checkgets a new--save-constraints-tooption. The report analyzes the saved file with--constraints-file.download_constraints_fileand the newget_branch_commithonourCONSTRAINTS_GITHUB_REPOSITORY, defaulting toapache/airflow.Measurements from the four latest scheduled
mainAMD canaries (38993077423, 39038765293, 39088484466, 39133923075):constraints-source-providers) take 105–120 min per job, hence the 150-minute limit.Validation
nodeis not installed.workflow_runhandoff and the--save-constraints-topath only run onmaincanaries, so the first real report will come from the first canary after merge.Was generative AI tooling used to co-author this PR?
Generated-by: Codex (GPT-6) and Claude Code (Opus 5.5), following the guidelines