Skip to content

Repair restored sublibrary downgrade metadata - #130

Closed
ChrisRackauckas-Claude wants to merge 1 commit into
SciML:masterfrom
ChrisRackauckas-Claude:codex/restore-sublibrary-qa-metadata
Closed

ChrisRackauckas-Claude wants to merge 1 commit into
SciML:masterfrom
ChrisRackauckas-Claude:codex/restore-sublibrary-qa-metadata

Conversation

@ChrisRackauckas-Claude

Copy link
Copy Markdown
Member

Ignore this PR until it has been reviewed by @ChrisRackauckas.

What changed

QA downgrade jobs now save and restore the package's original Project.toml, then repair only that local package's entry in the downgrade-generated Manifest.toml. This retains the locked downgraded dependency/test-extra versions while removing test-only dependencies that julia-downgrade-compat temporarily promoted into the package's own dependency metadata.

The helper deliberately does not call Pkg.resolve(): resolving the restored project removed 151 locked test-environment packages in the reproduced ModelingToolkitBase graph. It preserves every non-main Manifest entry and removes the now-stale project_hash rather than using Pkg internals to synthesize one.

Failing before

On clean ModelingToolkit origin/master commit 6b06080fe1c19a0fc99f5e1e32ed3309b847e201, the exact downgrade workflow under Julia 1.10.12 produced:

Test Summary: | Pass  Total     Time
JET Tests     |   54     54  1m58.7s

Test Summary:                                  | Pass  Fail  Error  Total     Time
Aqua Tests                                     |   16     2      1     19  5m16.4s
    Stale dependencies                         |          1             1    13.8s
    Persistent tasks                           |          1             1    13.2s
    ExplicitImports                            |    3            1      4    26.1s
ERROR: Some tests did not pass: 16 passed, 2 failed, 1 errored, 0 broken.

The stale-dependency set contained the promoted test extras. The persistent-task subprocess reported the synthetic ModelingToolkitBase -> ModelingToolkitStandardLibrary -> ModelingToolkitBase cycle and never created Aqua's completion file. The ExplicitImports UnPack error also reproduces in an untouched current-resolver control and is tracked separately on the ModelingToolkit PR linked below.

Passing after

Applying the restore/repair to the real downgraded PR graph produced these invariants:

version_maps_identical=true
non_main_metadata_identical=true
project_hash_removed=true

In a never-used writable depot, with JULIA_NUM_PRECOMPILE_TASKS=1 and JULIA_PKG_PRECOMPILE_AUTO=0, the original two downgrade-specific assertions then completed warning-free:

Aqua.test_stale_deps(ModelingToolkitBase; ignore=[:SimpleNonlinearSolve])
Aqua.test_persistent_tasks(ModelingToolkitBase; tmax=60)
REPAIRED_AQUA_TARGETED_WALL=643.96 REPAIRED_AQUA_TARGETED_EXIT=0

No stale dependency, persistent task, dependency cycle, stale pidfile, Moshi overwrite, or duplicate-include output occurred in that fresh-depot targeted run.

Repository verification

$ julia +1.10.12 --startup-file=no test/runtests.jl
restore downgraded project manifest metadata | 9 passed / 9 total
develop_sources                               | 5 passed / 5 total
compute_affected_sublibraries                 | 24 passed / 24 total
...all remaining repository testsets passed

$ actionlint
# exit 0; includes shellcheck for workflow run blocks

$ julia +1.10.12 --project=<Runic-v1.10.0-env> -e 'using Runic; exit(Runic.main(ARGS))' -- --check scripts/restore_downgraded_project.jl test/runtests.jl
# exit 0

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

$ git diff --check
# exit 0

Validation limitation

I did not claim a clean full ModelingToolkitBase QA pass. An untouched fresh-depot control at the PR commit itself emits the same 31 package-wide JET method-overwrite warnings as the historical GitHub job; that independent harness defect is filed below. Today's resolver also exposes the independent UnPack ExplicitImports drift. Neither condition is introduced by this Manifest repair, but both prevent using the full current QA output as uncontaminated passing evidence.

No documentation or public API changed, so no docs build was run.

Links

🤖 Generated with Codex CLI 0.151.0 (model: unknown).
Session: local session ID 01a04fa1-cfe0-7260-b416-72fe8a15d17d

Restore the original QA project after downgrade and rebuild only its local Manifest entry. This preserves downgraded dependency versions while removing promoted test extras from the package's own dependency metadata.

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

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

Agent-Harness: Codex CLI 0.151.0

Agent-Model: unknown

Agent-Session: local session ID 01a04fa1-cfe0-7260-b416-72fe8a15d17d
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