Skip to content

Add ADTypes to ComplicatedPDE Project.toml [deps]/[compat]#1589

Merged
ChrisRackauckas merged 2 commits into
SciML:masterfrom
ChrisRackauckas-Claude:fix/ComplicatedPDE-adtypes
Jun 10, 2026
Merged

Add ADTypes to ComplicatedPDE Project.toml [deps]/[compat]#1589
ChrisRackauckas merged 2 commits into
SciML:masterfrom
ChrisRackauckas-Claude:fix/ComplicatedPDE-adtypes

Conversation

@ChrisRackauckas-Claude

Copy link
Copy Markdown
Contributor

Ignore until reviewed by @ChrisRackauckas.

Follow-up fix to #1580 (just merged). Filament.jmd does `using SciMLLogging, ADTypes` but ADTypes was only present in the Manifest as a transitive dep, not in Project.toml [deps]. The chunk eval fails at the `using` line:

```
ERROR: ArgumentError: Package ADTypes not found in current path.
in expression starting at .../benchmarks/ComplicatedPDE/Filament.jmd:6
```

CI marked the merged PR green only because `SciMLBenchmarks.weave_file` catches per-file `ProcessFailedException` via `@error` at `src/SciMLBenchmarks.jl:100` and doesn't re-throw — so `benchmark.jl` exits 0 even though Filament.jmd actually failed.

This PR adds:

  • `ADTypes = "47edcb42-4c32-4615-8424-f2b9edc5f35b"` to [deps]
  • `ADTypes = "1"` to [compat]

No Manifest changes (ADTypes was already pinned there as a transitive dep).

ChrisRackauckas added a commit that referenced this pull request May 22, 2026
Per-file ProcessFailedException was previously caught and only @error'd,
so benchmark.jl always exited 0 even when one or more .jmd files
actually failed — CI showed green despite real failures (e.g. the
ComplicatedPDE/Filament.jmd ADTypes missing-dep bug masked until #1589).

Collect failures and throw at end. Per-file 'continue on failure'
behaviour is preserved (so one bad .jmd doesn't block others from
producing artifacts), but the job now exits non-zero if anything failed.

This will cause master CI to start showing red for folders that have
been silently failing — that's the intended behaviour; the goal is for
red CI to reflect real failures.

Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
@ChrisRackauckas-Claude ChrisRackauckas-Claude force-pushed the fix/ComplicatedPDE-adtypes branch from d1a9d45 to f19e774 Compare May 22, 2026 14:15
Filament.jmd does `using SciMLLogging, ADTypes` but ADTypes was only
in the Manifest as a transitive dep, so the chunk eval failed with
"Package ADTypes not found in current path". CI marked the job
success only because SciMLBenchmarks.weave_file catches per-file
ProcessFailedException via @error and doesn't re-throw — benchmark.jl
exits 0 even though Filament.jmd actually failed.

Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
@ChrisRackauckas-Claude ChrisRackauckas-Claude force-pushed the fix/ComplicatedPDE-adtypes branch from f19e774 to 1966792 Compare May 31, 2026 01:12
The previous commit added ADTypes to [deps]/[compat] without re-resolving
the Manifest, so its project_hash was stale and every environment
activation warned "The project dependencies or compat requirements have
changed since the manifest was last resolved." Pkg.resolve() on Julia
1.11 records ADTypes as a direct dependency with zero package version
changes (it was already pinned as a transitive dep).

The CI job failure itself (run 26699704967) was runner infrastructure,
not code: ~36 minutes in, the runner's _work tree on amdci1-1 vanished
mid-job, producing
  IOError: readdir(".../_tool/julia/1.11.9/x64/share/julia/stdlib/v1.11"):
  no such file or directory (ENOENT)
during ODEInterface's lazy `import ODEInterface_jll` (rodas), then
  IOError: cd(".../_work/SciMLBenchmarks.jl/SciMLBenchmarks.jl") ENOENT
and finally "could not spawn .../bin/julia: ENOENT" for
SpringBlockNonLinearResistance.jmd. Verified locally on Julia 1.11 that
the Filament model chunks, the rodas() solve, and a WorkPrecisionSet
with rodas + CVODE_BDF all succeed with this environment.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@ChrisRackauckas

Copy link
Copy Markdown
Member

CI failure diagnosis and fix (run 26699704967, job "Run: benchmarks/ComplicatedPDE")

Root cause of the job failure: runner infrastructure, not code. The original using ADTypes problem this PR targets did not reproduce in this run — Filament.jmd weaved all 36 chunks. The job died because ~36 minutes in, the entire _work tree on self-hosted runner amdci1-1 (both the checkout and the Julia 1.11.9 toolchain) disappeared mid-job:

caused by: LoadError: IOError: readdir("/julia/github-runners/amdci1-1/_work/_tool/julia/1.11.9/x64/share/julia/stdlib/v1.11"): no such file or directory (ENOENT)

This hit ODEInterface's lazy import ODEInterface_jll on first rodas() use (innermost KeyError: key "rodas" not found → retry load → require fails on the missing stdlib dir), then Weave's cd back to the deleted workdir failed (IOError: cd(.../_work/SciMLBenchmarks.jl/SciMLBenchmarks.jl): ENOENT), and SpringBlockNonLinearResistance.jmd couldn't even start: could not spawn .../_tool/julia/1.11.9/x64/bin/julia: no such file or directory.

Real (small) defect fixed in this push: the previous commit added ADTypes to Project.toml without re-resolving the Manifest, so every activation in the log warned:

┌ Warning: The project dependencies or compat requirements have changed since the manifest was last resolved.

Commit c203a33 runs Pkg.resolve() on Julia 1.11, which updates only the Manifest project_hash (ADTypes was already pinned as a transitive dep — zero package version changes), making the environment consistent and silencing the warning.

Local verification (Julia 1.11, this environment): instantiated cleanly with no stale-manifest warning; ran Filament.jmd chunks 1–16 + the reference Vern9() solve, a solve(prob, rodas(), ...) (the exact ODEInterface lazy-load path that errored in CI, ReturnCode.Success), and a WorkPrecisionSet with rodas() + CVODE_BDF(); SpringBlockNonLinearResistance.jmd imports all load.

Benchmark retriggered: the push started a new Benchmarks run: https://github.com/SciML/SciMLBenchmarks.jl/actions/runs/27267926373 — if the workspace wipe on the runner recurs there, that needs an infra-side look at the amdci runner cleanup rather than a repo change.

🤖 Generated with Claude Code

@ChrisRackauckas ChrisRackauckas marked this pull request as ready for review June 10, 2026 14:37
@ChrisRackauckas ChrisRackauckas merged commit d3754bc into SciML:master Jun 10, 2026
4 of 6 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