Skip to content

Import Optimisers algorithms from their owner - #1617

Draft
ChrisRackauckas-Claude wants to merge 1 commit into
SciML:masterfrom
ChrisRackauckas-Claude:fix/optimisers-owner-algorithms
Draft

Import Optimisers algorithms from their owner#1617
ChrisRackauckas-Claude wants to merge 1 commit into
SciML:masterfrom
ChrisRackauckas-Claude:fix/optimisers-owner-algorithms

Conversation

@ChrisRackauckas-Claude

@ChrisRackauckas-Claude ChrisRackauckas-Claude commented Aug 26, 2026

Copy link
Copy Markdown
Member

This PR should be ignored until reviewed by @ChrisRackauckas.

What changed

OptimizationOptimisers 0.3.22 stopped re-exporting algorithm types from Optimisers, but SciMLSensitivity's Core4–Core6 tests still constructed Adam and Descent as unqualified names. This adds Optimisers as an MIT-licensed, test-only dependency and imports each algorithm explicitly from its documented public owner API. Production code and the SciMLSensitivity public API are unchanged.

Regression boundary

  • OptimizationOptimisers 0.3.21: using OptimizationOptimisers; Adam(0.1); Descent(0.01) exits 0.
  • OptimizationOptimisers 0.3.22: the same bare constructions exit 1 with UndefVarError, and Julia identifies Optimisers as the owner.
  • using Optimisers: Adam, Descent with OptimizationOptimisers 0.3.22 exits 0.

The boundary is SciML/Optimization.jl@0c726c0, which replaced the Optimisers re-export with a normal import.

Failing before / passing after

On pristine SciMLSensitivity master 5174411526fdb52e859c66603b66afa230eae9f9:

GROUP=Core4 ... Pkg.test()
Core 4 | 8 passed, 8 errored, 2 broken
ERROR: ... Adam not defined ...

With this change:

GROUP=Core4 ... Pkg.test()
Core 4 | 16 passed, 2 broken
Testing SciMLSensitivity tests passed

The pristine Core5 group produced 20 Adam errors across Size Handling, Callback-ReverseDiff, Hybrid DE, HybridNODE, ForwardDiff Sparsity, and Complex No-u. With this change, Core5 passes 42/42 on Julia release and Julia 1.11. The pristine run also exposed an unrelated clean-master @test_nowarn failure in Parameter Handling under one fresh release resolution; no test was weakened or suppressed here.

The pristine Core6 group failed with four Descent errors:

Core 6 | 225 passed, 4 errored, 4 broken
ERROR: ... Descent not defined ...

With this change:

Core 6 | 238 passed, 4 broken
Testing SciMLSensitivity tests passed

The original CI failures are visible in the Core4 jobs for current, Julia 1.11, and LTS, and the Core5 jobs for current, Julia 1.11, and LTS.

Verification

  • GROUP=Core4 julia +release --project=. -e 'using Pkg; Pkg.test()': 16 passed, 2 pre-existing broken, 18 total in 10m46.4s.
  • GROUP=Core4 julia +1.11 --project=. -e 'using Pkg; Pkg.test()': 17/17 in 40m22.4s.
  • GROUP=Core4 julia +lts --project=. -e 'using Pkg; Pkg.test()': 17/17 in 38m43.0s.
  • GROUP=Core5 julia +release --project=. -e 'using Pkg; Pkg.test()': 42/42 in 34m29.7s.
  • GROUP=Core5 julia +1.11 --project=. -e 'using Pkg; Pkg.test()': 42/42 in 36m30.8s.
  • GROUP=Core5 julia +lts --project=. -e 'using Pkg; Pkg.test()': 42/42 in 26m29.4s on Julia 1.10.12.
  • GROUP=Core6 julia +release --project=. -e 'using Pkg; Pkg.test()': 238 passed, 4 pre-existing broken, 242 total in 48m06.6s.
  • GROUP=QA julia +release --project=. -e 'using Pkg; Pkg.test()': unchanged warm retry passed 20/20 in 2m36.4s, and detached clean upstream master passed 20/20 in 2m58.3s with the same warmed isolated depot. The first fresh-depot run passed 19/20 substantive checks but hit an Aqua wrapper-precompile transient (done.log was not created after the subprocess exited); no test or QA configuration was changed before either passing run.
  • julia +release --project=<Runic environment> -m Runic --check .: exit 0 (Runic 1.9.0).
  • git diff -U0 upstream/master...HEAD | typos -: exit 0.
  • git diff --check upstream/master...HEAD: exit 0.

Docs were not built because this changes only test dependencies and test imports, with no docs, docstrings, production code, or public API. GPU, downstream, and unrelated test groups were not run locally.

Related failure report: #1612

🤖 Generated with Claude Code
https://chatgpt.com/codex/tasks/01a03a04-70ae-77a0-ba1b-ec7a1ed9ef47

Co-Authored-By: OpenAI Codex <noreply@openai.com>
Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
Co-Authored-By: Claude <noreply@anthropic.com>
Claude-Session: https://chatgpt.com/codex/tasks/01a03a04-70ae-77a0-ba1b-ec7a1ed9ef47
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