Skip to content

Import cache_operator from SciMLOperators in Core tests - #1126

Merged
ChrisRackauckas merged 1 commit into
SciML:mainfrom
ChrisRackauckas-Claude:agent/fix-cache-operator-owner-import
Jul 29, 2026
Merged

Import cache_operator from SciMLOperators in Core tests#1126
ChrisRackauckas merged 1 commit into
SciML:mainfrom
ChrisRackauckas-Claude:agent/fix-cache-operator-owner-import

Conversation

@ChrisRackauckas-Claude

Copy link
Copy Markdown
Member

Ignore until reviewed by @ChrisRackauckas.

Summary

  • import cache_operator directly from its public owner, SciMLOperators, in the Core test that exercises cached inverse preconditioners
  • keep this compatibility fix test-only; there are no production-code changes

Root cause

test/Core/basictests.jl called bare cache_operator while relying on the transitive chain using LinearSolve → reexported SciMLBase names → SciMLOperators.

SciMLBase commit b9c3507a (Make strict QA owner-contract clean (#1472)) removed the blanket SciMLOperators reexport. The dependency boundary was checked directly:

  • parent 7b806c50 (SciMLBase 3.40.0): cache_operator is defined after using SciMLBase
  • child b9c3507a: it is not
  • registered SciMLBase 3.39.1: the full LinearSolve GROUP=Core control passes

SciMLOperators.cache_operator is exported/public, has a docstring, and is included in SciMLOperators' rendered interface documentation.

Verification

  • focused cached diagonal-preconditioner regression on SciMLBase 3.40.1: 6/6
  • exact Basic Tests on SciMLBase 3.40.1, stacked only for validation with the independent issquare fix in Import issquare from SciMLOperators in ForwardDiff extension #1125: 635/635
  • full registered SciMLBase 3.39.1 GROUP=Core: passed
  • whole-repository Runic 1.7.0 check: passed
  • git diff --check: passed

The full SciMLBase 3.40.1 Core stack continues past this fixed suite and then stops at a separate bare FunctionOperator use in test/Core/default_algs.jl:167. QA on that dependency likewise exposes separate existing owner-contract failures: stale has_concretization in src/LinearSolve.jl:20 and non-owner LinearSolve.SciMLOperators.AbstractSciMLOperator access in ext/LinearSolveSparseArraysExt.jl:58. Those are intentionally outside this focused PR.

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

Copy link
Copy Markdown
Member Author

Commit 2589daa7f49a0039d868a6941ed4422ee70c65ba is intentionally limited to the explicit test-owner import in test/Core/basictests.jl.

Local verification plan/result:

  1. Reproduce the current SciMLBase 3.40.1 failure on unmodified LinearSolve main.
  2. Verify the dependency boundary with registered SciMLBase 3.39.1 and the SciMLBase #1472 parent/child.
  3. Verify cache_operator is public and rendered at its owning package.
  4. Run the affected 3.40.1 suite with the independent Import issquare from SciMLOperators in ForwardDiff extension #1125 prerequisite, the full registered 3.39.1 Core control, Runic, and git diff --check.

All scoped checks completed as recorded in the PR body. The later FunctionOperator, has_concretization, and qualified-access failures are separate follow-ups and are not being folded into this branch.

@ChrisRackauckas-Claude

Copy link
Copy Markdown
Member Author

Terminal CI audit: 53 checks passed; the five red checks are independent of this one-line cache_operator owner import, but two earlier classifications need refinement from the completed logs.

  • Spellcheck is the clean-main typo isolated in test: spell out SupernodalLU threshold variable #1124.
  • SciMLSensitivity is the Distributions resolver boundary isolated in SciMLSensitivity#1575.
  • ModelingToolkit reports 11 errors: nine are the DelayDiffEq DEOptions constructor mismatch isolated in OrdinaryDiffEq#4065; the remaining clean-MTK initialization failures are Guess Propagation (missing Initial parameter for x0) and the constant-RHS ForwardDiff y0 is ... not an unknown case, which require their own clean-main investigations.
  • QA’s Aqua/ExplicitImports phase actually passed (20 pass, 2 pre-existing broken). The red result is the later JET default-solver test: on the hosted MKL path, BLAS logging calls string(typeof(A)), and JET reports 23 possible runtime dispatches through Base type display. Registered local QA passed, so this environment-specific clean-main failure needs a separate reproduction/bisect; it is not an owner-import failure.
  • The Downgrade job has no downloadable log archive. GitHub marks the job failed after about 26 minutes while its julia-runtest step remains recorded as in-progress, so there is not enough evidence to call this a code failure. Separately, local current-dependency Core testing proceeds past this PR and exposes a missing direct test-owner import for FunctionOperator; that is queued as a focused follow-up.

No unrelated changes will be added to #1126.

@ChrisRackauckas
ChrisRackauckas marked this pull request as ready for review July 29, 2026 21:30
@ChrisRackauckas
ChrisRackauckas merged commit ed7bcb0 into SciML:main Jul 29, 2026
57 of 62 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