Skip to content

Drop SparseConnectivityTracer so docs can use LogExpFunctions 1 - #1201

Closed
ChrisRackauckas-Claude wants to merge 1 commit into
SciML:masterfrom
ChrisRackauckas-Claude:compat-logexpfunctions-1
Closed

ChrisRackauckas-Claude wants to merge 1 commit into
SciML:masterfrom
ChrisRackauckas-Claude:compat-logexpfunctions-1

Conversation

@ChrisRackauckas-Claude

Copy link
Copy Markdown
Member

Drop SparseConnectivityTracer from the docs environment and FirstOrder tests so NonlinearSolveBase can keep LogExpFunctions = \"1\".

Follow-up to the bound-only workaround in #1200 (leave that PR). After #1198, docs CI failed with:

LogExpFunctions restricted by SparseConnectivityTracer WeakCompat to 0.3.28-0.3 — no versions left

Root cause

NonlinearSolveBase depends on LogExpFunctions (logistic/logit in bounds transforms) with compat "1". Docs and FirstOrder tests also depended on SparseConnectivityTracer. No live SCT version allows LogExpFunctions 1:

SCT WeakCompat LogExpFunctions
0.6.5 – 0.6.x 0.3.28-0.3
1.x including latest 1.2.2 (2026-06-24) 0.3.28-0.3

Confirmed on SCT main (LogExpFunctions = \"0.3.28\"). SCT is adrhill/SparseConnectivityTracer.jl; Chris is not an owner/maintainer/top contributor (adrhill 184, gdalle 34, …), so this is not filed upstream from here.

What changed

Replace executed TracerSparsityDetector usage with DifferentiationInterface.DenseSparsityDetector (already a docs/test dependency; Symbolics 7.25+ would also allow LEF 1, but is not a docs dep). NSB stays on LogExpFunctions = \"1\".

file change
docs/Project.toml drop SparseConnectivityTracer
docs/src/basics/sparsity_detection.md show DenseSparsityDetector instead of SCT
docs/src/tutorials/large_systems.md DenseSparsityDetector in executed examples; drop tracer-vs-DI comparison
docs/src/tutorials/snes_ex2.md same
lib/NonlinearSolveFirstOrder/Project.toml drop SCT extra/compat/target
FirstOrder sparsity_tests__item{1,2}.jl, rootfind_tests__item19.jl DenseSparsityDetector

User-facing: NonlinearSolve + SparseConnectivityTracer is still unsatisfiable until SCT allows LogExpFunctions 1. Docs now demonstrate DenseSparsityDetector / SymbolicsSparsityDetector instead. Inlining logistic/logit in NSB to drop the LEF dep entirely would restore SCT coexistence without waiting on adrhill; not done here.

Verification (Julia 1.10.11)

Fresh docs resolve (no Manifest):

LogExpFunctions=1.0.1
SparseConnectivityTracer_in_graph=false
DOCS_RESOLVE_LEF1_OK

FirstOrder test env (after dropping SCT extra): LogExpFunctions=1.0.1, SCT not in graph.

Sparsity tests (local env, DenseSparsityDetector):

Brusselator 2D | 4 passed | 1m48s
Structured Jacobians | 16 passed | 29.7s
Simple Sparse AutoDiff | 16 passed | 26.7s

Docs build: julia +1.10 --project=docs docs/make.jl → DOCS_MAKE_EXIT:0 (Documenter HTML rendered; deploy skipped locally).

Runic.jl --inplace on the three test files; no further diff.

Not verified: GPU, downstream IntegrationTest, full FirstOrder Core (Enzyme/Zygote paths beyond item19), allowed-to-fail jobs.

This PR should be ignored until reviewed by @ChrisRackauckas.

🤖 Generated with Claude Code

SparseConnectivityTracer through 1.2.2 WeakCompat-pins LogExpFunctions
to 0.3, which is unsatisfiable against NonlinearSolveBase
LogExpFunctions = "1". No live SCT release allows LEF 1, and SCT is not
SciML-owned.

Remove SCT from the docs env and FirstOrder tests. Use
DifferentiationInterface.DenseSparsityDetector (already a docs/test dep)
for executed sparsity examples and tests.

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

Copy link
Copy Markdown
Member Author

Closing. Do not drop SparseConnectivityTracer from docs/tests. The pin is a stale SCT compat bound, not an API break. Upstream: JuliaDiff/SparseConnectivityTracer.jl#327

@adrhill

adrhill commented Aug 26, 2026

Copy link
Copy Markdown
Contributor

SpaseConnectivityTracer.jl v1.2.3 with the fix has been tagged.

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.

3 participants