Repository navigation
Conversation
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.
zozo123
force-pushed
the
ci-upgrade-diagnostics
branch
from
October 6, 2026 06:01
6491f0b to
9db131f
Compare
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Let main AMD canaries finish without waiting for detailed dependency upgrade explanations, while keeping those diagnostics available to maintainers.
Explaining each outdated package can require a full dependency resolution. As the number of outdated packages grows, this advisory work can delay the canary even when image builds and tests get faster. Separating the report addresses that delay without reducing test coverage or dependency validation.
For scheduled and manually dispatched AMD runs on
main, the canary keeps the quick dependency freshness summary and saves the constraints it analyzed. After completion, a separate Dependency upgrade report workflow checks out the tested revision and loads the original CI image and saved constraints from that run. It also runs after a failed canary when the required artifacts are available. Python 3.10 remains summary-only; other run types and release branches keep their existing behavior.The report validates the source repository, branch, workflow, and event; uses read-only permissions; runs at most three jobs concurrently; and saves partial output if a job fails or reaches its 90-minute limit. Maintainers can use Re-run jobs on the report (or
gh run rerun REPORT_RUN_ID) while the original inputs and image remain available, normally two days. Reruns preserve the source canary ID and fail if the original inputs have expired. The report uses onlyworkflow_run, so it cannot write to the default branch cache. Missing or expired inputs fail the report rather than substituting newer artifacts. PyPI metadata is fetched at report time, so available upgrade targets can change.The resolver also skips a redundant pinned resolution when the shared unconstrained baseline already selects the latest version.
--constraints-filelets the quick summary and the later report analyze the same saved constraints.Moving explanations to another workflow removes them from the canary completion path; it does not by itself reduce total runner minutes. The resolver shortcut can save runner time. Measure wall-clock improvement after merge, and include both workflows when comparing runner usage.
Validation:
The new reporting workflow still needs end-to-end validation on a qualifying main canary after merge.
Was generative AI tooling used to co-author this PR?
Generated-by: Codex (GPT-6) following the guidelines