Skip to content

Align root test dependency floors#3979

Merged
ChrisRackauckas merged 1 commit into
SciML:masterfrom
ChrisRackauckas-Claude:agent/root-nonlinearsolve-test-floor
Jul 22, 2026
Merged

Align root test dependency floors#3979
ChrisRackauckas merged 1 commit into
SciML:masterfrom
ChrisRackauckas-Claude:agent/root-nonlinearsolve-test-floor

Conversation

@ChrisRackauckas-Claude

Copy link
Copy Markdown
Member

Ignore this PR until reviewed by @ChrisRackauckas.

Summary

  • add the root test-extra floor NonlinearSolve = "4.20.3" to match OrdinaryDiffEqNonlinearSolve
  • add the root test-extra floor DifferentiationInterface = "0.7.18" to match the source-tree Rosenbrock packages

The root project had no compat entries for either test extra. The downgrade resolver therefore selected NonlinearSolve 4.20.2, which became unsatisfiable after the monorepo packages were promoted as path dependencies because OrdinaryDiffEqNonlinearSolve requires 4.20.3 or newer. Adding that floor exposed the same masked problem for DifferentiationInterface 0.7.12 versus the source-tree requirement of 0.7.18.

These are test-environment constraints only; the package's runtime dependency surface and public API are unchanged. The existing downgrade workflow provides regression coverage by resolving the old-style test extras before promoting the source packages.

Validation

  • clean-base pinned downgrade reproduction: failed before tests with NonlinearSolve 4.20.2 versus source requirement 4.20.3 - 4
  • one-floor diagnostic: selected NonlinearSolve 4.20.3, then failed before tests with DifferentiationInterface 0.7.12 versus source requirement 0.7.18
  • final pinned downgrade graph, Julia 1.10.11, GROUP=InterfaceI, allow_reresolve=false: passed (455 pass, 7 pre-existing broken); selected NonlinearSolve 4.20.3 and DifferentiationInterface 0.7.18
  • promoted manifest stayed byte-identical through build and test: a72d68117bd460d0ef97c50b4800215fa504625df82eb789a1237d6422b48f31
  • current graph, Julia 1.12.6, GROUP=InterfaceI, Pkg.test(): passed (497 pass, 7 pre-existing broken); selected NonlinearSolve 4.21.1 and DifferentiationInterface 0.7.20
  • Runic 1.7.0 full-tree check: passed
  • Project.toml parse/floor assertions and git diff --check: passed

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

Copy link
Copy Markdown
Member Author

Validation scratchpad for commit 7d0d100cc095bd394d7c89c6d5d82de6c9885483 on base abc6fddec8da8ba59308fd59c131df9edeb95985:

  • Pinned input: Julia 1.10.11, General ebea3c922b48a58438335288df661a3b4b2f85ae, SciML/DowngradeWorkflow action PR Update CI URLs to point to new caching infrastructure #56 at 28fff4537e765348717821087862dc537353e6a3, and source-promotion logic from SciML/.github PR RK Method for Third Order ODEs  #119 at 4d16630091d8a7c4397f0fe3653d88beaad7b15c.
  • Clean base selected NonlinearSolve 4.20.2; locked Pkg.test failed before test execution because promoted OrdinaryDiffEqNonlinearSolve 2.4.0 requires NonlinearSolve 4.20.3 - 4. Reproduction log SHA-256: 33274d2169d34cb6c4f99e0ddbb8eac6f417dfeaeb18f8f4c8fdd76733527b81.
  • With only the NonlinearSolve floor, the resolver selected NonlinearSolve 4.20.3; locked Pkg.test then exposed the masked DifferentiationInterface 0.7.12 conflict with promoted OrdinaryDiffEqRosenbrock 2.4.2, which requires 0.7.18 - 0.7. Diagnostic log SHA-256: 2005223963750b3e633a239dbdac77db71da0dd07b833c6472ba15cf3c419443.
  • With both floors, the pinned graph selected NonlinearSolve 4.20.3 and DifferentiationInterface 0.7.18; GROUP=InterfaceI passed with 455 passes and 7 pre-existing broken tests. The resolved manifest SHA-256 was a72d68117bd460d0ef97c50b4800215fa504625df82eb789a1237d6422b48f31 before promotion, after promotion, after build, and after locked testing. Green log SHA-256: 87ad63ed1f794ccd67537a9876a7ae5cf663da5033d60cc70b22d4146bd45754.
  • An independent current-graph GROUP=InterfaceI Pkg.test() on Julia 1.12.6 selected NonlinearSolve 4.21.1 and DifferentiationInterface 0.7.20; it passed with 497 passes and 7 pre-existing broken tests in 1,613.67 seconds. Log SHA-256: befbd63c0a33de5156a5ec600d12f0306bc0448cb84cc2b3da16192fa6de0a4f.
  • Full-tree Runic 1.7.0, TOML floor assertions, and git diff --check all exited successfully.

The pinned wrapper verified that its registry tree did not change during the run and restored both tested worktrees to their pre-run Project/Manifest state.

@ChrisRackauckas
ChrisRackauckas marked this pull request as ready for review July 22, 2026 07:38
@ChrisRackauckas
ChrisRackauckas merged commit ee5827a into SciML:master Jul 22, 2026
106 of 126 checks passed
@ChrisRackauckas-Claude

Copy link
Copy Markdown
Member Author

Post-timer CI classification for exact head 7d0d100cc095bd394d7c89c6d5d82de6c9885483:

No test was skipped, silenced, or weakened.

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