Skip to content

Drop Optimization QA source paths#1264

Merged
ChrisRackauckas merged 3 commits into
SciML:masterfrom
ChrisRackauckas-Claude:agent/drop-qa-source-paths
Jul 13, 2026
Merged

Drop Optimization QA source paths#1264
ChrisRackauckas merged 3 commits into
SciML:masterfrom
ChrisRackauckas-Claude:agent/drop-qa-source-paths

Conversation

@ChrisRackauckas-Claude

Copy link
Copy Markdown
Member

Ignore this PR until reviewed by @ChrisRackauckas.

Summary

  • Remove committed [sources] path entries from Optimization subpackage QA environments.
  • Develop the tested package and required monorepo sibling packages by local path at QA runtime instead.
  • Keep OptimizationBase-owned names out of the OptimizationMOI and OptimizationNLopt public API docs checks.

Validation

  • git diff --check HEAD~1..HEAD
  • rg -n '^\[sources\]|path\s*=' lib/*/test/qa/Project.toml lib/SimpleOptimization/test/qa/Project.toml test/qa/Project.toml || true
  • timeout 3600 /home/crackauc/.juliaup/bin/julia +release --startup-file=no -e 'using Pkg; Pkg.activate(; temp=true); Pkg.add("Runic"); using Runic; exit(Runic.main(ARGS))' -- --check $(git diff --name-only origin/master..HEAD -- '*.jl')
  • timeout 3600 env OPTIMIZATION_TEST_GROUP=QA JULIA_PKG_PRECOMPILE_AUTO=0 /home/crackauc/.juliaup/bin/julia +release --startup-file=no --project=lib/OptimizationOptimJL -e 'using Pkg; Pkg.test()' passed with Quality Assurance | 18 pass, 1 broken.

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

Copy link
Copy Markdown
Member Author

Merged current origin/master into this branch to clear the previous dirty merge state. The only conflict was lib/OptimizationBase/test/runtests.jl; I resolved it to keep the upstream SciMLTesting.run_tests form with the new AD group and the QA group env.

Local validation after the merge:

  • git diff --check and git diff --cached --check passed before commit.
  • Runic.jl --check passed on the changed OptimizationBase Julia test files.
  • GROUP=OptimizationBase_QA timeout 3600 /home/crackauc/.juliaup/bin/julia +release --startup-file=no --project=. -e 'using Pkg; Pkg.test()' passed: QA | 18 pass / 1 broken / 19 total; final lines: Testing OptimizationBase tests passed, Testing Optimization tests passed.
  • Exact floor smoke forced SciMLTesting v2.1.0 after resolver downgrade v2.2.0 => v2.1.0 and passed: Quality Assurance | 18 pass / 1 broken / 19 total.

GitHub has refreshed the PR from DIRTY to UNSTABLE; new CI is still running.

@ChrisRackauckas-Claude

Copy link
Copy Markdown
Member Author

The remaining red check here is downstream ModelingToolkit, not the Optimization QA/source-path cleanup itself. The failing job is ModelingToolkit.jl/All / Downstream Tests - All and the log fails while precompiling ControlSystemsMTK:

ERROR: LoadError: UndefVarError: `ArnoldiMethodJL` not defined in `LinearSolve`
in expression starting at .../LinearSolveArnoldiMethodExt.jl:1

All Optimization root/sublibrary/QA/downgrade/docs/Runic checks are green.

I opened the focused MTK-side compat fix here:

SciML/ModelingToolkit.jl#4742

Local validation for that PR developed this Optimization branch into MTK and ran:

GROUP=Downstream julia +1.12 --project=. -e 'using Pkg; Pkg.develop(PackageSpec(path="../Optimization.jl")); Pkg.update(); Pkg.test(; coverage=false)'

It resolved test/downstream to LinearSolve v4.3.0, precompiled ControlSystemsMTK, and passed:

Downstream | 31/31
Testing ModelingToolkit tests passed

…iffEq pattern)

Replace the hand-maintained per-package `Pkg.develop` lists in each sublib's
`test/runtests.jl` with `SciMLTesting.activate_group_env`, and pin in-repo
siblings declaratively via each QA env's `[sources]` table — matching how
OrdinaryDiffEq.jl drives its monorepo QA envs.

Per sublib:
- test/qa/Project.toml: add the transitive in-repo runtime sibling closure to
  [deps], [sources], and [compat]. The package under test is developed via
  activate_group_env's `parent` and is deliberately NOT listed in [sources].
- test/runtests.jl: `using SciMLTesting`; activate_qa_env delegates to
  activate_group_env(joinpath(@__DIR__, "qa")).
- Project.toml: add SciMLTesting to [extras] + [targets].test + [compat].

Why not the package-under-test in [sources]: a self-referencing `Pkg = {path=".."}`
entry makes Aqua's persistent_tasks check hard-error on Julia >= 1.11
(`AssertionError: tree_hash !== nothing && path !== nothing` in Pkg destructure).
Listing only siblings avoids it; every [sources] entry also needs a matching
[deps]/[extras] entry on >= 1.11, hence siblings in [deps] too.

Closures are runtime-only, dropping the test-only siblings the previous approach
developed (Auglag->Optimisers, NLPModels->LBFGSB/MOI/OptimJL, Multistart->NLopt),
which were the SciML#1228 phantom-dep risk.

Verified locally (QA group, Runic-clean): OptimizationBBO, OptimizationMOI,
OptimizationMadNLP, OptimizationPolyalgorithms on Julia 1.12 (native [sources]);
OptimizationBBO, OptimizationPolyalgorithms on 1.10 (develop_sources! backport).
All pass with persistent_tasks succeeding.

Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JQ6iGqAH2j1uio2tEVNX3L
@ChrisRackauckas
ChrisRackauckas marked this pull request as ready for review July 13, 2026 13:55
@ChrisRackauckas
ChrisRackauckas merged commit 3b0cff7 into SciML:master Jul 13, 2026
156 of 157 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