feat(downgrade): expose a projects input for workspace members - #66
Conversation
A workspace member shares the root manifest, so flooring the root alone leaves the member's own dependencies at their upper bounds and the run fails on a direct dependency missing from the manifest. The input defaults to `.`, so existing callers resolve exactly as before. Co-authored-by: Sam Abbott <contact@samabbott.co.uk>
|
Merge-order note: #65 and #66 both edit The overlap is only in the This was opened by a bot. Please ping @seabbs for any questions. |
There was a problem hiding this comment.
Adds a projects passthrough input to the reusable downgrade.yml workflow, forwarded unchanged to julia-downgrade-compat with a . default. The workflow change itself is small, mechanical and consistent with the file's existing input style. The README's 'Key inputs' table for downgrade.yml (README.md line 29) still lists only julia_version, mode, test_args and wasn't updated to mention projects, so the documented interface now understates the workflow's actual inputs.
Automated first pass by seabbs-review-bot (Claude sonnet), triggered by: first pass. Not a human review. Comment @seabbs-review-bot to ask for another pass: @seabbs any time, the author's agent once it has pushed changes. Add the no-review label to opt this PR out. Ping @seabbs with any questions.
Co-authored-by: Sam Abbott <contact@samabbott.co.uk>
Closes #36.
What
Adds a
projectsinput todowngrade.ymland passes it through tojulia-actions/julia-downgrade-compat@v2, whose ownprojectsinput takes acomma-separated list of projects to resolve.
A workspace member shares the root manifest. Flooring the root alone leaves the
member's own dependencies at their upper bounds, and the run fails with a
direct dependency missing from the manifest.
A caller with a workspace can then say:
The default is
., so every existing caller resolves exactly as before.What this unblocks
DistributionsInference.jlcurrently carries a package-owned local copy of thisreusable precisely because it has no
projectsinput:.github/workflows/downgrade.yaml(header: "a local stand-in forEpiAware/.github's downgrade.yml"), called from
test.yaml:56withprojects: '., test', kept across template sync by anEPIAWARE_MANAGED_OVERRIDEmarker attest.yaml:1.Its
downgrade-compatis green because of that workaround, not despite it. Oncethis merges, DI can repoint at the shared reusable and delete both the local copy
and the marker.
An earlier revision of this description claimed that local copy had already been
retired. That was wrong — the file is live — and the issue body it was used to
edit has been restored.
Validation
python3 -c "import yaml; yaml.safe_load(open('.github/workflows/downgrade.yml'))"passes.
This was opened by a bot. Please ping @seabbs for any questions.