Skip to content

Drop stale DiffRules 0.1 compatibility#4793

Merged
ChrisRackauckas merged 1 commit into
SciML:masterfrom
ChrisRackauckas-Claude:agent/drop-diffrules-0-1
Jul 21, 2026
Merged

Drop stale DiffRules 0.1 compatibility#4793
ChrisRackauckas merged 1 commit into
SciML:masterfrom
ChrisRackauckas-Claude:agent/drop-diffrules-0-1

Conversation

@ChrisRackauckas-Claude

@ChrisRackauckas-Claude ChrisRackauckas-Claude commented Jul 20, 2026

Copy link
Copy Markdown
Member

Summary

  • require DiffRules 1 in ModelingToolkitBase
  • remove the stale DiffRules 0.1 compatibility line from downgrade resolution

Investigation

The ModelingToolkitBase lower-bound graph could still select DiffRules 0.1 even though the package's current Symbolics and NaNMath constraints require the DiffRules 1 line. The branch changes only that compatibility entry.

Local verification

  • Rebased head bb9b3fdcad onto current upstream master at f6c5c80da6.
  • Current root graph on Julia 1.12, GROUP=InterfaceI: 1,475 passed and 3 pre-existing broken; Pkg.test() exited 0 in 44m12.6s.
  • Fresh ModelingToolkitBase lower-bound graph on Julia 1.10 selected ModelingToolkitBase 1.54.2 and DiffRules 1.10.0.
  • Locked lower-bound graph, GROUP=InterfaceI with Pkg.test(; allow_reresolve=false): 1,495 passed and 5 pre-existing broken; exit 0 in 20m39.3s.
  • The exact manifest SHA-256 remained d0c002a3661863d019bbb9107f7c795b00aa7561a0efd1272f3a018ae0c0e075 before and after the test.
  • The exact compat assertion and git diff --check passed.
  • Runic 1.7 checked 221 Julia files. The 220 files other than lib/ModelingToolkitBase/src/systems/abstractsystem.jl passed; that untouched current-master failure was reproduced, bisected, locally fixed, and opened separately as draft PR Fix Runic indentation in parse_variable #4801.

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

Copy link
Copy Markdown
Member Author

Investigation log:

  1. Rebased the one-line compat change onto current origin/master (d2e576d2).
  2. Regenerated the exact lower-bound environment; it selected DiffRules 1.10.0.
  3. Locked that manifest and ran the existing InterfaceI group with allow_reresolve=false.
  4. Observed 1,469 passes and 5 pre-existing broken tests in 20m05.9s.
  5. Verified the manifest SHA-256 was unchanged before and after the test.
  6. Confirmed the repository-wide Runic check was clean.

The branch contains only commit 0bfc45a74f, with the required co-author trailer.

@ChrisRackauckas-Claude

Copy link
Copy Markdown
Member Author

CI triage for 0bfc45a:

  • The target root downgrade lane, Downgrade Tests - InterfaceI, passed.
  • The lib/ModelingToolkitBase downgrade failure is identical on clean master: both jobs report 7,235 passed / 3 errored / 4 broken, with the same Lotka–Volterra, cost-function-compilation, and parameter-estimation errors. PR job, clean-master job.
  • The sublibrary InterfaceII failures reproduce on an unmodified clean checkout under Julia 1.12 with the same 7,235 / 3 / 4 result. The underlying MIRK dual-interpolation fix is already isolated in BoundaryValueDiffEq #542; the Julia 1 and pre jobs additionally lost their self-hosted runners.
  • The sublibrary QA result (9 passed / 2 failed: Aqua ambiguity and piracy) also reproduces on clean master and is tracked in #4670.
  • The root QA job did not report a test failure; its sole annotation says the self-hosted runner lost communication with GitHub.

Thus the requested DiffRules minimum is green, and every inspected red ModelingToolkit lane is either a clean-master failure or runner infrastructure rather than a regression from this one-line compat change.

@ChrisRackauckas-Claude

Copy link
Copy Markdown
Member Author

Follow-up classification for the three downstream reds not listed above: both Catalyst Modeling lanes and the ModelingToolkitStandardLibrary Core lane were independently reproduced against current clean master during the later #4773 audit. The Catalyst baseline is 20 passed / 1 parent_sys error and is addressed by Catalyst #1511; the MTSL baseline is 15 passed / 1 AccelerationSensor structural-singularity error and is addressed by ModelingToolkitStandardLibrary #495. Full job links and evidence are recorded in #4773 (comment). This PR changes only the DiffRules compat entry, and its requested root downgrade lane passed, so no branch change is warranted.

@ChrisRackauckas-Claude

Copy link
Copy Markdown
Member Author

Rebase validation for exact head fa64c5cb4906e5a7e6dfb0987ad1a5c623196ac3:

  1. Refetched upstream and the fork, verified the remote branch still contained only the original one-line commit, and rebased it onto current master (80edc5dc9a831de7ae229b069134d03025991b41).
  2. Ran the official root InterfaceI group on Julia 1.12: 1,475 passed / 3 pre-existing broken; Pkg.test() exited 0 in 44m53.5s.
  3. Regenerated the ModelingToolkitBase lower-bound graph on Julia 1.10. It selected ModelingToolkitBase 1.54.2 and DiffRules 1.10.0.
  4. Locked that graph and ran InterfaceI with allow_reresolve=false: 1,495 passed / 5 pre-existing broken; exit 0 in 20m21.2s.
  5. Verified the manifest SHA-256 stayed d0c002a3661863d019bbb9107f7c795b00aa7561a0efd1272f3a018ae0c0e075 before and after testing. The compat assertion and git diff --check also passed.
  6. Runic 1.7 passed 220 of 221 Julia files. Its sole finding is in untouched lib/ModelingToolkitBase/src/systems/abstractsystem.jl at the current-master parent; the required clean-base reproduction/bisect is running separately.

The branch remains a one-line Project.toml compatibility change with the required co-author trailer.

@ChrisRackauckas
ChrisRackauckas marked this pull request as ready for review July 21, 2026 10:32
Remove the stale pre-1.0 compatibility entry. Current Symbolics and NaNMath constraints already require DiffRules 1.

Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
@ChrisRackauckas-Claude
ChrisRackauckas-Claude marked this pull request as draft July 21, 2026 11:27
@ChrisRackauckas-Claude

Copy link
Copy Markdown
Member Author

Fresh validation for exact head bb9b3fdcad3d62539b15b270a3c67cb211c2a08d:

  1. Refetched upstream and the fork, confirmed the fork branch still contained only the prior agent-owned commit, and rebased onto current master (f6c5c80da6cfad33b152033604a5c57b4548814e).
  2. Ran the official root InterfaceI group on Julia 1.12: 1,475 passed / 3 pre-existing broken; Pkg.test() exited 0 in 44m12.6s.
  3. Regenerated the ModelingToolkitBase lower-bound graph on Julia 1.10. It selected ModelingToolkitBase 1.54.2 and DiffRules 1.10.0.
  4. Locked that graph and ran InterfaceI with allow_reresolve=false: 1,495 passed / 5 pre-existing broken; exit 0 in 20m39.3s.
  5. Verified the manifest SHA-256 remained d0c002a3661863d019bbb9107f7c795b00aa7561a0efd1272f3a018ae0c0e075 after testing. Both worktrees were clean, the compat assertion and git diff --check passed, and the branch remains one file / one insertion / one deletion / one co-authored commit.
  6. The sole Runic finding is unchanged from this branch's current-master parent. It was separately reproduced, bisected to 3ae5bc97d8, fixed, and validated in draft PR Fix Runic indentation in parse_variable #4801.

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

@ChrisRackauckas
ChrisRackauckas marked this pull request as ready for review July 21, 2026 12:04
@ChrisRackauckas
ChrisRackauckas merged commit 38fdd76 into SciML:master Jul 21, 2026
81 of 92 checks passed
@ChrisRackauckas-Claude

Copy link
Copy Markdown
Member Author

Exact-head CI classification for bb9b3fdcad3d62539b15b270a3c67cb211c2a08d:

  • Final hosted tally: 79 success / 10 failure / 3 skipped / 1 cancelled. The root Downgrade check and all InterfaceI checks succeeded.
  • Fresh local validation at this exact head passed the current root InterfaceI group (1,475 pass / 3 pre-existing broken / 1,478 total) and the locked ModelingToolkitBase lower-bound graph (1,495 pass / 5 pre-existing broken / 1,500 total). The lower-bound manifest hash remained unchanged.
  • The ModelingToolkitBase downgrade job lost its self-hosted runner. A targeted rerun was attempted, but GitHub returned HTTP 403 because admin rights are required.
  • The remaining runner losses/timeouts and substantive test errors were reproduced on the exact clean parent f6c5c80da6cfad33b152033604a5c57b4548814e. The clean-parent check set had 10 failures; this head does not introduce a deterministic product failure.
  • The Catalyst Hybrid variance result was reproduced exactly on both the clean parent and this head with byte-equivalent dependency graphs. A focused statistical stabilization is now draft PR Catalyst #1519: it keeps the tolerance unchanged, increases independent Brownian/jump trials, passes the formerly failing RNG (4,218/4,218), and passes the official current Hybrid group (4,218/4,218).
  • The clean-parent Runic failure is independently fixed by draft PR #4801, whose exact head has Runic green and no head-only failures.

The compatibility change remains a one-line removal of unreachable DiffRules 0.1 support and the PR remains a draft for review.

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