Skip to content

Restore sublibrary project metadata before downgrade QA - #131

Merged
ChrisRackauckas merged 1 commit into
SciML:masterfrom
ChrisRackauckas-Claude:fix/sublibrary-downgrade-qa-project
Sep 7, 2026
Merged

ChrisRackauckas merged 1 commit into
SciML:masterfrom
ChrisRackauckas-Claude:fix/sublibrary-downgrade-qa-project

Conversation

@ChrisRackauckas-Claude

Copy link
Copy Markdown
Member

What changed and why

The julia-downgrade-compat action now promotes old-style [targets].test extras into [deps] so Pkg.test(; allow_reresolve=false) can retain their locked versions. For QA groups, Aqua consequently inspects the action-mutated project rather than the package's source metadata: it reports every promoted test extra as stale, and ModelingToolkitBase's promoted ModelingToolkitStandardLibrary/DiffEqNoiseProcess dependencies create a precompile cycle that fails the persistent-tasks check.

Save each sublibrary's original Project.toml before downgrade resolution and restore it after the downgraded build but before QA. This matches the existing root downgrade workflow: the build remains pinned to the downgraded manifest, while metadata-oriented QA checks inspect the source project rather than a transient action mutation.

Please ignore this draft until it has been reviewed by @ChrisRackauckas.

Regression evidence

The new workflow-order regression test failed on the unfixed workflow:

sublibrary downgrade restores project metadata for QA | 2 failed / 2 total
Expression: all(!isnothing, positions)
Expression: count("if: \"${{ inputs.group-env-value == 'QA' }}\"", txt) == 2
Evaluated: 0 == 2

After the workflow change, the same test passes:

sublibrary downgrade restores project metadata for QA | 3 passed / 3 total

I also reproduced the current ModelingToolkitBase failure locally from clean detached ModelingToolkit master e91f13e48fc4f2fdda67e66ad7b2d9c67234ac2b using Julia 1.10.12 and the exact downgrade action revision used by CI (30b83cf94e89744fcbd7ea5496be4967d6fbe540). Before restoring lib/ModelingToolkitBase/Project.toml, QA reported 17 passed, 2 failed (Stale dependencies and Persistent tasks). Restoring the source Project.toml before the same locked Pkg.test invocation produced:

JET Tests  | 54 passed / 54 total
Aqua Tests | 19 passed / 19 total
Testing ModelingToolkitBase tests passed

The same failure is present on current ModelingToolkit master in https://github.com/SciML/ModelingToolkit.jl/actions/runs/33444272942/job/99729331320. The behavior was introduced by julia-actions/julia-downgrade-compat@30b83cf.

Verification

julia +1.12 --startup-file=no test/runtests.jl
# all testsets passed; new regression test: 3/3

julia +1.12 --startup-file=no --project=@runic -m Runic --check --diff test/runtests.jl
# exit 0

typos .github/workflows/sublibrary-downgrade.yml test/runtests.jl
# exit 0

actionlint .github/workflows/sublibrary-downgrade.yml
# exit 0

git diff --check
# exit 0

Not verified before opening: a live downstream invocation of this reusable-workflow branch. The local ModelingToolkitBase run above exercises the same save/downgrade/build/restore/test behavior.

🤖 Generated with Codex CLI 0.151.0 (model: gpt-5.6-sol; session: 01a059b1-5fa2-76a2-937a-33502aa35de5).

Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>

Co-Authored-By: Codex <noreply@openai.com>

Agent-Harness: Codex CLI 0.151.0

Agent-Model: gpt-5.6-sol

Agent-Session: 01a059b1-5fa2-76a2-937a-33502aa35de5
@ChrisRackauckas
ChrisRackauckas marked this pull request as ready for review September 7, 2026 06:23
@ChrisRackauckas
ChrisRackauckas merged commit 5f9febb into SciML:master Sep 7, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants