Skip to content

Downgrade: relax test PDMats compat floor to 0.11 - #109

Merged
ChrisRackauckas merged 1 commit into
SciML:mainfrom
ChrisRackauckas-Claude:fix-downgrade-floor
Jun 15, 2026
Merged

Downgrade: relax test PDMats compat floor to 0.11#109
ChrisRackauckas merged 1 commit into
SciML:mainfrom
ChrisRackauckas-Claude:fix-downgrade-floor

Conversation

@ChrisRackauckas-Claude

Copy link
Copy Markdown
Member

Problem

The Downgrade CI for SymbolicAnalysis fails at the LTS minimum with:

ERROR: LoadError: empty intersection between PDMats@0.11.0 and project compatibility 0.11.37-0.11

Root cause

The package's two project files declare inconsistent PDMats floors:

  • root Project.toml: PDMats = "0.11" (floor 0.11.0) — PDMats is a runtime [deps] dependency
  • test/Project.toml: PDMats = "0.11.37"

The SciML downgrade workflow (julia-downgrade-compat, mode=deps) pins only the root project's direct-dep compats to their floors. At downgrade minimum it therefore pins PDMats to 0.11.0 in the root env, while the test sandbox still requires 0.11.37. Pkg.test merges both project compats, producing the empty intersection PDMats@0.11.0 ∩ 0.11.37 → Unsatisfiable.

The 0.11.37 floor in test/Project.toml was introduced by a Dependabot "permit the latest version" bump (commit 179d8de), not by any code requirement. PDMats has no 0.12; the entire 0.11 line (0.11.0–0.11.37) is semver-compatible patch releases, and the only PDMats use in the test suite (test/dgp.jl) is a bare using PDMats with no 0.11.37-specific API.

Fix

Relax the test floor to PDMats = "0.11" so it matches the package's real declared compat. This is a lower-bound relaxation justified because the old 0.11.37 test floor was genuinely not co-installable with the package's own declared 0.11 floor at the downgrade minimum (the downgrade error is the proof); 0.11 remains the package's true minimum.

Verification (local, LTS Julia 1.10)

Minimal reproduction via Pkg.test with the root pinned to =0.11.0 (the downgrade floor):

  • BEFORE (test floor 0.11.37): Unsatisfiable requirements detected for PDMats — reproduced.
  • AFTER (test floor 0.11): resolves to PDMats 0.11.0, Testing ... tests passed.

Resolve-level verification only; PR CI confirms the full run.


Ignore until reviewed by @ChrisRackauckas.

…clared compat)

The root Project.toml declares `PDMats = "0.11"` (floor 0.11.0), but
test/Project.toml pinned `PDMats = "0.11.37"`. The SciML downgrade workflow
pins only the root project's compats to their floors, so at downgrade-minimum
PDMats is pinned to 0.11.0 in the root env while the test sandbox still
requires 0.11.37. Pkg.test merges both, producing the empty intersection
`PDMats@0.11.0 ∩ 0.11.37` -> Unsatisfiable.

The 0.11.37 test floor came from a Dependabot "permit the latest version"
bump; PDMats is a runtime dep with declared compat "0.11", and the test code
(test/dgp.jl) only does `using PDMats` with no 0.11.37-specific API. Relaxing
the test floor to "0.11" reconciles the two project files with the package's
real declared minimum.

Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@ChrisRackauckas
ChrisRackauckas marked this pull request as ready for review June 15, 2026 04:57
@ChrisRackauckas
ChrisRackauckas merged commit 749e4c4 into SciML:main Jun 15, 2026
3 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