From 475871177267682149cdc6fbef1a52a8cf92eed0 Mon Sep 17 00:00:00 2001 From: ChrisRackauckas-Claude Date: Sun, 26 Jul 2026 14:44:35 -0400 Subject: [PATCH 1/7] Curate the public API instead of blanket-reexporting dependencies MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Every package in the monorepo `@reexport`ed its dependencies wholesale, so `using Optimization` put 263 names in scope and `using OptimizationOptimJL` put 298 — none of which either package owned. 34 came from SciMLOperators (`AddVector`, `BlockDiagonalOperator`, `update_coefficients!`), and the surface included `DynamicalSDEFunction`, `DDEProblem` and `EigenvalueProblem`. Of the 263, the entire repo referenced 65. OptimizationBase now `using`s SciMLBase/ADTypes/SciMLLogging and states its public API in explicit `export` lists: its own types plus the problem/solution API and the nine `Auto*` types a user needs. Optimization re-exports that curated set and nothing else. The solver packages stop passing OptimizationBase through and expose only their own solvers, so `using OptimizationOptimJL` now means `LBFGS`, `BFGS`, `IPNewton` and friends. Users load `Optimization` alongside the solver package, which is what the docs already showed everywhere but one page. Optimization 263 public, 0 owned -> 39 OptimizationBase 262 public, 6 owned -> 38 OptimizationOptimJL 298 public, 0 owned -> 36 Dropping the reexports exposed five defects they had been masking: - OptimizationMOI and OptimizationIpopt use `ADTypes.AutoSymbolics` and `ADTypes.AutoSparse` qualified without declaring ADTypes at all; they compiled only because the reexport chain happened to bind the name. - OptimizationCMAEvolutionStrategy imported the SciMLBase *module* from OptimizationBase, and OptimizationLBFGSB took `ReturnCode` from there rather than from SciMLBase, which owns it. - OptimizationPyCMA marked `all_qualified_accesses_via_owners` as broken; it passes once accesses go to their owners, so the marker is removed. 17 packages used `@SciMLMessage` without depending on SciMLLogging and now declare it. `run_qa`'s reexport audit is satisfied without disabling it: the nine glue packages allow exactly their backend module, the two umbrella packages list their curated re-surface, and the remaining 18 need no allow-list because they expose nothing they do not own. Breaking: Optimization and OptimizationBase 5 -> 6, sublibraries by their SemVer rule, with intra-monorepo compat bounds updated to match. Co-Authored-By: Chris Rackauckas Co-Authored-By: Claude Opus 5 (1M context) Claude-Session: https://claude.ai/code/session_014Uj4Pu1LKHYqLSTLfPYDPo --- Project.toml | 8 +-- docs/Project.toml | 56 +++++++++---------- docs/src/optimization_packages/pycma.md | 2 +- lib/OptimizationAuglag/Project.toml | 6 +- .../src/OptimizationAuglag.jl | 4 +- lib/OptimizationAuglag/test/qa/Project.toml | 4 +- lib/OptimizationBBO/Project.toml | 12 ++-- lib/OptimizationBBO/src/OptimizationBBO.jl | 5 +- lib/OptimizationBBO/test/qa/Project.toml | 4 +- lib/OptimizationBase/Project.toml | 2 +- lib/OptimizationBase/src/OptimizationBase.jl | 17 +++++- lib/OptimizationBase/test/AD/Project.toml | 6 +- lib/OptimizationBase/test/matrixvalued.jl | 1 + lib/OptimizationBase/test/qa/Project.toml | 2 +- lib/OptimizationBase/test/qa/qa.jl | 1 + .../Project.toml | 18 +++--- .../src/OptimizationCMAEvolutionStrategy.jl | 7 ++- .../test/core_tests.jl | 1 + .../test/qa/Project.toml | 4 +- lib/OptimizationEvolutionary/Project.toml | 4 +- .../src/OptimizationEvolutionary.jl | 5 +- .../test/qa/Project.toml | 4 +- lib/OptimizationEvolutionary/test/qa/qa.jl | 1 + lib/OptimizationGCMAES/Project.toml | 14 +++-- .../src/OptimizationGCMAES.jl | 5 +- lib/OptimizationGCMAES/test/qa/Project.toml | 4 +- lib/OptimizationIpopt/Project.toml | 12 ++-- .../src/OptimizationIpopt.jl | 7 ++- .../test/additional_tests.jl | 1 + .../test/advanced_features.jl | 1 + lib/OptimizationIpopt/test/core_tests.jl | 1 + lib/OptimizationIpopt/test/problem_types.jl | 1 + lib/OptimizationIpopt/test/qa/Project.toml | 4 +- lib/OptimizationLBFGSB/Project.toml | 14 +++-- .../src/OptimizationLBFGSB.jl | 8 ++- lib/OptimizationLBFGSB/test/core_tests.jl | 1 + lib/OptimizationLBFGSB/test/qa/Project.toml | 4 +- lib/OptimizationMOI/Project.toml | 20 ++++--- lib/OptimizationMOI/src/OptimizationMOI.jl | 6 +- lib/OptimizationMOI/test/qa/Project.toml | 4 +- lib/OptimizationMadNLP/Project.toml | 12 ++-- .../src/OptimizationMadNLP.jl | 6 +- lib/OptimizationMadNLP/test/core_tests.jl | 1 + lib/OptimizationMadNLP/test/qa/Project.toml | 6 +- lib/OptimizationManopt/Project.toml | 28 +++++----- .../src/OptimizationManopt.jl | 2 +- lib/OptimizationManopt/test/qa/Project.toml | 4 +- lib/OptimizationManopt/test/qa/qa.jl | 1 + lib/OptimizationMetaheuristics/Project.toml | 20 ++++--- .../src/OptimizationMetaheuristics.jl | 6 +- .../test/qa/Project.toml | 4 +- lib/OptimizationMetaheuristics/test/qa/qa.jl | 1 + .../Project.toml | 6 +- .../src/OptimizationMultistartOptimization.jl | 5 +- .../test/qa/Project.toml | 4 +- .../test/qa/qa.jl | 1 + lib/OptimizationNLPModels/Project.toml | 10 ++-- .../src/OptimizationNLPModels.jl | 7 ++- .../test/qa/Project.toml | 4 +- lib/OptimizationNLPModels/test/qa/qa.jl | 1 + lib/OptimizationNLopt/Project.toml | 20 ++++--- .../src/OptimizationNLopt.jl | 6 +- lib/OptimizationNLopt/test/qa/Project.toml | 4 +- lib/OptimizationNLopt/test/qa/qa.jl | 1 + lib/OptimizationNOMAD/Project.toml | 20 ++++--- .../src/OptimizationNOMAD.jl | 5 +- lib/OptimizationNOMAD/test/qa/Project.toml | 4 +- lib/OptimizationODE/Project.toml | 4 +- lib/OptimizationODE/src/OptimizationODE.jl | 5 +- lib/OptimizationODE/test/qa/Project.toml | 4 +- lib/OptimizationOptimJL/Project.toml | 4 +- .../src/OptimizationOptimJL.jl | 5 +- lib/OptimizationOptimJL/test/core_tests.jl | 1 + lib/OptimizationOptimJL/test/qa/Project.toml | 4 +- lib/OptimizationOptimJL/test/qa/qa.jl | 1 + lib/OptimizationOptimisers/Project.toml | 24 ++++---- .../src/OptimizationOptimisers.jl | 6 +- lib/OptimizationOptimisers/test/core_tests.jl | 1 + .../test/qa/Project.toml | 4 +- lib/OptimizationOptimisers/test/qa/qa.jl | 1 + lib/OptimizationPRIMA/Project.toml | 4 +- lib/OptimizationPRIMA/test/core_tests.jl | 1 + lib/OptimizationPRIMA/test/qa/Project.toml | 4 +- lib/OptimizationPRIMA/test/qa/qa.jl | 1 + lib/OptimizationPolyalgorithms/Project.toml | 8 +-- .../src/OptimizationPolyalgorithms.jl | 4 +- .../test/qa/Project.toml | 8 +-- lib/OptimizationPyCMA/Project.toml | 24 ++++---- .../src/OptimizationPyCMA.jl | 5 +- lib/OptimizationPyCMA/test/core_tests.jl | 1 + lib/OptimizationPyCMA/test/qa/Project.toml | 4 +- lib/OptimizationPyCMA/test/qa/qa.jl | 1 - lib/OptimizationQuadDIRECT/Project.toml | 16 +++--- .../src/OptimizationQuadDIRECT.jl | 5 +- .../test/qa/Project.toml | 4 +- lib/OptimizationSciPy/Project.toml | 14 +++-- .../src/OptimizationSciPy.jl | 5 +- lib/OptimizationSciPy/test/qa/Project.toml | 4 +- lib/OptimizationSophia/Project.toml | 4 +- .../src/OptimizationSophia.jl | 4 +- lib/OptimizationSophia/test/core_tests.jl | 1 + lib/OptimizationSophia/test/qa/Project.toml | 4 +- lib/OptimizationSpeedMapping/Project.toml | 14 +++-- .../src/OptimizationSpeedMapping.jl | 5 +- .../test/qa/Project.toml | 4 +- lib/SimpleOptimization/Project.toml | 4 +- .../src/SimpleOptimization.jl | 4 +- lib/SimpleOptimization/test/qa/Project.toml | 4 +- src/Optimization.jl | 7 ++- test/AD/Project.toml | 10 ++-- test/downstream/gpu_neural_ode.jl | 1 + test/qa/Project.toml | 2 +- test/qa/qa.jl | 3 + test/qa/rendered_docs.jl | 27 +++++++++ 114 files changed, 465 insertions(+), 280 deletions(-) diff --git a/Project.toml b/Project.toml index dc8198381..835680d25 100644 --- a/Project.toml +++ b/Project.toml @@ -1,6 +1,6 @@ name = "Optimization" uuid = "7f7a1694-90dd-40f0-9382-eb1efda571ba" -version = "5.6.5" +version = "6.0.0" [deps] ADTypes = "47edcb42-4c32-4615-8424-f2b9edc5f35b" @@ -47,9 +47,9 @@ MLUtils = "0.4" ModelingToolkit = "11" Optim = "2" Optimisers = ">= 0.2.5" -OptimizationBase = "5" -OptimizationOptimJL = "0.4.10" -OptimizationOptimisers = "0.3.16" +OptimizationBase = "6" +OptimizationOptimJL = "0.5" +OptimizationOptimisers = "0.4" OrdinaryDiffEqTsit5 = "1, 2" Pkg = "1" Printf = "1.10" diff --git a/docs/Project.toml b/docs/Project.toml index 2f2ed28e0..182834d47 100644 --- a/docs/Project.toml +++ b/docs/Project.toml @@ -165,40 +165,40 @@ ModelingToolkit = "10.23, 11" NLPModels = "0.21, 0.22" NLPModelsTest = "0.10" NLopt = "0.6, 1" -Optimization = "5.5" -OptimizationAuglag = "1.3, 2" -OptimizationBBO = "0.4.6" -OptimizationBase = "5" -OptimizationCMAEvolutionStrategy = "0.3.6" -OptimizationEvolutionary = "0.4.7" -OptimizationGCMAES = "0.3.5" -OptimizationIpopt = "1.1" -OptimizationLBFGSB = "1.4" -OptimizationMOI = "1.2" -OptimizationMadNLP = "2, 1" -OptimizationManopt = "1.2" -OptimizationMetaheuristics = "0.3.5" -OptimizationMultistartOptimization = "0.3.4" -OptimizationNLPModels = "1.2" -OptimizationNLopt = "0.3.9" -OptimizationNOMAD = "0.3.5" -OptimizationODE = "0.1.4" -OptimizationOptimJL = "0.4.10" -OptimizationOptimisers = "0.3.16" -OptimizationPRIMA = "0.3.5" -OptimizationPolyalgorithms = "0.3.5" -OptimizationPyCMA = "1.3" -OptimizationQuadDIRECT = "0.3.4" -OptimizationSciPy = "0.4.6" -OptimizationSophia = "1.3" -OptimizationSpeedMapping = "0.2.3" +Optimization = "6" +OptimizationAuglag = "3" +OptimizationBBO = "0.5" +OptimizationBase = "6" +OptimizationCMAEvolutionStrategy = "0.4" +OptimizationEvolutionary = "0.5" +OptimizationGCMAES = "0.4" +OptimizationIpopt = "2" +OptimizationLBFGSB = "2" +OptimizationMOI = "2" +OptimizationMadNLP = "3" +OptimizationManopt = "2" +OptimizationMetaheuristics = "0.4" +OptimizationMultistartOptimization = "0.4" +OptimizationNLPModels = "2" +OptimizationNLopt = "0.4" +OptimizationNOMAD = "0.4" +OptimizationODE = "0.2" +OptimizationOptimJL = "0.5" +OptimizationOptimisers = "0.4" +OptimizationPRIMA = "0.4" +OptimizationPolyalgorithms = "0.4" +OptimizationPyCMA = "2" +OptimizationQuadDIRECT = "0.4" +OptimizationSciPy = "0.5" +OptimizationSophia = "2" +OptimizationSpeedMapping = "0.3" OrdinaryDiffEq = "6, 7" Plots = "1" Random = "1" ReverseDiff = ">= 1.9.0" SciMLBase = "2.122.1, 3" SciMLSensitivity = "7" -SimpleOptimization = "1" +SimpleOptimization = "2" Symbolics = "7" Tracker = ">= 0.2" Zygote = ">= 0.5" diff --git a/docs/src/optimization_packages/pycma.md b/docs/src/optimization_packages/pycma.md index 74cb209df..91cd7a6a8 100644 --- a/docs/src/optimization_packages/pycma.md +++ b/docs/src/optimization_packages/pycma.md @@ -22,7 +22,7 @@ OptimizationPyCMA.PyCMAOpt ## Example ```@example PyCMA -using OptimizationPyCMA +using Optimization, OptimizationPyCMA rosenbrock(x, p) = (p[1] - x[1])^2 + p[2] * (x[2] - x[1]^2)^2 x0 = zeros(2) diff --git a/lib/OptimizationAuglag/Project.toml b/lib/OptimizationAuglag/Project.toml index 3d9f8267c..ec9f0356d 100644 --- a/lib/OptimizationAuglag/Project.toml +++ b/lib/OptimizationAuglag/Project.toml @@ -1,7 +1,7 @@ name = "OptimizationAuglag" uuid = "2ea93f80-9333-43a1-a68d-1f53b957a421" authors = ["paramthakkar123 ", "Sebastian Micluța-Câmpeanu "] -version = "2.0.2" +version = "3.0.0" [deps] LinearAlgebra = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e" @@ -30,8 +30,8 @@ SafeTestsets = "0.1" ForwardDiff = "1.0.1" LinearAlgebra = "1.10" MLUtils = "0.4.8" -OptimizationBase = "5" -OptimizationOptimisers = "0.3.16" +OptimizationBase = "6" +OptimizationOptimisers = "0.4" Reexport = "1.2.2" SciMLBase = "2.122.1, 3" Random = "1.10" diff --git a/lib/OptimizationAuglag/src/OptimizationAuglag.jl b/lib/OptimizationAuglag/src/OptimizationAuglag.jl index fec1423eb..47ab3a383 100644 --- a/lib/OptimizationAuglag/src/OptimizationAuglag.jl +++ b/lib/OptimizationAuglag/src/OptimizationAuglag.jl @@ -2,7 +2,9 @@ module OptimizationAuglag using Reexport using SciMLBase -@reexport using OptimizationBase +# Not re-exported: the optimization API comes from `Optimization`/`OptimizationBase`, +# which the user loads directly. This package's public surface is its own solvers. +using OptimizationBase using SciMLBase: OptimizationProblem, OptimizationFunction, OptimizationStats using LinearAlgebra: norm diff --git a/lib/OptimizationAuglag/test/qa/Project.toml b/lib/OptimizationAuglag/test/qa/Project.toml index b445da2c2..8ff134934 100644 --- a/lib/OptimizationAuglag/test/qa/Project.toml +++ b/lib/OptimizationAuglag/test/qa/Project.toml @@ -10,10 +10,10 @@ Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40" OptimizationBase = {path = "../../../OptimizationBase"} [compat] -OptimizationBase = "5" +OptimizationBase = "6" Aqua = "0.8" JET = "0.9, 0.10, 0.11" julia = "1.10" -OptimizationAuglag = "2" +OptimizationAuglag = "3" SciMLTesting = "2.1" Test = "1" diff --git a/lib/OptimizationBBO/Project.toml b/lib/OptimizationBBO/Project.toml index 75952e93a..ac838d171 100644 --- a/lib/OptimizationBBO/Project.toml +++ b/lib/OptimizationBBO/Project.toml @@ -1,12 +1,13 @@ name = "OptimizationBBO" uuid = "3e6eede4-6085-4f62-9a71-46d9bc1eb92b" authors = ["Vaibhav Dixit and contributors"] -version = "0.4.9" +version = "0.5.0" [deps] BlackBoxOptim = "a134a8b2-14d6-55f6-9291-3336d3ab0209" OptimizationBase = "bca83a33-5cc9-4baa-983d-23429ab6bcbb" -SciMLBase = "0bca4576-84f4-4d90-8ffe-ffa030f20462" Reexport = "189a3867-3050-52da-a836-e630ba90ab69" +SciMLBase = "0bca4576-84f4-4d90-8ffe-ffa030f20462" +SciMLLogging = "a6db7da4-7206-11f0-1eab-35f2a5dbe1d1" [weakdeps] LogExpFunctions = "2ab3a3ac-af41-5b50-aa03-7779005ae688" @@ -22,17 +23,18 @@ Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40" OptimizationBase = {path = "../OptimizationBase"} [compat] -SciMLTesting = "2.1" BlackBoxOptim = "0.6.3" +julia = "1.10" LogExpFunctions = "0.3.28" -OptimizationBase = "5" +OptimizationBase = "6" Pkg = "1" Random = "1.10" Reexport = "1.2" SafeTestsets = "0.1" SciMLBase = "2.122.1, 3" +SciMLLogging = "1.10.1, 2" +SciMLTesting = "2.1" Test = "1.10" -julia = "1.10" [targets] test = ["SciMLTesting", "Random", "Test", "SafeTestsets", "Pkg"] diff --git a/lib/OptimizationBBO/src/OptimizationBBO.jl b/lib/OptimizationBBO/src/OptimizationBBO.jl index 350179e4a..2c7e7f16a 100644 --- a/lib/OptimizationBBO/src/OptimizationBBO.jl +++ b/lib/OptimizationBBO/src/OptimizationBBO.jl @@ -1,8 +1,11 @@ module OptimizationBBO using Reexport -@reexport using OptimizationBase +# Not re-exported: the optimization API comes from `Optimization`/`OptimizationBase`, +# which the user loads directly. This package's public surface is its own solvers. +using OptimizationBase using SciMLBase +using SciMLLogging: @SciMLMessage using BlackBoxOptim: BlackBoxOptim abstract type BBO end diff --git a/lib/OptimizationBBO/test/qa/Project.toml b/lib/OptimizationBBO/test/qa/Project.toml index 04e17bf58..23e5e9597 100644 --- a/lib/OptimizationBBO/test/qa/Project.toml +++ b/lib/OptimizationBBO/test/qa/Project.toml @@ -10,10 +10,10 @@ Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40" OptimizationBase = {path = "../../../OptimizationBase"} [compat] -OptimizationBase = "5" +OptimizationBase = "6" Aqua = "0.8" JET = "0.9, 0.10, 0.11" julia = "1.10" -OptimizationBBO = "0.4" +OptimizationBBO = "0.5" SciMLTesting = "2.1" Test = "1" diff --git a/lib/OptimizationBase/Project.toml b/lib/OptimizationBase/Project.toml index 7a9a007cb..6e78bc44a 100644 --- a/lib/OptimizationBase/Project.toml +++ b/lib/OptimizationBase/Project.toml @@ -1,6 +1,6 @@ name = "OptimizationBase" uuid = "bca83a33-5cc9-4baa-983d-23429ab6bcbb" -version = "5.2.2" +version = "6.0.0" authors = ["Vaibhav Dixit and contributors"] [deps] diff --git a/lib/OptimizationBase/src/OptimizationBase.jl b/lib/OptimizationBase/src/OptimizationBase.jl index 861f16372..58ab84845 100644 --- a/lib/OptimizationBase/src/OptimizationBase.jl +++ b/lib/OptimizationBase/src/OptimizationBase.jl @@ -7,8 +7,12 @@ Optimization.jl solver packages. module OptimizationBase using DocStringExtensions -using Reexport -@reexport using SciMLBase, ADTypes, SciMLLogging +# Deliberately NOT `@reexport`: blanket-reexporting these put 256 names into every +# downstream namespace — `DynamicalSDEFunction`, `BlockDiagonalOperator`, `AddVector` and +# the rest of SciMLOperators — of which the whole monorepo referenced 65. The public +# surface is the explicit `export` lists below; anything else is reached through its +# owner (`SciMLBase.x`, `ADTypes.x`, `SciMLLogging.x`). +using SciMLBase, ADTypes, SciMLLogging using ArrayInterface, Base.Iterators, SparseArrays, LinearAlgebra import SciMLBase: solve, init, solve!, __init, __solve, @@ -92,6 +96,15 @@ export solve, OptimizationCache, DEFAULT_CALLBACK, DEFAULT_DATA export IncompatibleOptimizerError, OptimizerMissingError export OptimizationVerbosity +# Intentionally re-surfaced API owned elsewhere. Kept to what a user actually needs to +# state and solve an optimization problem; `run_qa`'s `reexports_allow` lists exactly +# these, so adding one is a deliberate, reviewable act. +export OptimizationProblem, OptimizationFunction, MultiObjectiveOptimizationFunction, + OptimizationSolution, OptimizationStats +export init, solve!, remake, ReturnCode +export AutoEnzyme, AutoFiniteDiff, AutoForwardDiff, AutoMooncake, AutoReverseDiff, + AutoSparse, AutoSymbolics, AutoTracker, AutoZygote + include("precompilation.jl") end diff --git a/lib/OptimizationBase/test/AD/Project.toml b/lib/OptimizationBase/test/AD/Project.toml index 33a360130..8d8ad2bb6 100644 --- a/lib/OptimizationBase/test/AD/Project.toml +++ b/lib/OptimizationBase/test/AD/Project.toml @@ -38,9 +38,9 @@ LinearAlgebra = "1.10" MLUtils = "0.4" Manifolds = "0.10, 0.11" ModelingToolkit = "11" -OptimizationBase = "5" -OptimizationLBFGSB = "1.1" -OptimizationManopt = "1.1" +OptimizationBase = "6" +OptimizationLBFGSB = "2" +OptimizationManopt = "2" Random = "1.10" ReverseDiff = "1.14" SciMLBase = "2.122.1, 3" diff --git a/lib/OptimizationBase/test/matrixvalued.jl b/lib/OptimizationBase/test/matrixvalued.jl index 0503d9789..0d336f184 100644 --- a/lib/OptimizationBase/test/matrixvalued.jl +++ b/lib/OptimizationBase/test/matrixvalued.jl @@ -1,6 +1,7 @@ using OptimizationBase, LinearAlgebra, ForwardDiff, Zygote, FiniteDiff, DifferentiationInterface, SparseConnectivityTracer using Test, ReverseDiff +import ADTypes @testset "Matrix Valued" begin for adtype in [ diff --git a/lib/OptimizationBase/test/qa/Project.toml b/lib/OptimizationBase/test/qa/Project.toml index 36124adc6..b1e76118b 100644 --- a/lib/OptimizationBase/test/qa/Project.toml +++ b/lib/OptimizationBase/test/qa/Project.toml @@ -10,7 +10,7 @@ Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40" Aqua = "0.8" JET = "0.9, 0.10, 0.11" julia = "1.10" -OptimizationBase = "5" +OptimizationBase = "6" SciMLBase = "2.122.1, 3" SciMLTesting = "2.1" Test = "1" diff --git a/lib/OptimizationBase/test/qa/qa.jl b/lib/OptimizationBase/test/qa/qa.jl index 31287214e..d0e649e49 100644 --- a/lib/OptimizationBase/test/qa/qa.jl +++ b/lib/OptimizationBase/test/qa/qa.jl @@ -55,4 +55,5 @@ run_qa( ), ), ei_broken = (:no_implicit_imports,), + reexports_allow = OPTIMIZATION_CURATED_REEXPORTS, ) diff --git a/lib/OptimizationCMAEvolutionStrategy/Project.toml b/lib/OptimizationCMAEvolutionStrategy/Project.toml index 8c9c1336c..48c8e248a 100644 --- a/lib/OptimizationCMAEvolutionStrategy/Project.toml +++ b/lib/OptimizationCMAEvolutionStrategy/Project.toml @@ -1,12 +1,13 @@ name = "OptimizationCMAEvolutionStrategy" uuid = "bd407f91-200f-4536-9381-e4ba712f53f8" authors = ["Vaibhav Dixit and contributors"] -version = "0.3.10" +version = "0.4.0" [deps] CMAEvolutionStrategy = "8d3b24bd-414e-49e0-94fb-163cc3a3e411" OptimizationBase = "bca83a33-5cc9-4baa-983d-23429ab6bcbb" -SciMLBase = "0bca4576-84f4-4d90-8ffe-ffa030f20462" Reexport = "189a3867-3050-52da-a836-e630ba90ab69" +SciMLBase = "0bca4576-84f4-4d90-8ffe-ffa030f20462" +SciMLLogging = "a6db7da4-7206-11f0-1eab-35f2a5dbe1d1" [extras] SciMLTesting = "09d9d899-5365-40a9-917a-5f67fddea283" @@ -18,15 +19,16 @@ Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40" OptimizationBase = {path = "../OptimizationBase"} [compat] -SciMLTesting = "2.1" -Pkg = "1" -SafeTestsets = "0.1" -Test = "1" CMAEvolutionStrategy = "0.2" julia = "1.10" -OptimizationBase = "5" -SciMLBase = "2.122.1, 3" +OptimizationBase = "6" +Pkg = "1" Reexport = "1.2" +SafeTestsets = "0.1" +SciMLBase = "2.122.1, 3" +SciMLLogging = "1.10.1, 2" +SciMLTesting = "2.1" +Test = "1" [targets] test = ["SciMLTesting", "Test", "SafeTestsets", "Pkg"] diff --git a/lib/OptimizationCMAEvolutionStrategy/src/OptimizationCMAEvolutionStrategy.jl b/lib/OptimizationCMAEvolutionStrategy/src/OptimizationCMAEvolutionStrategy.jl index 3d6d8c2c2..75e6d3997 100644 --- a/lib/OptimizationCMAEvolutionStrategy/src/OptimizationCMAEvolutionStrategy.jl +++ b/lib/OptimizationCMAEvolutionStrategy/src/OptimizationCMAEvolutionStrategy.jl @@ -1,9 +1,12 @@ module OptimizationCMAEvolutionStrategy using Reexport -@reexport using OptimizationBase +# Not re-exported: the optimization API comes from `Optimization`/`OptimizationBase`, +# which the user loads directly. This package's public surface is its own solvers. +using OptimizationBase +using SciMLLogging: @SciMLMessage using CMAEvolutionStrategy -using OptimizationBase: SciMLBase +using SciMLBase export CMAEvolutionStrategyOpt diff --git a/lib/OptimizationCMAEvolutionStrategy/test/core_tests.jl b/lib/OptimizationCMAEvolutionStrategy/test/core_tests.jl index 1533d7953..bf0f955b4 100644 --- a/lib/OptimizationCMAEvolutionStrategy/test/core_tests.jl +++ b/lib/OptimizationCMAEvolutionStrategy/test/core_tests.jl @@ -1,6 +1,7 @@ using OptimizationCMAEvolutionStrategy, OptimizationBase using OptimizationBase: SciMLBase using Test +import SciMLBase @testset "OptimizationCMAEvolutionStrategy.jl" begin rosenbrock(x, p) = (p[1] - x[1])^2 + p[2] * (x[2] - x[1]^2)^2 diff --git a/lib/OptimizationCMAEvolutionStrategy/test/qa/Project.toml b/lib/OptimizationCMAEvolutionStrategy/test/qa/Project.toml index f13ca96f1..df277b79d 100644 --- a/lib/OptimizationCMAEvolutionStrategy/test/qa/Project.toml +++ b/lib/OptimizationCMAEvolutionStrategy/test/qa/Project.toml @@ -10,10 +10,10 @@ Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40" OptimizationBase = {path = "../../../OptimizationBase"} [compat] -OptimizationBase = "5" +OptimizationBase = "6" Aqua = "0.8" JET = "0.9, 0.10, 0.11" julia = "1.10" -OptimizationCMAEvolutionStrategy = "0.3" +OptimizationCMAEvolutionStrategy = "0.4" SciMLTesting = "2.1" Test = "1" diff --git a/lib/OptimizationEvolutionary/Project.toml b/lib/OptimizationEvolutionary/Project.toml index 76bacbf1f..734c71991 100644 --- a/lib/OptimizationEvolutionary/Project.toml +++ b/lib/OptimizationEvolutionary/Project.toml @@ -1,7 +1,7 @@ name = "OptimizationEvolutionary" uuid = "cb963754-43f6-435e-8d4b-99009ff27753" authors = ["Vaibhav Dixit and contributors"] -version = "0.4.11" +version = "0.5.0" [deps] OptimizationBase = "bca83a33-5cc9-4baa-983d-23429ab6bcbb" Evolutionary = "86b6b26d-c046-49b6-aa0b-5f0f74682bd6" @@ -25,7 +25,7 @@ OptimizationBase = {path = "../OptimizationBase"} SciMLTesting = "2.1" Evolutionary = "0.11" LogExpFunctions = "0.3.28" -OptimizationBase = "5" +OptimizationBase = "6" Pkg = "1" Random = "1.10" Reexport = "1.2" diff --git a/lib/OptimizationEvolutionary/src/OptimizationEvolutionary.jl b/lib/OptimizationEvolutionary/src/OptimizationEvolutionary.jl index 059816973..7e43921a1 100644 --- a/lib/OptimizationEvolutionary/src/OptimizationEvolutionary.jl +++ b/lib/OptimizationEvolutionary/src/OptimizationEvolutionary.jl @@ -1,7 +1,10 @@ module OptimizationEvolutionary using Reexport -@reexport using Evolutionary, OptimizationBase +@reexport using Evolutionary +# Not re-exported: the optimization API comes from `Optimization`/`OptimizationBase`, +# which the user loads directly. This package's public surface is its own solvers. +using OptimizationBase using SciMLBase SciMLBase.allowscallback(opt::Evolutionary.AbstractOptimizer) = true diff --git a/lib/OptimizationEvolutionary/test/qa/Project.toml b/lib/OptimizationEvolutionary/test/qa/Project.toml index 0faee410f..07b12aff2 100644 --- a/lib/OptimizationEvolutionary/test/qa/Project.toml +++ b/lib/OptimizationEvolutionary/test/qa/Project.toml @@ -11,11 +11,11 @@ Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40" OptimizationBase = {path = "../../../OptimizationBase"} [compat] -OptimizationBase = "5" +OptimizationBase = "6" Aqua = "0.8" JET = "0.9, 0.10, 0.11" julia = "1.10" -OptimizationEvolutionary = "0.4" +OptimizationEvolutionary = "0.5" SciMLBase = "2.122.1, 3" SciMLTesting = "2.1" Test = "1" diff --git a/lib/OptimizationEvolutionary/test/qa/qa.jl b/lib/OptimizationEvolutionary/test/qa/qa.jl index 395be6047..b14522e0a 100644 --- a/lib/OptimizationEvolutionary/test/qa/qa.jl +++ b/lib/OptimizationEvolutionary/test/qa/qa.jl @@ -66,4 +66,5 @@ run_qa( ), ), ei_broken = (:no_implicit_imports,), + reexports_allow = optimization_reexports_allow(OptimizationEvolutionary.Evolutionary), ) diff --git a/lib/OptimizationGCMAES/Project.toml b/lib/OptimizationGCMAES/Project.toml index 9c3e2e413..8ad51246e 100644 --- a/lib/OptimizationGCMAES/Project.toml +++ b/lib/OptimizationGCMAES/Project.toml @@ -1,12 +1,13 @@ name = "OptimizationGCMAES" uuid = "6f0a0517-dbc2-4a7a-8a20-99ae7f27e911" authors = ["Vaibhav Dixit and contributors"] -version = "0.3.10" +version = "0.4.0" [deps] +GCMAES = "4aa9d100-eb0f-11e8-15f1-25748831eb3b" OptimizationBase = "bca83a33-5cc9-4baa-983d-23429ab6bcbb" -SciMLBase = "0bca4576-84f4-4d90-8ffe-ffa030f20462" Reexport = "189a3867-3050-52da-a836-e630ba90ab69" -GCMAES = "4aa9d100-eb0f-11e8-15f1-25748831eb3b" +SciMLBase = "0bca4576-84f4-4d90-8ffe-ffa030f20462" +SciMLLogging = "a6db7da4-7206-11f0-1eab-35f2a5dbe1d1" [extras] SciMLTesting = "09d9d899-5365-40a9-917a-5f67fddea283" @@ -19,16 +20,17 @@ Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40" OptimizationBase = {path = "../OptimizationBase"} [compat] -SciMLTesting = "2.1" ForwardDiff = "0.10, 1" GCMAES = "0.1.34" -OptimizationBase = "5.1" +julia = "1.10" +OptimizationBase = "6" Pkg = "1" Reexport = "1.2" SafeTestsets = "0.1" SciMLBase = "2.122.1, 3" +SciMLLogging = "1.10.1, 2" +SciMLTesting = "2.1" Test = "1.10" -julia = "1.10" [targets] test = ["SciMLTesting", "ForwardDiff", "Test", "SafeTestsets", "Pkg"] diff --git a/lib/OptimizationGCMAES/src/OptimizationGCMAES.jl b/lib/OptimizationGCMAES/src/OptimizationGCMAES.jl index bde69b6d4..f8f0bede6 100644 --- a/lib/OptimizationGCMAES/src/OptimizationGCMAES.jl +++ b/lib/OptimizationGCMAES/src/OptimizationGCMAES.jl @@ -1,7 +1,10 @@ module OptimizationGCMAES using Reexport -@reexport using OptimizationBase +# Not re-exported: the optimization API comes from `Optimization`/`OptimizationBase`, +# which the user loads directly. This package's public surface is its own solvers. +using OptimizationBase +using SciMLLogging: @SciMLMessage using GCMAES, SciMLBase export GCMAESOpt diff --git a/lib/OptimizationGCMAES/test/qa/Project.toml b/lib/OptimizationGCMAES/test/qa/Project.toml index caab42d43..8e779e72e 100644 --- a/lib/OptimizationGCMAES/test/qa/Project.toml +++ b/lib/OptimizationGCMAES/test/qa/Project.toml @@ -10,10 +10,10 @@ Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40" OptimizationBase = {path = "../../../OptimizationBase"} [compat] -OptimizationBase = "5" +OptimizationBase = "6" Aqua = "0.8" JET = "0.9, 0.10, 0.11" julia = "1.10" -OptimizationGCMAES = "0.3" +OptimizationGCMAES = "0.4" SciMLTesting = "2.1" Test = "1" diff --git a/lib/OptimizationIpopt/Project.toml b/lib/OptimizationIpopt/Project.toml index 22a953927..aa6a08a8f 100644 --- a/lib/OptimizationIpopt/Project.toml +++ b/lib/OptimizationIpopt/Project.toml @@ -1,35 +1,39 @@ name = "OptimizationIpopt" uuid = "43fad042-7963-4b32-ab19-e2a4f9a67124" authors = ["Sebastian Micluța-Câmpeanu and contributors"] -version = "1.3.0" +version = "2.0.0" [deps] +ADTypes = "47edcb42-4c32-4615-8424-f2b9edc5f35b" Ipopt = "b6b21f68-93f8-5de0-b562-5493be1d77c9" LinearAlgebra = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e" OptimizationBase = "bca83a33-5cc9-4baa-983d-23429ab6bcbb" Reexport = "189a3867-3050-52da-a836-e630ba90ab69" SciMLBase = "0bca4576-84f4-4d90-8ffe-ffa030f20462" +SciMLLogging = "a6db7da4-7206-11f0-1eab-35f2a5dbe1d1" SparseArrays = "2f01184e-e22b-5df5-ae63-d93ebab69eaf" SymbolicIndexingInterface = "2efcf032-c050-4f8e-a9bb-153293bab1f5" [compat] -SciMLTesting = "2.1" +ADTypes = "1.18" Aqua = "0.8" Ipopt = "1.10.3" +julia = "1.10" LinearAlgebra = "1.10.0" ModelingToolkit = "11" -OptimizationBase = "5.1" +OptimizationBase = "6" Pkg = "1" Random = "1.10" Reexport = "1.2" ReverseDiff = "1" SafeTestsets = "0.1" SciMLBase = "2.122.1, 3" +SciMLLogging = "1.10.1, 2" +SciMLTesting = "2.1" SparseArrays = "1.10.0" SymbolicIndexingInterface = "0.3.46" Symbolics = "7" Test = "1.10" Zygote = "0.7" -julia = "1.10" [sources] OptimizationBase = {path = "../OptimizationBase"} diff --git a/lib/OptimizationIpopt/src/OptimizationIpopt.jl b/lib/OptimizationIpopt/src/OptimizationIpopt.jl index 6e224ed15..972d506c7 100644 --- a/lib/OptimizationIpopt/src/OptimizationIpopt.jl +++ b/lib/OptimizationIpopt/src/OptimizationIpopt.jl @@ -1,11 +1,16 @@ module OptimizationIpopt using Reexport -@reexport using OptimizationBase +# Not re-exported: the optimization API comes from `Optimization`/`OptimizationBase`, +# which the user loads directly. This package's public surface is its own solvers. +using OptimizationBase using Ipopt using LinearAlgebra using SparseArrays using SciMLBase +import ADTypes +using SciMLLogging: @SciMLMessage +import SciMLLogging using SymbolicIndexingInterface export IpoptOptimizer diff --git a/lib/OptimizationIpopt/test/additional_tests.jl b/lib/OptimizationIpopt/test/additional_tests.jl index e326a44f7..ed0f9e7e7 100644 --- a/lib/OptimizationIpopt/test/additional_tests.jl +++ b/lib/OptimizationIpopt/test/additional_tests.jl @@ -2,6 +2,7 @@ using OptimizationBase, OptimizationIpopt using Zygote using Test using LinearAlgebra +import SciMLBase @testset "Additional Ipopt Examples" begin # The MyNLP and Luksan-Vlcek problems below are translated from the Ipopt diff --git a/lib/OptimizationIpopt/test/advanced_features.jl b/lib/OptimizationIpopt/test/advanced_features.jl index 8de2a62e9..be82f8103 100644 --- a/lib/OptimizationIpopt/test/advanced_features.jl +++ b/lib/OptimizationIpopt/test/advanced_features.jl @@ -3,6 +3,7 @@ using Zygote using Test using LinearAlgebra using SparseArrays +import SciMLBase @testset "Advanced Ipopt Features" begin diff --git a/lib/OptimizationIpopt/test/core_tests.jl b/lib/OptimizationIpopt/test/core_tests.jl index e0e6569e6..d37752cc7 100644 --- a/lib/OptimizationIpopt/test/core_tests.jl +++ b/lib/OptimizationIpopt/test/core_tests.jl @@ -5,6 +5,7 @@ using Test using SparseArrays using ModelingToolkit using ReverseDiff +import SciMLBase rosenbrock(x, p) = (p[1] - x[1])^2 + p[2] * (x[2] - x[1]^2)^2 x0 = zeros(2) diff --git a/lib/OptimizationIpopt/test/problem_types.jl b/lib/OptimizationIpopt/test/problem_types.jl index d8c9cc916..6a292ab25 100644 --- a/lib/OptimizationIpopt/test/problem_types.jl +++ b/lib/OptimizationIpopt/test/problem_types.jl @@ -4,6 +4,7 @@ using Test using LinearAlgebra using SparseArrays using Random +import SciMLBase @testset "Specific Problem Types" begin diff --git a/lib/OptimizationIpopt/test/qa/Project.toml b/lib/OptimizationIpopt/test/qa/Project.toml index 002eab905..c3482f8f7 100644 --- a/lib/OptimizationIpopt/test/qa/Project.toml +++ b/lib/OptimizationIpopt/test/qa/Project.toml @@ -10,10 +10,10 @@ Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40" OptimizationBase = {path = "../../../OptimizationBase"} [compat] -OptimizationBase = "5" +OptimizationBase = "6" Aqua = "0.8" JET = "0.9, 0.10, 0.11" julia = "1.10" -OptimizationIpopt = "1" +OptimizationIpopt = "2" SciMLTesting = "2.1" Test = "1" diff --git a/lib/OptimizationLBFGSB/Project.toml b/lib/OptimizationLBFGSB/Project.toml index 6daf03a06..388db358b 100644 --- a/lib/OptimizationLBFGSB/Project.toml +++ b/lib/OptimizationLBFGSB/Project.toml @@ -1,13 +1,14 @@ name = "OptimizationLBFGSB" uuid = "22f7324a-a79d-40f2-bebe-3af60c77bd15" authors = ["paramthakkar123 "] -version = "1.4.3" +version = "2.0.0" [deps] DocStringExtensions = "ffbed154-4ef7-542d-bbb7-c09d3a79fcae" LBFGSB = "5be7bae1-8223-5378-bac3-9e7378a2f6e6" OptimizationBase = "bca83a33-5cc9-4baa-983d-23429ab6bcbb" Reexport = "189a3867-3050-52da-a836-e630ba90ab69" SciMLBase = "0bca4576-84f4-4d90-8ffe-ffa030f20462" +SciMLLogging = "a6db7da4-7206-11f0-1eab-35f2a5dbe1d1" [extras] SciMLTesting = "09d9d899-5365-40a9-917a-5f67fddea283" @@ -22,19 +23,20 @@ Zygote = "e88e6eb3-aa80-5325-afca-941959d7151f" OptimizationBase = {path = "../OptimizationBase"} [compat] -SciMLTesting = "2.1" -Pkg = "1" -SafeTestsets = "0.1" DocStringExtensions = "0.9.5" ForwardDiff = "1.0.1" +julia = "1.10" LBFGSB = "0.4.1" MLUtils = "0.4.8" -OptimizationBase = "5" +OptimizationBase = "6" +Pkg = "1" Reexport = "1.2" +SafeTestsets = "0.1" SciMLBase = "2.122.1, 3" +SciMLLogging = "1.10.1, 2" +SciMLTesting = "2.1" Test = "1.10" Zygote = "0.7.10" -julia = "1.10" [targets] test = ["SciMLTesting", "Test", "ForwardDiff", "MLUtils", "Zygote", "SafeTestsets", "Pkg"] diff --git a/lib/OptimizationLBFGSB/src/OptimizationLBFGSB.jl b/lib/OptimizationLBFGSB/src/OptimizationLBFGSB.jl index abf62ffc0..df884592d 100644 --- a/lib/OptimizationLBFGSB/src/OptimizationLBFGSB.jl +++ b/lib/OptimizationLBFGSB/src/OptimizationLBFGSB.jl @@ -1,11 +1,15 @@ module OptimizationLBFGSB using Reexport -@reexport using OptimizationBase +# Not re-exported: the optimization API comes from `Optimization`/`OptimizationBase`, +# which the user loads directly. This package's public surface is its own solvers. +using OptimizationBase +import SciMLBase +using SciMLLogging: @SciMLMessage using DocStringExtensions import LBFGSB as LBFGSBJL using SciMLBase: OptimizationStats, OptimizationFunction -using OptimizationBase: ReturnCode +using SciMLBase: ReturnCode using OptimizationBase.LinearAlgebra: norm using OptimizationBase: deduce_retcode diff --git a/lib/OptimizationLBFGSB/test/core_tests.jl b/lib/OptimizationLBFGSB/test/core_tests.jl index a1a8bb325..fc0f76bc8 100644 --- a/lib/OptimizationLBFGSB/test/core_tests.jl +++ b/lib/OptimizationLBFGSB/test/core_tests.jl @@ -6,6 +6,7 @@ using OptimizationLBFGSB using MLUtils using LBFGSB using Test +import SciMLBase @testset "OptimizationLBFGSB.jl" begin x0 = zeros(2) diff --git a/lib/OptimizationLBFGSB/test/qa/Project.toml b/lib/OptimizationLBFGSB/test/qa/Project.toml index fc721b197..809a570bb 100644 --- a/lib/OptimizationLBFGSB/test/qa/Project.toml +++ b/lib/OptimizationLBFGSB/test/qa/Project.toml @@ -10,10 +10,10 @@ Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40" OptimizationBase = {path = "../../../OptimizationBase"} [compat] -OptimizationBase = "5" +OptimizationBase = "6" Aqua = "0.8" JET = "0.9, 0.10, 0.11" julia = "1.10" -OptimizationLBFGSB = "1" +OptimizationLBFGSB = "2" SciMLTesting = "2.1" Test = "1" diff --git a/lib/OptimizationMOI/Project.toml b/lib/OptimizationMOI/Project.toml index fedd2d402..49660ceca 100644 --- a/lib/OptimizationMOI/Project.toml +++ b/lib/OptimizationMOI/Project.toml @@ -1,20 +1,22 @@ name = "OptimizationMOI" uuid = "fd9f6733-72f4-499f-8506-86b2bdd0dea1" -version = "1.3.3" +version = "2.0.0" authors = ["Vaibhav Dixit and contributors"] [deps] +ADTypes = "47edcb42-4c32-4615-8424-f2b9edc5f35b" LinearAlgebra = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e" MathOptInterface = "b8f27783-ece8-5eb3-8dc8-9495eed66fee" ModelingToolkitBase = "7771a370-6774-4173-bd38-47e70ca0b839" OptimizationBase = "bca83a33-5cc9-4baa-983d-23429ab6bcbb" Reexport = "189a3867-3050-52da-a836-e630ba90ab69" SciMLBase = "0bca4576-84f4-4d90-8ffe-ffa030f20462" +SciMLLogging = "a6db7da4-7206-11f0-1eab-35f2a5dbe1d1" SciMLStructures = "53ae85a6-f571-4167-b2af-e1d143709226" SparseArrays = "2f01184e-e22b-5df5-ae63-d93ebab69eaf" SymbolicIndexingInterface = "2efcf032-c050-4f8e-a9bb-153293bab1f5" -SymbolicUtils = "d1185830-fcd6-423d-90d6-eec64667417b" Symbolics = "0c5d862f-8b57-4792-8d23-62f2024744c7" +SymbolicUtils = "d1185830-fcd6-423d-90d6-eec64667417b" [weakdeps] ModelingToolkit = "961ee093-0014-501f-94e3-6117800e7a78" @@ -23,31 +25,33 @@ ModelingToolkit = "961ee093-0014-501f-94e3-6117800e7a78" OptimizationBase = {path = "../OptimizationBase"} [compat] -SciMLTesting = "2.1" -Pkg = "1" -SafeTestsets = "0.1" +ADTypes = "1.18" AmplNLWriter = "1" HiGHS = "1" Ipopt = "1.10.4" Ipopt_jll = "300.1400" +julia = "1.10" Juniper = "0.9" LinearAlgebra = "1" MathOptInterface = "1.45" ModelingToolkit = "11" ModelingToolkitBase = "1.17" NLopt = "1" -OptimizationBase = "5.1" +OptimizationBase = "6" +Pkg = "1" Reexport = "1.2.2" ReverseDiff = "1" +SafeTestsets = "0.1" SciMLBase = "2.146, 3" +SciMLLogging = "1.10.1, 2" SciMLStructures = "1" +SciMLTesting = "2.1" SparseArrays = "1.6" SymbolicIndexingInterface = "0.3.46" -SymbolicUtils = "4.10" Symbolics = "7" +SymbolicUtils = "4.10" Test = "1.6" Zygote = "0.6, 0.7" -julia = "1.10" [extras] SciMLTesting = "09d9d899-5365-40a9-917a-5f67fddea283" diff --git a/lib/OptimizationMOI/src/OptimizationMOI.jl b/lib/OptimizationMOI/src/OptimizationMOI.jl index 13c6e3708..77e125bcd 100644 --- a/lib/OptimizationMOI/src/OptimizationMOI.jl +++ b/lib/OptimizationMOI/src/OptimizationMOI.jl @@ -1,9 +1,13 @@ module OptimizationMOI using Reexport -@reexport using OptimizationBase +# Not re-exported: the optimization API comes from `Optimization`/`OptimizationBase`, +# which the user loads directly. This package's public surface is its own solvers. +using OptimizationBase using MathOptInterface using SciMLBase +import ADTypes +using SciMLLogging: @SciMLMessage using SciMLStructures using SymbolicIndexingInterface using SparseArrays diff --git a/lib/OptimizationMOI/test/qa/Project.toml b/lib/OptimizationMOI/test/qa/Project.toml index 9d738d100..050094e8a 100644 --- a/lib/OptimizationMOI/test/qa/Project.toml +++ b/lib/OptimizationMOI/test/qa/Project.toml @@ -14,8 +14,8 @@ OptimizationBase = {path = "../../../OptimizationBase"} Aqua = "0.8" JET = "0.9, 0.10, 0.11" julia = "1.10" -OptimizationBase = "5.1" -OptimizationMOI = "1" +OptimizationBase = "6" +OptimizationMOI = "2" SciMLBase = "2.146, 3" SciMLTesting = "2.1" Test = "1" diff --git a/lib/OptimizationMadNLP/Project.toml b/lib/OptimizationMadNLP/Project.toml index 553b9b4f3..dbc676931 100644 --- a/lib/OptimizationMadNLP/Project.toml +++ b/lib/OptimizationMadNLP/Project.toml @@ -1,6 +1,6 @@ name = "OptimizationMadNLP" uuid = "5d9c809f-c847-4062-9fba-1793bbfef577" -version = "2.2.2" +version = "3.0.0" authors = ["Sebastian Micluța-Câmpeanu and contributors"] [deps] @@ -11,32 +11,34 @@ OptimizationBase = "bca83a33-5cc9-4baa-983d-23429ab6bcbb" OptimizationNLPModels = "064b21be-54cf-11ef-1646-cdfee32b588f" Reexport = "189a3867-3050-52da-a836-e630ba90ab69" SciMLBase = "0bca4576-84f4-4d90-8ffe-ffa030f20462" +SciMLLogging = "a6db7da4-7206-11f0-1eab-35f2a5dbe1d1" SymbolicIndexingInterface = "2efcf032-c050-4f8e-a9bb-153293bab1f5" [compat] -SciMLTesting = "2.1" ADTypes = "1.14" Aqua = "0.8" DifferentiationInterface = "0.7.13" ForwardDiff = "1.2.1" +julia = "1.10" LinearAlgebra = "1.10.0" MadNLP = "0.9.1, 0.10" ModelingToolkit = "11" NLPModels = "0.21.5" -OptimizationBase = "5.1" -OptimizationNLPModels = "1.3" +OptimizationBase = "6" +OptimizationNLPModels = "2" Pkg = "1" Random = "1.10" Reexport = "1.2.2" ReverseDiff = "1" SafeTestsets = "0.1" SciMLBase = "2.146, 3" +SciMLLogging = "1.10.1, 2" +SciMLTesting = "2.1" SparseArrays = "1.10" SymbolicIndexingInterface = "0.3.46" Symbolics = "7" Test = "1.10" Zygote = "0.7" -julia = "1.10" [sources] OptimizationBase = {path = "../OptimizationBase"} diff --git a/lib/OptimizationMadNLP/src/OptimizationMadNLP.jl b/lib/OptimizationMadNLP/src/OptimizationMadNLP.jl index c7914fd8b..b66d4e3ef 100644 --- a/lib/OptimizationMadNLP/src/OptimizationMadNLP.jl +++ b/lib/OptimizationMadNLP/src/OptimizationMadNLP.jl @@ -1,7 +1,11 @@ module OptimizationMadNLP using Reexport -@reexport using OptimizationBase +# Not re-exported: the optimization API comes from `Optimization`/`OptimizationBase`, +# which the user loads directly. This package's public surface is its own solvers. +using OptimizationBase +import SciMLBase +using SciMLLogging: @SciMLMessage using OptimizationBase: DEFAULT_CALLBACK using OptimizationNLPModels: NLPModelsAdaptor, build_nlpmodel_meta using MadNLP diff --git a/lib/OptimizationMadNLP/test/core_tests.jl b/lib/OptimizationMadNLP/test/core_tests.jl index 6fc7513c2..40b50a60b 100644 --- a/lib/OptimizationMadNLP/test/core_tests.jl +++ b/lib/OptimizationMadNLP/test/core_tests.jl @@ -7,6 +7,7 @@ import Zygote, ForwardDiff, ReverseDiff using SparseArrays using DifferentiationInterface: SecondOrder using Random +import SciMLBase @testset "rosenbrock" begin rosenbrock(x, p) = (p[1] - x[1])^2 + p[2] * (x[2] - x[1]^2)^2 diff --git a/lib/OptimizationMadNLP/test/qa/Project.toml b/lib/OptimizationMadNLP/test/qa/Project.toml index ebd81a049..a1260ec07 100644 --- a/lib/OptimizationMadNLP/test/qa/Project.toml +++ b/lib/OptimizationMadNLP/test/qa/Project.toml @@ -12,11 +12,11 @@ OptimizationNLPModels = {path = "../../../OptimizationNLPModels"} OptimizationBase = {path = "../../../OptimizationBase"} [compat] -OptimizationNLPModels = "1" -OptimizationBase = "5" +OptimizationNLPModels = "2" +OptimizationBase = "6" Aqua = "0.8" JET = "0.9, 0.10, 0.11" julia = "1.10" -OptimizationMadNLP = "2" +OptimizationMadNLP = "3" SciMLTesting = "2.1" Test = "1" diff --git a/lib/OptimizationManopt/Project.toml b/lib/OptimizationManopt/Project.toml index b24a31bdd..ec1fc0199 100644 --- a/lib/OptimizationManopt/Project.toml +++ b/lib/OptimizationManopt/Project.toml @@ -1,17 +1,18 @@ name = "OptimizationManopt" uuid = "e57b7fff-7ee7-4550-b4f0-90e9476e9fb6" authors = ["Mateusz Baran ", "Ronny Bergmann "] -version = "1.3.4" +version = "2.0.0" [deps] Dates = "ade2ca70-3891-5945-98fb-dc099432e06a" LinearAlgebra = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e" ManifoldDiff = "af67fdf4-a580-4b9f-bbec-742ef357defd" +Manifolds = "1cead3c2-87b3-11e9-0ccd-23c62b72b94e" ManifoldsBase = "3362f125-f0bb-47a3-aa74-596ffd7ef2fb" Manopt = "0fc0a36d-df90-57f3-8f93-d78a9fc72bb5" OptimizationBase = "bca83a33-5cc9-4baa-983d-23429ab6bcbb" -Manifolds = "1cead3c2-87b3-11e9-0ccd-23c62b72b94e" Reexport = "189a3867-3050-52da-a836-e630ba90ab69" SciMLBase = "0bca4576-84f4-4d90-8ffe-ffa030f20462" +SciMLLogging = "a6db7da4-7206-11f0-1eab-35f2a5dbe1d1" [extras] SciMLTesting = "09d9d899-5365-40a9-917a-5f67fddea283" @@ -34,31 +35,32 @@ Zygote = "e88e6eb3-aa80-5325-afca-941959d7151f" OptimizationBase = {path = "../OptimizationBase"} [compat] -SciMLTesting = "2.1" Aqua = "0.8" -Pkg = "1" -QuadraticModels = "0.9" -Random = "1.10" -ReverseDiff = "1.14" -RipQP = "0.7" -SafeTestsets = "0.1" -Test = "1.10" -Zygote = "0.6.67, 0.7" -julia = "1.10" Dates = "1.10" DifferentiationInterface = "0.7.13" Enzyme = "0.13" FiniteDiff = "2" ForwardDiff = "0.10, 1" JET = "0.9, 0.10, 0.11" +julia = "1.10" LinearAlgebra = "1.10" ManifoldDiff = "0.4" Manifolds = "0.10, 0.11" ManifoldsBase = "1, 2" Manopt = "0.5.25, 0.6" -OptimizationBase = "5.1" +OptimizationBase = "6" +Pkg = "1" +QuadraticModels = "0.9" +Random = "1.10" Reexport = "1.2" +ReverseDiff = "1.14" +RipQP = "0.7" +SafeTestsets = "0.1" SciMLBase = "2.122.1, 3" +SciMLLogging = "1.10.1, 2" +SciMLTesting = "2.1" +Test = "1.10" +Zygote = "0.6.67, 0.7" [targets] test = ["SciMLTesting", "DifferentiationInterface", "Enzyme", "ForwardDiff", "FiniteDiff", "QuadraticModels", "Random", "ReverseDiff", "RipQP", "Test", "Zygote", "SafeTestsets", "Pkg"] diff --git a/lib/OptimizationManopt/src/OptimizationManopt.jl b/lib/OptimizationManopt/src/OptimizationManopt.jl index c7cb5a174..1f42ed3eb 100644 --- a/lib/OptimizationManopt/src/OptimizationManopt.jl +++ b/lib/OptimizationManopt/src/OptimizationManopt.jl @@ -3,7 +3,7 @@ module OptimizationManopt using Reexport @reexport using Manopt import OptimizationBase -using OptimizationBase: @SciMLMessage +using SciMLLogging: @SciMLMessage using ManifoldsBase, ManifoldDiff import SciMLBase using SciMLBase: ReturnCode diff --git a/lib/OptimizationManopt/test/qa/Project.toml b/lib/OptimizationManopt/test/qa/Project.toml index 31d2f072a..b43a4256a 100644 --- a/lib/OptimizationManopt/test/qa/Project.toml +++ b/lib/OptimizationManopt/test/qa/Project.toml @@ -10,10 +10,10 @@ Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40" OptimizationBase = {path = "../../../OptimizationBase"} [compat] -OptimizationBase = "5" +OptimizationBase = "6" Aqua = "0.8" JET = "0.9, 0.10, 0.11" julia = "1.10" -OptimizationManopt = "1" +OptimizationManopt = "2" SciMLTesting = "2.1" Test = "1" diff --git a/lib/OptimizationManopt/test/qa/qa.jl b/lib/OptimizationManopt/test/qa/qa.jl index 8baf17f1b..f9e4ff7ca 100644 --- a/lib/OptimizationManopt/test/qa/qa.jl +++ b/lib/OptimizationManopt/test/qa/qa.jl @@ -61,4 +61,5 @@ run_qa( ), ), ei_broken = (:no_implicit_imports,), + reexports_allow = optimization_reexports_allow(OptimizationManopt.Manopt), ) diff --git a/lib/OptimizationMetaheuristics/Project.toml b/lib/OptimizationMetaheuristics/Project.toml index 21d3f5992..1c78488ea 100644 --- a/lib/OptimizationMetaheuristics/Project.toml +++ b/lib/OptimizationMetaheuristics/Project.toml @@ -1,12 +1,13 @@ name = "OptimizationMetaheuristics" uuid = "3aafef2f-86ae-4776-b337-85a36adf0b55" authors = ["Vaibhav Dixit and contributors"] -version = "0.3.8" +version = "0.4.0" [deps] -OptimizationBase = "bca83a33-5cc9-4baa-983d-23429ab6bcbb" Metaheuristics = "bcdb8e00-2c21-11e9-3065-2b553b22f898" -SciMLBase = "0bca4576-84f4-4d90-8ffe-ffa030f20462" +OptimizationBase = "bca83a33-5cc9-4baa-983d-23429ab6bcbb" Reexport = "189a3867-3050-52da-a836-e630ba90ab69" +SciMLBase = "0bca4576-84f4-4d90-8ffe-ffa030f20462" +SciMLLogging = "a6db7da4-7206-11f0-1eab-35f2a5dbe1d1" [extras] SciMLTesting = "09d9d899-5365-40a9-917a-5f67fddea283" @@ -19,15 +20,16 @@ Random = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c" OptimizationBase = {path = "../OptimizationBase"} [compat] -SciMLTesting = "2.1" -Pkg = "1" -SafeTestsets = "0.1" julia = "1.10" -OptimizationBase = "5" Metaheuristics = "3.3" -SciMLBase = "2.122.1, 3" -Reexport = "1.2" +OptimizationBase = "6" +Pkg = "1" Random = "1.10" +Reexport = "1.2" +SafeTestsets = "0.1" +SciMLBase = "2.122.1, 3" +SciMLLogging = "1.10.1, 2" +SciMLTesting = "2.1" Test = "1.10" [targets] diff --git a/lib/OptimizationMetaheuristics/src/OptimizationMetaheuristics.jl b/lib/OptimizationMetaheuristics/src/OptimizationMetaheuristics.jl index a92e0ffbb..48524c7d0 100644 --- a/lib/OptimizationMetaheuristics/src/OptimizationMetaheuristics.jl +++ b/lib/OptimizationMetaheuristics/src/OptimizationMetaheuristics.jl @@ -1,7 +1,11 @@ module OptimizationMetaheuristics using Reexport -@reexport using Metaheuristics, OptimizationBase +@reexport using Metaheuristics +# Not re-exported: the optimization API comes from `Optimization`/`OptimizationBase`, +# which the user loads directly. This package's public surface is its own solvers. +using OptimizationBase +using SciMLLogging: @SciMLMessage using SciMLBase SciMLBase.requiresbounds(opt::Metaheuristics.AbstractAlgorithm) = true diff --git a/lib/OptimizationMetaheuristics/test/qa/Project.toml b/lib/OptimizationMetaheuristics/test/qa/Project.toml index 0b6a26662..c99e2bb89 100644 --- a/lib/OptimizationMetaheuristics/test/qa/Project.toml +++ b/lib/OptimizationMetaheuristics/test/qa/Project.toml @@ -11,11 +11,11 @@ Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40" OptimizationBase = {path = "../../../OptimizationBase"} [compat] -OptimizationBase = "5" +OptimizationBase = "6" Aqua = "0.8" JET = "0.9, 0.10, 0.11" julia = "1.10" -OptimizationMetaheuristics = "0.3" +OptimizationMetaheuristics = "0.4" SciMLBase = "2.122.1, 3" SciMLTesting = "2.1" Test = "1" diff --git a/lib/OptimizationMetaheuristics/test/qa/qa.jl b/lib/OptimizationMetaheuristics/test/qa/qa.jl index 28fc7ea2c..6b6467aae 100644 --- a/lib/OptimizationMetaheuristics/test/qa/qa.jl +++ b/lib/OptimizationMetaheuristics/test/qa/qa.jl @@ -74,4 +74,5 @@ run_qa( ), ), ei_broken = (:no_implicit_imports,), + reexports_allow = optimization_reexports_allow(OptimizationMetaheuristics.Metaheuristics), ) diff --git a/lib/OptimizationMultistartOptimization/Project.toml b/lib/OptimizationMultistartOptimization/Project.toml index a22a6bebb..a7b5a58f2 100644 --- a/lib/OptimizationMultistartOptimization/Project.toml +++ b/lib/OptimizationMultistartOptimization/Project.toml @@ -1,7 +1,7 @@ name = "OptimizationMultistartOptimization" uuid = "e4316d97-8bbb-4fd3-a7d8-3851d2a72823" authors = ["Vaibhav Dixit and contributors"] -version = "0.3.7" +version = "0.4.0" [deps] OptimizationBase = "bca83a33-5cc9-4baa-983d-23429ab6bcbb" MultistartOptimization = "3933049c-43be-478e-a8bb-6e0f7fd53575" @@ -26,12 +26,12 @@ SciMLTesting = "2.1" Pkg = "1" SafeTestsets = "0.1" julia = "1.10" -OptimizationBase = "5" +OptimizationBase = "6" MultistartOptimization = "0.3" SciMLBase = "2.122.1, 3" Reexport = "1.2" ForwardDiff = "0.10, 1" -OptimizationNLopt = "0.3" +OptimizationNLopt = "0.4" ReverseDiff = "1" Test = "1.10" diff --git a/lib/OptimizationMultistartOptimization/src/OptimizationMultistartOptimization.jl b/lib/OptimizationMultistartOptimization/src/OptimizationMultistartOptimization.jl index bcbeafedb..64ffc29c9 100644 --- a/lib/OptimizationMultistartOptimization/src/OptimizationMultistartOptimization.jl +++ b/lib/OptimizationMultistartOptimization/src/OptimizationMultistartOptimization.jl @@ -1,7 +1,10 @@ module OptimizationMultistartOptimization using Reexport -@reexport using MultistartOptimization, OptimizationBase +@reexport using MultistartOptimization +# Not re-exported: the optimization API comes from `Optimization`/`OptimizationBase`, +# which the user loads directly. This package's public surface is its own solvers. +using OptimizationBase using SciMLBase SciMLBase.requiresbounds(opt::MultistartOptimization.TikTak) = true diff --git a/lib/OptimizationMultistartOptimization/test/qa/Project.toml b/lib/OptimizationMultistartOptimization/test/qa/Project.toml index 1d2c74daa..05d345a48 100644 --- a/lib/OptimizationMultistartOptimization/test/qa/Project.toml +++ b/lib/OptimizationMultistartOptimization/test/qa/Project.toml @@ -11,11 +11,11 @@ Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40" OptimizationBase = {path = "../../../OptimizationBase"} [compat] -OptimizationBase = "5" +OptimizationBase = "6" Aqua = "0.8" JET = "0.9, 0.10, 0.11" julia = "1.10" -OptimizationMultistartOptimization = "0.3" +OptimizationMultistartOptimization = "0.4" SciMLBase = "2.122.1, 3" SciMLTesting = "2.1" Test = "1" diff --git a/lib/OptimizationMultistartOptimization/test/qa/qa.jl b/lib/OptimizationMultistartOptimization/test/qa/qa.jl index db398361f..2c817504b 100644 --- a/lib/OptimizationMultistartOptimization/test/qa/qa.jl +++ b/lib/OptimizationMultistartOptimization/test/qa/qa.jl @@ -52,4 +52,5 @@ run_qa( ), ), ei_broken = (:no_implicit_imports,), + reexports_allow = optimization_reexports_allow(OptimizationMultistartOptimization.MultistartOptimization), ) diff --git a/lib/OptimizationNLPModels/Project.toml b/lib/OptimizationNLPModels/Project.toml index ddb73a32d..40e246af9 100644 --- a/lib/OptimizationNLPModels/Project.toml +++ b/lib/OptimizationNLPModels/Project.toml @@ -1,6 +1,6 @@ name = "OptimizationNLPModels" uuid = "064b21be-54cf-11ef-1646-cdfee32b588f" -version = "1.3.3" +version = "2.0.0" authors = ["Vaibhav Dixit and contributors"] [deps] @@ -23,10 +23,10 @@ ADTypes = "1.18" Ipopt = "1" NLPModels = "0.21" NLPModelsTest = "0.10" -OptimizationBase = "5" -OptimizationLBFGSB = "1.2" -OptimizationMOI = "1" -OptimizationOptimJL = "0.4.10" +OptimizationBase = "6" +OptimizationLBFGSB = "2" +OptimizationMOI = "2" +OptimizationOptimJL = "0.5" Pkg = "1" Reexport = "1.2.2" ReverseDiff = "1" diff --git a/lib/OptimizationNLPModels/src/OptimizationNLPModels.jl b/lib/OptimizationNLPModels/src/OptimizationNLPModels.jl index 2cf5b3d17..5ffe92eb4 100644 --- a/lib/OptimizationNLPModels/src/OptimizationNLPModels.jl +++ b/lib/OptimizationNLPModels/src/OptimizationNLPModels.jl @@ -1,7 +1,12 @@ module OptimizationNLPModels using Reexport -@reexport using NLPModels, OptimizationBase, ADTypes +@reexport using NLPModels +using ADTypes +# Not re-exported: the optimization API comes from `Optimization`/`OptimizationBase`, +# which the user loads directly. This package's public surface is its own solvers. +using OptimizationBase +import SciMLBase using SparseArrays export build_nlpmodel_meta, NLPModelsAdaptor diff --git a/lib/OptimizationNLPModels/test/qa/Project.toml b/lib/OptimizationNLPModels/test/qa/Project.toml index 9f10cb680..8ff99fe28 100644 --- a/lib/OptimizationNLPModels/test/qa/Project.toml +++ b/lib/OptimizationNLPModels/test/qa/Project.toml @@ -11,11 +11,11 @@ Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40" OptimizationBase = {path = "../../../OptimizationBase"} [compat] -OptimizationBase = "5" +OptimizationBase = "6" Aqua = "0.8" JET = "0.9, 0.10, 0.11" julia = "1.10" -OptimizationNLPModels = "1" +OptimizationNLPModels = "2" SciMLBase = "2.146, 3" SciMLTesting = "2.1" Test = "1" diff --git a/lib/OptimizationNLPModels/test/qa/qa.jl b/lib/OptimizationNLPModels/test/qa/qa.jl index cf0f6ce04..48e5ed4b6 100644 --- a/lib/OptimizationNLPModels/test/qa/qa.jl +++ b/lib/OptimizationNLPModels/test/qa/qa.jl @@ -51,4 +51,5 @@ run_qa( ), ), ei_broken = (:no_implicit_imports,), + reexports_allow = optimization_reexports_allow(OptimizationNLPModels.NLPModels), ) diff --git a/lib/OptimizationNLopt/Project.toml b/lib/OptimizationNLopt/Project.toml index 2f1f89d16..f217d5760 100644 --- a/lib/OptimizationNLopt/Project.toml +++ b/lib/OptimizationNLopt/Project.toml @@ -1,14 +1,15 @@ name = "OptimizationNLopt" uuid = "4e6fcdb7-1186-4e1f-a706-475e75c168bb" authors = ["Vaibhav Dixit and contributors"] -version = "0.3.13" +version = "0.4.0" [deps] +NLopt = "76087f3c-5699-56af-9a33-bf431cd00edd" OptimizationBase = "bca83a33-5cc9-4baa-983d-23429ab6bcbb" Random = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c" -NLopt = "76087f3c-5699-56af-9a33-bf431cd00edd" -SciMLBase = "0bca4576-84f4-4d90-8ffe-ffa030f20462" Reexport = "189a3867-3050-52da-a836-e630ba90ab69" +SciMLBase = "0bca4576-84f4-4d90-8ffe-ffa030f20462" +SciMLLogging = "a6db7da4-7206-11f0-1eab-35f2a5dbe1d1" [extras] SciMLTesting = "09d9d899-5365-40a9-917a-5f67fddea283" @@ -22,16 +23,17 @@ Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40" OptimizationBase = {path = "../OptimizationBase"} [compat] -SciMLTesting = "2.1" -Pkg = "1" -SafeTestsets = "0.1" julia = "1.10" -OptimizationBase = "5.1" NLopt = "1.1" -SciMLBase = "2.122.1, 3" -Reexport = "1.2" +OptimizationBase = "6" +Pkg = "1" Random = "1.10" +Reexport = "1.2" ReverseDiff = "1" +SafeTestsets = "0.1" +SciMLBase = "2.122.1, 3" +SciMLLogging = "1.10.1, 2" +SciMLTesting = "2.1" Test = "1.10" Zygote = "0.6, 0.7" diff --git a/lib/OptimizationNLopt/src/OptimizationNLopt.jl b/lib/OptimizationNLopt/src/OptimizationNLopt.jl index c3b2767c3..06300ae63 100644 --- a/lib/OptimizationNLopt/src/OptimizationNLopt.jl +++ b/lib/OptimizationNLopt/src/OptimizationNLopt.jl @@ -1,7 +1,11 @@ module OptimizationNLopt using Reexport -@reexport using NLopt, OptimizationBase +@reexport using NLopt +# Not re-exported: the optimization API comes from `Optimization`/`OptimizationBase`, +# which the user loads directly. This package's public surface is its own solvers. +using OptimizationBase +using SciMLLogging: @SciMLMessage using SciMLBase using OptimizationBase: deduce_retcode diff --git a/lib/OptimizationNLopt/test/qa/Project.toml b/lib/OptimizationNLopt/test/qa/Project.toml index bec2f234a..e19113d3d 100644 --- a/lib/OptimizationNLopt/test/qa/Project.toml +++ b/lib/OptimizationNLopt/test/qa/Project.toml @@ -14,8 +14,8 @@ OptimizationBase = {path = "../../../OptimizationBase"} Aqua = "0.8" JET = "0.9, 0.10, 0.11" julia = "1.10" -OptimizationBase = "5.1" -OptimizationNLopt = "0.3" +OptimizationBase = "6" +OptimizationNLopt = "0.4" SciMLBase = "2.122.1, 3" SciMLTesting = "2.1" Test = "1" diff --git a/lib/OptimizationNLopt/test/qa/qa.jl b/lib/OptimizationNLopt/test/qa/qa.jl index fe21f0bb9..3f5ede940 100644 --- a/lib/OptimizationNLopt/test/qa/qa.jl +++ b/lib/OptimizationNLopt/test/qa/qa.jl @@ -108,4 +108,5 @@ run_qa( ), ), ei_broken = (:no_implicit_imports,), + reexports_allow = optimization_reexports_allow(OptimizationNLopt.NLopt), ) diff --git a/lib/OptimizationNOMAD/Project.toml b/lib/OptimizationNOMAD/Project.toml index 5934199b3..a7c85863b 100644 --- a/lib/OptimizationNOMAD/Project.toml +++ b/lib/OptimizationNOMAD/Project.toml @@ -1,12 +1,13 @@ name = "OptimizationNOMAD" uuid = "2cab0595-8222-4775-b714-9828e6a9e01b" authors = ["Vaibhav Dixit and contributors"] -version = "0.3.8" +version = "0.4.0" [deps] -OptimizationBase = "bca83a33-5cc9-4baa-983d-23429ab6bcbb" NOMAD = "02130f1c-4665-5b79-af82-ff1385104aa0" -SciMLBase = "0bca4576-84f4-4d90-8ffe-ffa030f20462" +OptimizationBase = "bca83a33-5cc9-4baa-983d-23429ab6bcbb" Reexport = "189a3867-3050-52da-a836-e630ba90ab69" +SciMLBase = "0bca4576-84f4-4d90-8ffe-ffa030f20462" +SciMLLogging = "a6db7da4-7206-11f0-1eab-35f2a5dbe1d1" [weakdeps] LogExpFunctions = "2ab3a3ac-af41-5b50-aa03-7779005ae688" @@ -21,15 +22,16 @@ Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40" OptimizationBase = {path = "../OptimizationBase"} [compat] -SciMLTesting = "2.1" -Pkg = "1" -LogExpFunctions = "0.3.28" -SafeTestsets = "0.1" julia = "1.10" -OptimizationBase = "5" +LogExpFunctions = "0.3.28" NOMAD = "2.4.1" -SciMLBase = "2.122.1, 3" +OptimizationBase = "6" +Pkg = "1" Reexport = "1.2" +SafeTestsets = "0.1" +SciMLBase = "2.122.1, 3" +SciMLLogging = "1.10.1, 2" +SciMLTesting = "2.1" Test = "1.10" [targets] diff --git a/lib/OptimizationNOMAD/src/OptimizationNOMAD.jl b/lib/OptimizationNOMAD/src/OptimizationNOMAD.jl index f4e37c802..2fd3ab0b4 100644 --- a/lib/OptimizationNOMAD/src/OptimizationNOMAD.jl +++ b/lib/OptimizationNOMAD/src/OptimizationNOMAD.jl @@ -1,7 +1,10 @@ module OptimizationNOMAD using Reexport -@reexport using OptimizationBase +# Not re-exported: the optimization API comes from `Optimization`/`OptimizationBase`, +# which the user loads directly. This package's public surface is its own solvers. +using OptimizationBase +using SciMLLogging: @SciMLMessage using NOMAD, SciMLBase export NOMADOpt diff --git a/lib/OptimizationNOMAD/test/qa/Project.toml b/lib/OptimizationNOMAD/test/qa/Project.toml index 78a5daafb..b528dada0 100644 --- a/lib/OptimizationNOMAD/test/qa/Project.toml +++ b/lib/OptimizationNOMAD/test/qa/Project.toml @@ -10,10 +10,10 @@ Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40" OptimizationBase = {path = "../../../OptimizationBase"} [compat] -OptimizationBase = "5" +OptimizationBase = "6" Aqua = "0.8" JET = "0.9, 0.10, 0.11" julia = "1.10" -OptimizationNOMAD = "0.3" +OptimizationNOMAD = "0.4" SciMLTesting = "2.1" Test = "1" diff --git a/lib/OptimizationODE/Project.toml b/lib/OptimizationODE/Project.toml index d7b9db4d1..e1a03dfa0 100644 --- a/lib/OptimizationODE/Project.toml +++ b/lib/OptimizationODE/Project.toml @@ -1,7 +1,7 @@ name = "OptimizationODE" uuid = "dfa73e59-e644-4d8a-bf84-188d7ecb34e4" authors = ["Paras Puneet Singh "] -version = "0.1.8" +version = "0.2.0" [deps] NonlinearSolve = "8913a72c-1f9b-4ce2-8d82-65094dcecaec" @@ -34,7 +34,7 @@ DiffEqBase = "7" ForwardDiff = "0.10, 1" LinearAlgebra = "1.10" NonlinearSolve = "4.11" -OptimizationBase = "5" +OptimizationBase = "6" OrdinaryDiffEqLowOrderRK = "2" OrdinaryDiffEqNonlinearSolve = "2" OrdinaryDiffEqRosenbrock = "2" diff --git a/lib/OptimizationODE/src/OptimizationODE.jl b/lib/OptimizationODE/src/OptimizationODE.jl index 43e649071..24d420732 100644 --- a/lib/OptimizationODE/src/OptimizationODE.jl +++ b/lib/OptimizationODE/src/OptimizationODE.jl @@ -1,7 +1,10 @@ module OptimizationODE using Reexport -@reexport using OptimizationBase, SciMLBase +using SciMLBase +# Not re-exported: the optimization API comes from `Optimization`/`OptimizationBase`, +# which the user loads directly. This package's public surface is its own solvers. +using OptimizationBase using LinearAlgebra, ForwardDiff using DiffEqBase using ADTypes: AutoFiniteDiff diff --git a/lib/OptimizationODE/test/qa/Project.toml b/lib/OptimizationODE/test/qa/Project.toml index 89bdfe096..45357568a 100644 --- a/lib/OptimizationODE/test/qa/Project.toml +++ b/lib/OptimizationODE/test/qa/Project.toml @@ -10,10 +10,10 @@ Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40" OptimizationBase = {path = "../../../OptimizationBase"} [compat] -OptimizationBase = "5" +OptimizationBase = "6" Aqua = "0.8" JET = "0.9, 0.10, 0.11" julia = "1.10" -OptimizationODE = "0.1" +OptimizationODE = "0.2" SciMLTesting = "2.1" Test = "1" diff --git a/lib/OptimizationOptimJL/Project.toml b/lib/OptimizationOptimJL/Project.toml index 262cfa387..b1ac19c28 100644 --- a/lib/OptimizationOptimJL/Project.toml +++ b/lib/OptimizationOptimJL/Project.toml @@ -1,7 +1,7 @@ name = "OptimizationOptimJL" uuid = "36348300-93cb-4f02-beb5-3c3902f8871e" authors = ["Vaibhav Dixit and contributors"] -version = "0.4.16" +version = "0.5.0" [deps] OptimizationBase = "bca83a33-5cc9-4baa-983d-23429ab6bcbb" SparseArrays = "2f01184e-e22b-5df5-ae63-d93ebab69eaf" @@ -25,7 +25,7 @@ SciMLTesting = "2.1" Pkg = "1" SafeTestsets = "0.1" julia = "1.10" -OptimizationBase = "5.1" +OptimizationBase = "6" SparseArrays = "1.6" Optim = "2" Reexport = "1.2" diff --git a/lib/OptimizationOptimJL/src/OptimizationOptimJL.jl b/lib/OptimizationOptimJL/src/OptimizationOptimJL.jl index 3755e8000..c4414af32 100644 --- a/lib/OptimizationOptimJL/src/OptimizationOptimJL.jl +++ b/lib/OptimizationOptimJL/src/OptimizationOptimJL.jl @@ -1,7 +1,10 @@ module OptimizationOptimJL using Reexport -@reexport using Optim, OptimizationBase +@reexport using Optim +# Not re-exported: the optimization API comes from `Optimization`/`OptimizationBase`, +# which the user loads directly. This package's public surface is its own solvers. +using OptimizationBase using SciMLBase, SparseArrays # Construct a TwiceDifferentiable with Hessian-vector product support for KrylovTrustRegion. diff --git a/lib/OptimizationOptimJL/test/core_tests.jl b/lib/OptimizationOptimJL/test/core_tests.jl index 0bceae31d..ee93769ea 100644 --- a/lib/OptimizationOptimJL/test/core_tests.jl +++ b/lib/OptimizationOptimJL/test/core_tests.jl @@ -2,6 +2,7 @@ using OptimizationOptimJL, OptimizationOptimJL.Optim, OptimizationBase, ForwardDiff, Zygote, ReverseDiff, Random, ModelingToolkit, OptimizationBase.OptimizationBase.DifferentiationInterface using Test +import SciMLBase struct CallbackTester dim::Int diff --git a/lib/OptimizationOptimJL/test/qa/Project.toml b/lib/OptimizationOptimJL/test/qa/Project.toml index 5487b2c90..760d27254 100644 --- a/lib/OptimizationOptimJL/test/qa/Project.toml +++ b/lib/OptimizationOptimJL/test/qa/Project.toml @@ -14,8 +14,8 @@ OptimizationBase = {path = "../../../OptimizationBase"} Aqua = "0.8" JET = "0.9, 0.10, 0.11" julia = "1.10" -OptimizationBase = "5.1" -OptimizationOptimJL = "0.4" +OptimizationBase = "6" +OptimizationOptimJL = "0.5" SciMLBase = "2.122.1, 3" SciMLTesting = "2.1" Test = "1" diff --git a/lib/OptimizationOptimJL/test/qa/qa.jl b/lib/OptimizationOptimJL/test/qa/qa.jl index 0110f5365..b2321e466 100644 --- a/lib/OptimizationOptimJL/test/qa/qa.jl +++ b/lib/OptimizationOptimJL/test/qa/qa.jl @@ -68,4 +68,5 @@ run_qa( ), ), ei_broken = (:no_implicit_imports,), + reexports_allow = optimization_reexports_allow(OptimizationOptimJL.Optim), ) diff --git a/lib/OptimizationOptimisers/Project.toml b/lib/OptimizationOptimisers/Project.toml index 6d8adebcc..4fde65b5e 100644 --- a/lib/OptimizationOptimisers/Project.toml +++ b/lib/OptimizationOptimisers/Project.toml @@ -1,7 +1,7 @@ name = "OptimizationOptimisers" uuid = "42dfb2eb-d2b4-4451-abcd-913932933ac1" authors = ["Vaibhav Dixit and contributors"] -version = "0.3.20" +version = "0.4.0" [deps] Logging = "56ddb016-857b-54e1-b83d-db4d58db5568" @@ -9,28 +9,30 @@ Optimisers = "3bd65402-5787-11e9-1adc-39752487f4e2" OptimizationBase = "bca83a33-5cc9-4baa-983d-23429ab6bcbb" Reexport = "189a3867-3050-52da-a836-e630ba90ab69" SciMLBase = "0bca4576-84f4-4d90-8ffe-ffa030f20462" +SciMLLogging = "a6db7da4-7206-11f0-1eab-35f2a5dbe1d1" [sources] OptimizationBase = {path = "../OptimizationBase"} [compat] -SciMLTesting = "2.1" -Pkg = "1" -SafeTestsets = "0.1" -Logging = "1.10" -Optimisers = "0.4.2" -OptimizationBase = "5" -Reexport = "1.2.2" -SciMLBase = "2.122.1, 3" -julia = "1.10" -ComponentArrays = "0.15" CommonSolve = "0.2" +ComponentArrays = "0.15" ForwardDiff = "0.10, 1" +julia = "1.10" +Logging = "1.10" Lux = "1" MLDataDevices = "1" MLUtils = "0.4" +Optimisers = "0.4.2" +OptimizationBase = "6" +Pkg = "1" Printf = "1.10" Random = "1.10" +Reexport = "1.2.2" +SafeTestsets = "0.1" +SciMLBase = "2.122.1, 3" +SciMLLogging = "1.10.1, 2" +SciMLTesting = "2.1" Test = "1.10" Zygote = "0.6, 0.7" diff --git a/lib/OptimizationOptimisers/src/OptimizationOptimisers.jl b/lib/OptimizationOptimisers/src/OptimizationOptimisers.jl index 5c9642ec9..50976f1af 100644 --- a/lib/OptimizationOptimisers/src/OptimizationOptimisers.jl +++ b/lib/OptimizationOptimisers/src/OptimizationOptimisers.jl @@ -1,7 +1,11 @@ module OptimizationOptimisers using Reexport, Logging -@reexport using Optimisers, OptimizationBase +@reexport using Optimisers +# Not re-exported: the optimization API comes from `Optimization`/`OptimizationBase`, +# which the user loads directly. This package's public surface is its own solvers. +using OptimizationBase +using SciMLLogging: @SciMLMessage using SciMLBase SciMLBase.has_init(opt::AbstractRule) = true diff --git a/lib/OptimizationOptimisers/test/core_tests.jl b/lib/OptimizationOptimisers/test/core_tests.jl index 25756174b..83ee0cd4d 100644 --- a/lib/OptimizationOptimisers/test/core_tests.jl +++ b/lib/OptimizationOptimisers/test/core_tests.jl @@ -5,6 +5,7 @@ using SciMLBase: OptimizationFunction, OptimizationProblem using Test using Zygote using Lux, MLUtils, Random, ComponentArrays, Printf, MLDataDevices +import SciMLBase @testset "OptimizationOptimisers.jl" begin @testset "Sense wrapping" begin diff --git a/lib/OptimizationOptimisers/test/qa/Project.toml b/lib/OptimizationOptimisers/test/qa/Project.toml index eae021ca2..a5a7601b2 100644 --- a/lib/OptimizationOptimisers/test/qa/Project.toml +++ b/lib/OptimizationOptimisers/test/qa/Project.toml @@ -11,11 +11,11 @@ Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40" OptimizationBase = {path = "../../../OptimizationBase"} [compat] -OptimizationBase = "5" +OptimizationBase = "6" Aqua = "0.8" JET = "0.9, 0.10, 0.11" julia = "1.10" -OptimizationOptimisers = "0.3" +OptimizationOptimisers = "0.4" SciMLBase = "2.122.1, 3" SciMLTesting = "2.1" Test = "1" diff --git a/lib/OptimizationOptimisers/test/qa/qa.jl b/lib/OptimizationOptimisers/test/qa/qa.jl index 3cf79e383..f4b8f47c5 100644 --- a/lib/OptimizationOptimisers/test/qa/qa.jl +++ b/lib/OptimizationOptimisers/test/qa/qa.jl @@ -57,4 +57,5 @@ run_qa( ), ), ei_broken = (:no_implicit_imports,), + reexports_allow = optimization_reexports_allow(OptimizationOptimisers.Optimisers), ) diff --git a/lib/OptimizationPRIMA/Project.toml b/lib/OptimizationPRIMA/Project.toml index 1ec7ad0a7..dae6263d3 100644 --- a/lib/OptimizationPRIMA/Project.toml +++ b/lib/OptimizationPRIMA/Project.toml @@ -1,7 +1,7 @@ name = "OptimizationPRIMA" uuid = "72f8369c-a2ea-4298-9126-56167ce9cbc2" authors = ["Vaibhav Dixit and contributors"] -version = "0.3.10" +version = "0.4.0" [deps] OptimizationBase = "bca83a33-5cc9-4baa-983d-23429ab6bcbb" PRIMA = "0a7d04aa-8ac2-47b3-b7a7-9dbd6ad661ed" @@ -21,7 +21,7 @@ ModelingToolkit = "961ee093-0014-501f-94e3-6117800e7a78" SciMLTesting = "2.1" ForwardDiff = "0.10, 1" ModelingToolkit = "11" -OptimizationBase = "5.1" +OptimizationBase = "6" Pkg = "1" PRIMA = "0.2.0" Reexport = "1" diff --git a/lib/OptimizationPRIMA/test/core_tests.jl b/lib/OptimizationPRIMA/test/core_tests.jl index 2cbac3dbd..dce42af47 100644 --- a/lib/OptimizationPRIMA/test/core_tests.jl +++ b/lib/OptimizationPRIMA/test/core_tests.jl @@ -1,6 +1,7 @@ using OptimizationPRIMA, OptimizationBase, ForwardDiff, ModelingToolkit, ReverseDiff using OptimizationBase: SciMLBase using Test +import SciMLBase @testset "OptimizationPRIMA.jl" begin rosenbrock(x, p) = (p[1] - x[1])^2 + p[2] * (x[2] - x[1]^2)^2 diff --git a/lib/OptimizationPRIMA/test/qa/Project.toml b/lib/OptimizationPRIMA/test/qa/Project.toml index 558bdc520..2350fed7d 100644 --- a/lib/OptimizationPRIMA/test/qa/Project.toml +++ b/lib/OptimizationPRIMA/test/qa/Project.toml @@ -10,10 +10,10 @@ Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40" OptimizationBase = {path = "../../../OptimizationBase"} [compat] -OptimizationBase = "5" +OptimizationBase = "6" Aqua = "0.8" JET = "0.9, 0.10, 0.11" julia = "1.10" -OptimizationPRIMA = "0.3" +OptimizationPRIMA = "0.4" SciMLTesting = "2.1" Test = "1" diff --git a/lib/OptimizationPRIMA/test/qa/qa.jl b/lib/OptimizationPRIMA/test/qa/qa.jl index e9a5618bc..a9bad1c99 100644 --- a/lib/OptimizationPRIMA/test/qa/qa.jl +++ b/lib/OptimizationPRIMA/test/qa/qa.jl @@ -23,4 +23,5 @@ run_qa( rendered_ignore = optimization_dependency_rendered_ignore(OptimizationPRIMA), ), ei_broken = (:no_implicit_imports,), + reexports_allow = optimization_reexports_allow(OptimizationPRIMA.PRIMA), ) diff --git a/lib/OptimizationPolyalgorithms/Project.toml b/lib/OptimizationPolyalgorithms/Project.toml index 8c1ecb0bf..bef12c8da 100644 --- a/lib/OptimizationPolyalgorithms/Project.toml +++ b/lib/OptimizationPolyalgorithms/Project.toml @@ -1,7 +1,7 @@ name = "OptimizationPolyalgorithms" uuid = "500b13db-7e66-49ce-bda4-eed966be6282" authors = ["Vaibhav Dixit and contributors"] -version = "0.3.8" +version = "0.4.0" [deps] OptimizationBase = "bca83a33-5cc9-4baa-983d-23429ab6bcbb" OptimizationOptimisers = "42dfb2eb-d2b4-4451-abcd-913932933ac1" @@ -24,9 +24,9 @@ OptimizationOptimJL = {path = "../OptimizationOptimJL"} [compat] SciMLTesting = "2.1" ForwardDiff = "0.10, 1" -OptimizationBase = "5" -OptimizationOptimisers = "0.3.16" -OptimizationOptimJL = "0.4.10" +OptimizationBase = "6" +OptimizationOptimisers = "0.4" +OptimizationOptimJL = "0.5" Pkg = "1" Reexport = "1.2.2" SafeTestsets = "0.1" diff --git a/lib/OptimizationPolyalgorithms/src/OptimizationPolyalgorithms.jl b/lib/OptimizationPolyalgorithms/src/OptimizationPolyalgorithms.jl index 684c740b4..bc2e8c329 100644 --- a/lib/OptimizationPolyalgorithms/src/OptimizationPolyalgorithms.jl +++ b/lib/OptimizationPolyalgorithms/src/OptimizationPolyalgorithms.jl @@ -1,7 +1,9 @@ module OptimizationPolyalgorithms using Reexport -@reexport using OptimizationBase +# Not re-exported: the optimization API comes from `Optimization`/`OptimizationBase`, +# which the user loads directly. This package's public surface is its own solvers. +using OptimizationBase using SciMLBase, OptimizationOptimJL, OptimizationOptimisers """ diff --git a/lib/OptimizationPolyalgorithms/test/qa/Project.toml b/lib/OptimizationPolyalgorithms/test/qa/Project.toml index 2d2127511..7a870614e 100644 --- a/lib/OptimizationPolyalgorithms/test/qa/Project.toml +++ b/lib/OptimizationPolyalgorithms/test/qa/Project.toml @@ -14,12 +14,12 @@ OptimizationOptimJL = {path = "../../../OptimizationOptimJL"} OptimizationBase = {path = "../../../OptimizationBase"} [compat] -OptimizationOptimisers = "0.3" -OptimizationOptimJL = "0.4" -OptimizationBase = "5" +OptimizationOptimisers = "0.4" +OptimizationOptimJL = "0.5" +OptimizationBase = "6" Aqua = "0.8" JET = "0.9, 0.10, 0.11" julia = "1.10" -OptimizationPolyalgorithms = "0.3" +OptimizationPolyalgorithms = "0.4" SciMLTesting = "2.1" Test = "1" diff --git a/lib/OptimizationPyCMA/Project.toml b/lib/OptimizationPyCMA/Project.toml index 5f85df741..80ce13642 100644 --- a/lib/OptimizationPyCMA/Project.toml +++ b/lib/OptimizationPyCMA/Project.toml @@ -1,25 +1,27 @@ name = "OptimizationPyCMA" uuid = "fb0822aa-1fe5-41d8-99a6-e7bf6c238d3b" authors = ["Maximilian Pochapski <67759684+mxpoch@users.noreply.github.com>"] -version = "1.3.3" +version = "2.0.0" [deps] -OptimizationBase = "bca83a33-5cc9-4baa-983d-23429ab6bcbb" CondaPkg = "992eb4ea-22a4-4c89-a5bb-47a3300528ab" -SciMLBase = "0bca4576-84f4-4d90-8ffe-ffa030f20462" -Reexport = "189a3867-3050-52da-a836-e630ba90ab69" +OptimizationBase = "bca83a33-5cc9-4baa-983d-23429ab6bcbb" PythonCall = "6099a3de-0909-46bc-b1f4-468b9a2dfc0d" +Reexport = "189a3867-3050-52da-a836-e630ba90ab69" +SciMLBase = "0bca4576-84f4-4d90-8ffe-ffa030f20462" +SciMLLogging = "a6db7da4-7206-11f0-1eab-35f2a5dbe1d1" [compat] -SciMLTesting = "2.1" -Pkg = "1" -julia = "1.10" -OptimizationBase = "5" CondaPkg = "0.2" +julia = "1.10" +OptimizationBase = "6" +Pkg = "1" +PythonCall = "0.9" +Reexport = "1.2" SafeTestsets = "0.1" -Test = "1.10" SciMLBase = "2.122.1, 3" -Reexport = "1.2" -PythonCall = "0.9" +SciMLLogging = "1.10.1, 2" +SciMLTesting = "2.1" +Test = "1.10" [sources] OptimizationBase = {path = "../OptimizationBase"} diff --git a/lib/OptimizationPyCMA/src/OptimizationPyCMA.jl b/lib/OptimizationPyCMA/src/OptimizationPyCMA.jl index 114ce0055..e60760444 100644 --- a/lib/OptimizationPyCMA/src/OptimizationPyCMA.jl +++ b/lib/OptimizationPyCMA/src/OptimizationPyCMA.jl @@ -1,7 +1,10 @@ module OptimizationPyCMA using Reexport -@reexport using OptimizationBase +# Not re-exported: the optimization API comes from `Optimization`/`OptimizationBase`, +# which the user loads directly. This package's public surface is its own solvers. +using OptimizationBase +using SciMLLogging: @SciMLMessage using PythonCall, SciMLBase export PyCMAOpt diff --git a/lib/OptimizationPyCMA/test/core_tests.jl b/lib/OptimizationPyCMA/test/core_tests.jl index 49d762fe1..dc11f4f3f 100644 --- a/lib/OptimizationPyCMA/test/core_tests.jl +++ b/lib/OptimizationPyCMA/test/core_tests.jl @@ -1,4 +1,5 @@ using OptimizationPyCMA, Test +using OptimizationBase @testset "OptimizationPyCMA.jl" begin rosenbrock(x, p) = (p[1] - x[1])^2 + p[2] * (x[2] - x[1]^2)^2 diff --git a/lib/OptimizationPyCMA/test/qa/Project.toml b/lib/OptimizationPyCMA/test/qa/Project.toml index 860713a11..483d90969 100644 --- a/lib/OptimizationPyCMA/test/qa/Project.toml +++ b/lib/OptimizationPyCMA/test/qa/Project.toml @@ -10,10 +10,10 @@ Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40" OptimizationBase = {path = "../../../OptimizationBase"} [compat] -OptimizationBase = "5" +OptimizationBase = "6" Aqua = "0.8" JET = "0.9, 0.10, 0.11" julia = "1.10" -OptimizationPyCMA = "1" +OptimizationPyCMA = "2" SciMLTesting = "2.1" Test = "1" diff --git a/lib/OptimizationPyCMA/test/qa/qa.jl b/lib/OptimizationPyCMA/test/qa/qa.jl index b2c6bfd60..945eca72d 100644 --- a/lib/OptimizationPyCMA/test/qa/qa.jl +++ b/lib/OptimizationPyCMA/test/qa/qa.jl @@ -26,7 +26,6 @@ run_qa( ), ei_broken = ( :no_implicit_imports, - :all_qualified_accesses_via_owners, :all_qualified_accesses_are_public, ), ) diff --git a/lib/OptimizationQuadDIRECT/Project.toml b/lib/OptimizationQuadDIRECT/Project.toml index 302b93739..81dd97dca 100644 --- a/lib/OptimizationQuadDIRECT/Project.toml +++ b/lib/OptimizationQuadDIRECT/Project.toml @@ -1,13 +1,14 @@ name = "OptimizationQuadDIRECT" uuid = "842ac81e-713d-465f-80f7-84eddaced298" authors = ["Vaibhav Dixit and contributors"] -version = "0.3.6" +version = "0.4.0" [deps] OptimizationBase = "bca83a33-5cc9-4baa-983d-23429ab6bcbb" QuadDIRECT = "dae52e8d-d666-5120-a592-9e15c33b8d7a" -SciMLBase = "0bca4576-84f4-4d90-8ffe-ffa030f20462" Reexport = "189a3867-3050-52da-a836-e630ba90ab69" +SciMLBase = "0bca4576-84f4-4d90-8ffe-ffa030f20462" +SciMLLogging = "a6db7da4-7206-11f0-1eab-35f2a5dbe1d1" [extras] SciMLTesting = "09d9d899-5365-40a9-917a-5f67fddea283" @@ -16,14 +17,15 @@ Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40" SafeTestsets = "1bc83da4-3b8d-516f-aca4-4fe02f6d838f" [compat] -SciMLTesting = "2.1" -Pkg = "1" julia = "1.10" -OptimizationBase = "5" +OptimizationBase = "6" +Pkg = "1" QuadDIRECT = "0.1.2" -SciMLBase = "2.122.1, 3" -SafeTestsets = "0.1" Reexport = "1.2" +SafeTestsets = "0.1" +SciMLBase = "2.122.1, 3" +SciMLLogging = "1.10.1, 2" +SciMLTesting = "2.1" Test = "1.10" [targets] diff --git a/lib/OptimizationQuadDIRECT/src/OptimizationQuadDIRECT.jl b/lib/OptimizationQuadDIRECT/src/OptimizationQuadDIRECT.jl index e59312b7a..cd5d09de2 100644 --- a/lib/OptimizationQuadDIRECT/src/OptimizationQuadDIRECT.jl +++ b/lib/OptimizationQuadDIRECT/src/OptimizationQuadDIRECT.jl @@ -1,7 +1,10 @@ module OptimizationQuadDIRECT using Reexport -@reexport using OptimizationBase +# Not re-exported: the optimization API comes from `Optimization`/`OptimizationBase`, +# which the user loads directly. This package's public surface is its own solvers. +using OptimizationBase +using SciMLLogging: @SciMLMessage using QuadDIRECT, SciMLBase export QuadDirect diff --git a/lib/OptimizationQuadDIRECT/test/qa/Project.toml b/lib/OptimizationQuadDIRECT/test/qa/Project.toml index ce03b744b..c65aa82bc 100644 --- a/lib/OptimizationQuadDIRECT/test/qa/Project.toml +++ b/lib/OptimizationQuadDIRECT/test/qa/Project.toml @@ -10,10 +10,10 @@ Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40" OptimizationBase = {path = "../../../OptimizationBase"} [compat] -OptimizationBase = "5" +OptimizationBase = "6" Aqua = "0.8" JET = "0.9, 0.10, 0.11" julia = "1.10" -OptimizationQuadDIRECT = "0.3" +OptimizationQuadDIRECT = "0.4" SciMLTesting = "2.1" Test = "1" diff --git a/lib/OptimizationSciPy/Project.toml b/lib/OptimizationSciPy/Project.toml index 9416c3b0a..1609d7b04 100644 --- a/lib/OptimizationSciPy/Project.toml +++ b/lib/OptimizationSciPy/Project.toml @@ -1,12 +1,13 @@ name = "OptimizationSciPy" uuid = "cce07bd8-c79b-4b00-aee8-8db9cce22837" authors = ["Aditya Pandey and contributors"] -version = "0.4.8" +version = "0.5.0" [deps] OptimizationBase = "bca83a33-5cc9-4baa-983d-23429ab6bcbb" -SciMLBase = "0bca4576-84f4-4d90-8ffe-ffa030f20462" -Reexport = "189a3867-3050-52da-a836-e630ba90ab69" PythonCall = "6099a3de-0909-46bc-b1f4-468b9a2dfc0d" +Reexport = "189a3867-3050-52da-a836-e630ba90ab69" +SciMLBase = "0bca4576-84f4-4d90-8ffe-ffa030f20462" +SciMLLogging = "a6db7da4-7206-11f0-1eab-35f2a5dbe1d1" [extras] SciMLTesting = "09d9d899-5365-40a9-917a-5f67fddea283" @@ -20,10 +21,10 @@ Random = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c" ModelingToolkit = "961ee093-0014-501f-94e3-6117800e7a78" [compat] -SciMLTesting = "2.1" ForwardDiff = "0.10, 1" +julia = "1.10" ModelingToolkit = "11" -OptimizationBase = "5.1" +OptimizationBase = "6" Pkg = "1" PythonCall = "0.9.30" Random = "1.10" @@ -31,9 +32,10 @@ Reexport = "1.2" ReverseDiff = "1" SafeTestsets = "0.1" SciMLBase = "2.122.1, 3" +SciMLLogging = "1.10.1, 2" +SciMLTesting = "2.1" Test = "1.10" Zygote = "0.6, 0.7" -julia = "1.10" [sources] OptimizationBase = {path = "../OptimizationBase"} diff --git a/lib/OptimizationSciPy/src/OptimizationSciPy.jl b/lib/OptimizationSciPy/src/OptimizationSciPy.jl index 46613a7d7..02d366a00 100644 --- a/lib/OptimizationSciPy/src/OptimizationSciPy.jl +++ b/lib/OptimizationSciPy/src/OptimizationSciPy.jl @@ -2,7 +2,10 @@ module OptimizationSciPy using Reexport -@reexport using OptimizationBase +# Not re-exported: the optimization API comes from `Optimization`/`OptimizationBase`, +# which the user loads directly. This package's public surface is its own solvers. +using OptimizationBase +using SciMLLogging: @SciMLMessage using SciMLBase using PythonCall diff --git a/lib/OptimizationSciPy/test/qa/Project.toml b/lib/OptimizationSciPy/test/qa/Project.toml index d5e2855ae..ef98fd1be 100644 --- a/lib/OptimizationSciPy/test/qa/Project.toml +++ b/lib/OptimizationSciPy/test/qa/Project.toml @@ -10,10 +10,10 @@ Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40" OptimizationBase = {path = "../../../OptimizationBase"} [compat] -OptimizationBase = "5" +OptimizationBase = "6" Aqua = "0.8" JET = "0.9, 0.10, 0.11" julia = "1.10" -OptimizationSciPy = "0.4" +OptimizationSciPy = "0.5" SciMLTesting = "2.1" Test = "1" diff --git a/lib/OptimizationSophia/Project.toml b/lib/OptimizationSophia/Project.toml index 27e66dfa3..dd0f7a2bf 100644 --- a/lib/OptimizationSophia/Project.toml +++ b/lib/OptimizationSophia/Project.toml @@ -1,7 +1,7 @@ name = "OptimizationSophia" uuid = "892fee11-dca1-40d6-b698-84ba0d87399a" authors = ["paramthakkar123 "] -version = "1.3.3" +version = "2.0.0" [deps] OptimizationBase = "bca83a33-5cc9-4baa-983d-23429ab6bcbb" Random = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c" @@ -27,7 +27,7 @@ SafeTestsets = "0.1" ComponentArrays = "0.15.29" Lux = "1.16.0" MLUtils = "0.4.8" -OptimizationBase = "5" +OptimizationBase = "6" OrdinaryDiffEqTsit5 = "1.2.0, 2" Random = "1.10.0" Reexport = "1.2" diff --git a/lib/OptimizationSophia/src/OptimizationSophia.jl b/lib/OptimizationSophia/src/OptimizationSophia.jl index 4fc7fb1ff..1518c1574 100644 --- a/lib/OptimizationSophia/src/OptimizationSophia.jl +++ b/lib/OptimizationSophia/src/OptimizationSophia.jl @@ -3,7 +3,9 @@ module OptimizationSophia using Reexport using SciMLBase using OptimizationBase: OptimizationCache -@reexport using OptimizationBase +# Not re-exported: the optimization API comes from `Optimization`/`OptimizationBase`, +# which the user loads directly. This package's public surface is its own solvers. +using OptimizationBase using Random export Sophia diff --git a/lib/OptimizationSophia/test/core_tests.jl b/lib/OptimizationSophia/test/core_tests.jl index 26d0cd877..64a6976bc 100644 --- a/lib/OptimizationSophia/test/core_tests.jl +++ b/lib/OptimizationSophia/test/core_tests.jl @@ -6,6 +6,7 @@ using SciMLSensitivity using Test using Zygote using OrdinaryDiffEqTsit5 +import SciMLBase function dudt_(u, p, t) return ann(u, p, st)[1] .* u diff --git a/lib/OptimizationSophia/test/qa/Project.toml b/lib/OptimizationSophia/test/qa/Project.toml index 98d7e4510..d7048b77c 100644 --- a/lib/OptimizationSophia/test/qa/Project.toml +++ b/lib/OptimizationSophia/test/qa/Project.toml @@ -10,10 +10,10 @@ Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40" OptimizationBase = {path = "../../../OptimizationBase"} [compat] -OptimizationBase = "5" +OptimizationBase = "6" Aqua = "0.8" JET = "0.9, 0.10, 0.11" julia = "1.10" -OptimizationSophia = "1" +OptimizationSophia = "2" SciMLTesting = "2.1" Test = "1" diff --git a/lib/OptimizationSpeedMapping/Project.toml b/lib/OptimizationSpeedMapping/Project.toml index 642a384e4..a1d3c2394 100644 --- a/lib/OptimizationSpeedMapping/Project.toml +++ b/lib/OptimizationSpeedMapping/Project.toml @@ -1,12 +1,13 @@ name = "OptimizationSpeedMapping" uuid = "3d669222-0d7d-4eb9-8a9f-d8528b0d9b91" authors = ["Vaibhav Dixit and contributors"] -version = "0.2.7" +version = "0.3.0" [deps] OptimizationBase = "bca83a33-5cc9-4baa-983d-23429ab6bcbb" -SpeedMapping = "f1835b91-879b-4a3f-a438-e4baacf14412" -SciMLBase = "0bca4576-84f4-4d90-8ffe-ffa030f20462" Reexport = "189a3867-3050-52da-a836-e630ba90ab69" +SciMLBase = "0bca4576-84f4-4d90-8ffe-ffa030f20462" +SciMLLogging = "a6db7da4-7206-11f0-1eab-35f2a5dbe1d1" +SpeedMapping = "f1835b91-879b-4a3f-a438-e4baacf14412" [extras] SciMLTesting = "09d9d899-5365-40a9-917a-5f67fddea283" @@ -16,16 +17,17 @@ ForwardDiff = "f6369f11-7733-5829-9624-2563aa707210" Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40" [compat] -SciMLTesting = "2.1" ForwardDiff = "0.10, 1" -OptimizationBase = "5" +julia = "1.10" +OptimizationBase = "6" Pkg = "1" Reexport = "1.2" SafeTestsets = "0.1" SciMLBase = "2.122.1, 3" +SciMLLogging = "1.10.1, 2" +SciMLTesting = "2.1" SpeedMapping = "0.4" Test = "1.10" -julia = "1.10" [sources] OptimizationBase = {path = "../OptimizationBase"} diff --git a/lib/OptimizationSpeedMapping/src/OptimizationSpeedMapping.jl b/lib/OptimizationSpeedMapping/src/OptimizationSpeedMapping.jl index 0ee6f0e98..c677e794c 100644 --- a/lib/OptimizationSpeedMapping/src/OptimizationSpeedMapping.jl +++ b/lib/OptimizationSpeedMapping/src/OptimizationSpeedMapping.jl @@ -1,7 +1,10 @@ module OptimizationSpeedMapping using Reexport -@reexport using OptimizationBase +# Not re-exported: the optimization API comes from `Optimization`/`OptimizationBase`, +# which the user loads directly. This package's public surface is its own solvers. +using OptimizationBase +using SciMLLogging: @SciMLMessage using SpeedMapping, SciMLBase export SpeedMappingOpt diff --git a/lib/OptimizationSpeedMapping/test/qa/Project.toml b/lib/OptimizationSpeedMapping/test/qa/Project.toml index 3d7a869d1..da56da043 100644 --- a/lib/OptimizationSpeedMapping/test/qa/Project.toml +++ b/lib/OptimizationSpeedMapping/test/qa/Project.toml @@ -10,10 +10,10 @@ Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40" OptimizationBase = {path = "../../../OptimizationBase"} [compat] -OptimizationBase = "5" +OptimizationBase = "6" Aqua = "0.8" JET = "0.9, 0.10, 0.11" julia = "1.10" -OptimizationSpeedMapping = "0.2" +OptimizationSpeedMapping = "0.3" SciMLTesting = "2.1" Test = "1" diff --git a/lib/SimpleOptimization/Project.toml b/lib/SimpleOptimization/Project.toml index 326bca70b..160866d34 100644 --- a/lib/SimpleOptimization/Project.toml +++ b/lib/SimpleOptimization/Project.toml @@ -1,5 +1,5 @@ name = "SimpleOptimization" -version = "1.2.3" +version = "2.0.0" uuid = "510db2f7-4254-4e34-bbda-04240c91ca8f" authors = ["Utkarsh and contributors"] @@ -37,7 +37,7 @@ DifferentiationInterface = "0.7.13" Enzyme = "0.13" ForwardDiff = "0.10, 1" LinearAlgebra = "1.10" -OptimizationBase = "5" +OptimizationBase = "6" Pkg = "1" Reexport = "1.2" SafeTestsets = "0.1" diff --git a/lib/SimpleOptimization/src/SimpleOptimization.jl b/lib/SimpleOptimization/src/SimpleOptimization.jl index b94230dbf..55f232a8e 100644 --- a/lib/SimpleOptimization/src/SimpleOptimization.jl +++ b/lib/SimpleOptimization/src/SimpleOptimization.jl @@ -1,7 +1,9 @@ module SimpleOptimization using Reexport -@reexport using OptimizationBase +# Not re-exported: the optimization API comes from `Optimization`/`OptimizationBase`, +# which the user loads directly. This package's public surface is its own solvers. +using OptimizationBase using SciMLBase using SciMLBase: _unwrap_val using SimpleNonlinearSolve diff --git a/lib/SimpleOptimization/test/qa/Project.toml b/lib/SimpleOptimization/test/qa/Project.toml index a8f4f6590..7b24940f8 100644 --- a/lib/SimpleOptimization/test/qa/Project.toml +++ b/lib/SimpleOptimization/test/qa/Project.toml @@ -10,10 +10,10 @@ Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40" OptimizationBase = {path = "../../../OptimizationBase"} [compat] -OptimizationBase = "5" +OptimizationBase = "6" Aqua = "0.8" JET = "0.9, 0.10, 0.11" julia = "1.10" SciMLTesting = "2.1" -SimpleOptimization = "1" +SimpleOptimization = "2" Test = "1" diff --git a/src/Optimization.jl b/src/Optimization.jl index 42ebe9d43..d1e731ab6 100644 --- a/src/Optimization.jl +++ b/src/Optimization.jl @@ -5,7 +5,12 @@ module Optimization using DocStringExtensions using Reexport -@reexport using SciMLBase, ADTypes, OptimizationBase +# `OptimizationBase` curates its own public surface, so re-exporting it wholesale is a +# bounded, reviewable act. `SciMLBase`/`ADTypes` are deliberately *not* re-exported: +# blanket-reexporting them is what put 263 names — most of SciMLOperators among them — +# into every `using Optimization` namespace. +@reexport using OptimizationBase +using SciMLBase, ADTypes using Logging, ConsoleProgressMonitor, TerminalLoggers, LoggingExtras using ArrayInterface, Base.Iterators, SparseArrays, LinearAlgebra diff --git a/test/AD/Project.toml b/test/AD/Project.toml index 235ce7c2c..a8721d8c6 100644 --- a/test/AD/Project.toml +++ b/test/AD/Project.toml @@ -34,11 +34,11 @@ FiniteDiff = "2" ForwardDiff = "0.10, 1" Ipopt = "1" Mooncake = "0.4.138, 0.5" -Optimization = "5" -OptimizationBase = "5" -OptimizationLBFGSB = "1.2" -OptimizationMOI = "1" -OptimizationOptimJL = "0.4.10" +Optimization = "6" +OptimizationBase = "6" +OptimizationLBFGSB = "2" +OptimizationMOI = "2" +OptimizationOptimJL = "0.5" Random = "1.10" ReverseDiff = "1" SafeTestsets = "0.1" diff --git a/test/downstream/gpu_neural_ode.jl b/test/downstream/gpu_neural_ode.jl index 05c3ab74a..eae799c15 100644 --- a/test/downstream/gpu_neural_ode.jl +++ b/test/downstream/gpu_neural_ode.jl @@ -1,4 +1,5 @@ using DiffEqFlux, OrdinaryDiffEqTsit5, Flux, CUDA +using OptimizationBase CUDA.allowscalar(false) # Makes sure no slow operations are occurring # Generate Data diff --git a/test/qa/Project.toml b/test/qa/Project.toml index 78c624cfd..53113270b 100644 --- a/test/qa/Project.toml +++ b/test/qa/Project.toml @@ -10,7 +10,7 @@ Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40" [compat] Aqua = "0.8" JET = "0.9, 0.10, 0.11" -Optimization = "5" +Optimization = "6" SafeTestsets = "0.0.1, 0.1" SciMLBase = "2.148.0, 3" SciMLTesting = "2.1" diff --git a/test/qa/qa.jl b/test/qa/qa.jl index ad3c077fe..249b7c407 100644 --- a/test/qa/qa.jl +++ b/test/qa/qa.jl @@ -53,4 +53,7 @@ run_qa( ), ), ei_broken = (:no_implicit_imports,), + # `Optimization` is the umbrella over `OptimizationBase`, which curates its own + # public API; re-exporting exactly that set is the facade's whole purpose. + reexports_allow = optimization_reexports_allow(Optimization.OptimizationBase), ) diff --git a/test/qa/rendered_docs.jl b/test/qa/rendered_docs.jl index 18b50bb7b..33ea51842 100644 --- a/test/qa/rendered_docs.jl +++ b/test/qa/rendered_docs.jl @@ -84,3 +84,30 @@ function optimization_dependency_rendered_ignore(pkg::Module) end return Tuple(sort!(unique(ignored))) end + +# `run_qa`'s reexport audit flags every public name a package does not own. The glue +# packages deliberately surface their backend's solver names — that is what they are for +# — so allow the public API of the modules each one still `@reexport`s. Everything else +# must be owned; the umbrella packages instead list their curated re-surface explicitly. +function optimization_reexports_allow(mods::Module...) + allowed = Symbol[] + for m in mods + push!(allowed, nameof(m)) + append!(allowed, public_api_names(m)) + end + return Tuple(sort!(unique!(allowed))) +end + +# The names Optimization/OptimizationBase intentionally re-surface from SciMLBase and +# ADTypes so that `using Optimization` is enough to state and solve a problem. Adding to +# this list is a deliberate widening of the public API, not an accident of `@reexport`. +const OPTIMIZATION_CURATED_REEXPORTS = ( + :AutoEnzyme, :AutoFiniteDiff, :AutoForwardDiff, :AutoMooncake, :AutoReverseDiff, + :AutoSparse, :AutoSymbolics, :AutoTracker, :AutoZygote, + :MaxSense, :MinSense, :ObjSense, + :MultiObjectiveOptimizationFunction, :OptimizationFunction, :OptimizationProblem, + :OptimizationSolution, :OptimizationStats, + :ReturnCode, :allowsbounds, :allowscallback, :allowsconstraints, + :init, :remake, :requiresbounds, :requiresconshess, :requiresconsjac, + :requiresconstraints, :requiresgradient, :requireshessian, :solve, :solve!, +) From a37c8f4f16141036e410a7981a7fffce1159dee3 Mon Sep 17 00:00:00 2001 From: ChrisRackauckas-Claude Date: Sat, 1 Aug 2026 17:26:35 -0400 Subject: [PATCH 2/7] docs: use OptimizationBase in the PyCMA example Matches getting_started.md and the LBFGSB/PRIMA/Sophia pages. Addresses review feedback on the pycma.md hunk. Co-Authored-By: Chris Rackauckas Co-Authored-By: Claude Opus 5 (1M context) Claude-Session: https://claude.ai/code/session_01A9dFnCQK2GVSNTCJP6ZMG2 --- docs/src/optimization_packages/pycma.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/src/optimization_packages/pycma.md b/docs/src/optimization_packages/pycma.md index 91cd7a6a8..fec884073 100644 --- a/docs/src/optimization_packages/pycma.md +++ b/docs/src/optimization_packages/pycma.md @@ -22,7 +22,7 @@ OptimizationPyCMA.PyCMAOpt ## Example ```@example PyCMA -using Optimization, OptimizationPyCMA +using OptimizationBase, OptimizationPyCMA rosenbrock(x, p) = (p[1] - x[1])^2 + p[2] * (x[2] - x[1]^2)^2 x0 = zeros(2) From 2ac8c221ef74e2657e8c07ed6e97ee321018055b Mon Sep 17 00:00:00 2001 From: ChrisRackauckas-Claude Date: Sat, 1 Aug 2026 17:46:05 -0400 Subject: [PATCH 3/7] docs: use OptimizationBase as the entry package throughout The docs were split between `using Optimization` and `using OptimizationBase`, with getting_started.md, lbfgsb.md, prima.md and sophia.md already on the latter. Settle on OptimizationBase everywhere, per review feedback on the pycma.md hunk. names(Optimization) is names(OptimizationBase) plus the symbol :Optimization, and solve/init/solve!/reinit!/AutoForwardDiff/OptimizationProblem resolve to identical bindings in both, so this is behaviour-preserving. Co-Authored-By: Chris Rackauckas Co-Authored-By: Claude Opus 5 (1M context) Claude-Session: https://claude.ai/code/session_01A9dFnCQK2GVSNTCJP6ZMG2 --- docs/src/optimization_packages/auglag.md | 2 +- .../optimization_packages/blackboxoptim.md | 2 +- .../cmaevolutionstrategy.md | 2 +- .../src/optimization_packages/evolutionary.md | 2 +- docs/src/optimization_packages/gcmaes.md | 2 +- docs/src/optimization_packages/ipopt.md | 10 +++++----- docs/src/optimization_packages/madnlp.md | 2 +- docs/src/optimization_packages/manopt.md | 8 ++++---- .../optimization_packages/mathoptinterface.md | 2 +- .../optimization_packages/metaheuristics.md | 2 +- .../multistartoptimization.md | 2 +- docs/src/optimization_packages/nlopt.md | 8 ++++---- docs/src/optimization_packages/nlpmodels.md | 4 ++-- docs/src/optimization_packages/nomad.md | 6 +++--- docs/src/optimization_packages/ode.md | 2 +- docs/src/optimization_packages/optim.md | 14 ++++++------- docs/src/optimization_packages/polyopt.md | 4 ++-- docs/src/optimization_packages/scipy.md | 6 +++--- .../simpleoptimization.md | 4 ++-- .../src/optimization_packages/speedmapping.md | 2 +- docs/src/tutorials/minibatch.md | 2 +- docs/src/tutorials/reusage_interface.md | 20 +++++++++---------- 22 files changed, 54 insertions(+), 54 deletions(-) diff --git a/docs/src/optimization_packages/auglag.md b/docs/src/optimization_packages/auglag.md index 7f2b679fc..fe9195437 100644 --- a/docs/src/optimization_packages/auglag.md +++ b/docs/src/optimization_packages/auglag.md @@ -20,7 +20,7 @@ OptimizationAuglag.AugLag ## Example ```julia -using Optimization, OptimizationAuglag, OptimizationOptimJL, ADTypes +using OptimizationBase, OptimizationAuglag, OptimizationOptimJL, ADTypes rosenbrock(x, p) = (p[1] - x[1])^2 + p[2] * (x[2] - x[1]^2)^2 cons(res, x, p) = (res .= [x[1]^2 + x[2]^2]) diff --git a/docs/src/optimization_packages/blackboxoptim.md b/docs/src/optimization_packages/blackboxoptim.md index 5668d91f0..e8274abc6 100644 --- a/docs/src/optimization_packages/blackboxoptim.md +++ b/docs/src/optimization_packages/blackboxoptim.md @@ -77,7 +77,7 @@ OptimizationBBO.BBO_borg_moea The Rosenbrock function can be optimized using the `BBO_adaptive_de_rand_1_bin_radiuslimited()` as follows: ```@example BBO -using Optimization, OptimizationBBO +using OptimizationBase, OptimizationBBO rosenbrock(x, p) = (p[1] - x[1])^2 + p[2] * (x[2] - x[1]^2)^2 x0 = zeros(2) p = [1.0, 100.0] diff --git a/docs/src/optimization_packages/cmaevolutionstrategy.md b/docs/src/optimization_packages/cmaevolutionstrategy.md index afeb7d118..4f267ef9c 100644 --- a/docs/src/optimization_packages/cmaevolutionstrategy.md +++ b/docs/src/optimization_packages/cmaevolutionstrategy.md @@ -29,7 +29,7 @@ OptimizationCMAEvolutionStrategy.CMAEvolutionStrategyOpt The Rosenbrock function can be optimized using the `CMAEvolutionStrategyOpt()` as follows: ```@example CMAEvolutionStrategy -using Optimization, OptimizationCMAEvolutionStrategy +using OptimizationBase, OptimizationCMAEvolutionStrategy rosenbrock(x, p) = (p[1] - x[1])^2 + p[2] * (x[2] - x[1]^2)^2 x0 = zeros(2) p = [1.0, 100.0] diff --git a/docs/src/optimization_packages/evolutionary.md b/docs/src/optimization_packages/evolutionary.md index 98edfc327..b9ebc1ba0 100644 --- a/docs/src/optimization_packages/evolutionary.md +++ b/docs/src/optimization_packages/evolutionary.md @@ -33,7 +33,7 @@ Algorithm-specific options are defined as `kwargs`. See the respective documenta The Rosenbrock function can be optimized using the `Evolutionary.CMAES()` as follows: ```@example Evolutionary -using Optimization, OptimizationEvolutionary +using OptimizationBase, OptimizationEvolutionary rosenbrock(x, p) = (p[1] - x[1])^2 + p[2] * (x[2] - x[1]^2)^2 x0 = zeros(2) p = [1.0, 100.0] diff --git a/docs/src/optimization_packages/gcmaes.md b/docs/src/optimization_packages/gcmaes.md index bd0b2df7e..65ce00284 100644 --- a/docs/src/optimization_packages/gcmaes.md +++ b/docs/src/optimization_packages/gcmaes.md @@ -29,7 +29,7 @@ OptimizationGCMAES.GCMAESOpt The Rosenbrock function can be optimized using the `GCMAESOpt()` without utilizing the gradient information as follows: ```@example GCMAES -using Optimization, OptimizationGCMAES +using OptimizationBase, OptimizationGCMAES rosenbrock(x, p) = (p[1] - x[1])^2 + p[2] * (x[2] - x[1]^2)^2 x0 = zeros(2) p = [1.0, 100.0] diff --git a/docs/src/optimization_packages/ipopt.md b/docs/src/optimization_packages/ipopt.md index 20799526b..451934989 100644 --- a/docs/src/optimization_packages/ipopt.md +++ b/docs/src/optimization_packages/ipopt.md @@ -180,7 +180,7 @@ sol = solve(prob, opt; The Rosenbrock function can be minimized using `IpoptOptimizer`: ```@example Ipopt1 -using Optimization, OptimizationIpopt +using OptimizationBase, OptimizationIpopt using Zygote rosenbrock(x, p) = (p[1] - x[1])^2 + p[2] * (x[2] - x[1]^2)^2 @@ -198,7 +198,7 @@ sol = solve(prob, IpoptOptimizer()) Adding box constraints to limit the search space: ```@example Ipopt2 -using Optimization, OptimizationIpopt +using OptimizationBase, OptimizationIpopt using Zygote rosenbrock(x, p) = (p[1] - x[1])^2 + p[2] * (x[2] - x[1]^2)^2 @@ -217,7 +217,7 @@ sol = solve(prob, IpoptOptimizer()) Solving problems with nonlinear equality and inequality constraints: ```@example Ipopt3 -using Optimization, OptimizationIpopt +using OptimizationBase, OptimizationIpopt using Zygote # Objective: minimize x[1]^2 + x[2]^2 @@ -247,7 +247,7 @@ sol = solve(prob, IpoptOptimizer()) For large-scale problems where computing the exact Hessian is expensive: ```@example Ipopt4 -using Optimization, OptimizationIpopt +using OptimizationBase, OptimizationIpopt using Zygote # Large-scale problem @@ -273,7 +273,7 @@ sol = solve(prob, IpoptOptimizer( A practical example of portfolio optimization with constraints: ```@example Ipopt5 -using Optimization, OptimizationIpopt +using OptimizationBase, OptimizationIpopt using Zygote using LinearAlgebra diff --git a/docs/src/optimization_packages/madnlp.md b/docs/src/optimization_packages/madnlp.md index 216799b52..c25ce3275 100644 --- a/docs/src/optimization_packages/madnlp.md +++ b/docs/src/optimization_packages/madnlp.md @@ -20,7 +20,7 @@ OptimizationMadNLP.MadNLPOptimizer ## Example ```julia -using Optimization, OptimizationMadNLP, ADTypes +using OptimizationBase, OptimizationMadNLP, ADTypes rosenbrock(x, p) = (p[1] - x[1])^2 + p[2] * (x[2] - x[1]^2)^2 optf = OptimizationFunction(rosenbrock, ADTypes.AutoForwardDiff()) diff --git a/docs/src/optimization_packages/manopt.md b/docs/src/optimization_packages/manopt.md index 000c63376..02a7b01e7 100644 --- a/docs/src/optimization_packages/manopt.md +++ b/docs/src/optimization_packages/manopt.md @@ -50,7 +50,7 @@ function or `OptimizationProblem`. The Rosenbrock function on the Euclidean manifold can be optimized using the `GradientDescentOptimizer` as follows: ```@example Manopt -using Optimization, OptimizationManopt, Manifolds, LinearAlgebra, ADTypes, Zygote +using OptimizationBase, OptimizationManopt, Manifolds, LinearAlgebra, ADTypes, Zygote rosenbrock(x, p) = (p[1] - x[1])^2 + p[2] * (x[2] - x[1]^2)^2 x0 = zeros(2) p = [1.0, 100.0] @@ -65,7 +65,7 @@ optf = OptimizationFunction(rosenbrock, ADTypes.AutoZygote()) prob = OptimizationProblem( optf, x0, p; manifold = R2, stepsize = stepsize) -sol = Optimization.solve(prob, opt) +sol = OptimizationBase.solve(prob, opt) ``` The box-constrained Karcher mean problem on the SPD manifold with the Frank-Wolfe algorithm can be solved as follows: @@ -103,7 +103,7 @@ L = inv(sum(1 / N * inv(matrix) for matrix in data2)) optf = OptimizationFunction(f, ADTypes.AutoZygote()) prob = OptimizationProblem(optf, U; manifold = M, maxiters = 1000) -sol = Optimization.solve( +sol = OptimizationBase.solve( prob, opt, sub_problem = (M, q, p, X) -> closed_form_solution!(M, q, L, U, p, X)) ``` @@ -113,7 +113,7 @@ The following example is adapted from the Rayleigh Quotient example in ManoptExa We solve the Rayleigh quotient problem on the Sphere manifold: ```@example Manopt -using Optimization, OptimizationManopt +using OptimizationBase, OptimizationManopt using Manifolds, LinearAlgebra using Manopt diff --git a/docs/src/optimization_packages/mathoptinterface.md b/docs/src/optimization_packages/mathoptinterface.md index 877a3203a..5d5ac075e 100644 --- a/docs/src/optimization_packages/mathoptinterface.md +++ b/docs/src/optimization_packages/mathoptinterface.md @@ -69,7 +69,7 @@ sol = solve(prob, Ipopt.Optimizer(); option_name = option_value, ...) detail. ```@example MOI -using Optimization, OptimizationMOI, Juniper, Ipopt, ADTypes, ForwardDiff +using OptimizationBase, OptimizationMOI, Juniper, Ipopt, ADTypes, ForwardDiff rosenbrock(x, p) = (p[1] - x[1])^2 + p[2] * (x[2] - x[1]^2)^2 x0 = zeros(2) _p = [1.0, 100.0] diff --git a/docs/src/optimization_packages/metaheuristics.md b/docs/src/optimization_packages/metaheuristics.md index 2dc52353d..b27f8b3d9 100644 --- a/docs/src/optimization_packages/metaheuristics.md +++ b/docs/src/optimization_packages/metaheuristics.md @@ -52,7 +52,7 @@ constraint equations. However, lower and upper constraints set by `lb` and `ub` The Rosenbrock function can be optimized using the Evolutionary Centers Algorithm `ECA()` as follows: ```@example Metaheuristics -using Optimization, OptimizationMetaheuristics +using OptimizationBase, OptimizationMetaheuristics rosenbrock(x, p) = (p[1] - x[1])^2 + p[2] * (x[2] - x[1]^2)^2 x0 = zeros(2) p = [1.0, 100.0] diff --git a/docs/src/optimization_packages/multistartoptimization.md b/docs/src/optimization_packages/multistartoptimization.md index 8c575ef15..94f0d5a19 100644 --- a/docs/src/optimization_packages/multistartoptimization.md +++ b/docs/src/optimization_packages/multistartoptimization.md @@ -32,7 +32,7 @@ constraint equations. However, lower and upper constraints set by `lb` and `ub` The Rosenbrock function can be optimized using `MultistartOptimization.TikTak()` with 100 initial points and the local method `NLopt.LD_LBFGS()` as follows: ```julia -using Optimization, OptimizationMultistartOptimization, OptimizationNLopt, ADTypes, ForwardDiff +using OptimizationBase, OptimizationMultistartOptimization, OptimizationNLopt, ADTypes, ForwardDiff rosenbrock(x, p) = (p[1] - x[1])^2 + p[2] * (x[2] - x[1]^2)^2 x0 = zeros(2) p = [1.0, 100.0] diff --git a/docs/src/optimization_packages/nlopt.md b/docs/src/optimization_packages/nlopt.md index 0ab505542..edb0fe8e2 100644 --- a/docs/src/optimization_packages/nlopt.md +++ b/docs/src/optimization_packages/nlopt.md @@ -93,7 +93,7 @@ Derivative-free optimizers are optimizers that can be used even in cases where n The Rosenbrock function can be optimized using the `NLopt.LN_NELDERMEAD()` as follows: ```@example NLopt1 -using Optimization +using OptimizationBase using OptimizationNLopt rosenbrock(x, p) = (p[1] - x[1])^2 + p[2] * (x[2] - x[1]^2)^2 x0 = zeros(2) @@ -126,7 +126,7 @@ Gradient-based optimizers are optimizers which utilize the gradient information The Rosenbrock function can be optimized using `NLopt.LD_LBFGS()` as follows: ```@example NLopt2 -using Optimization, OptimizationNLopt, ADTypes, ForwardDiff +using OptimizationBase, OptimizationNLopt, ADTypes, ForwardDiff rosenbrock(x, p) = (p[1] - x[1])^2 + p[2] * (x[2] - x[1]^2)^2 x0 = zeros(2) p = [1.0, 100.0] @@ -164,7 +164,7 @@ constraint equations. However, lower and upper constraints set by `lb` and `ub` The Rosenbrock function can be optimized using `NLopt.GN_DIRECT()` as follows: ```@example NLopt3 -using Optimization, OptimizationNLopt +using OptimizationBase, OptimizationNLopt rosenbrock(x, p) = (p[1] - x[1])^2 + p[2] * (x[2] - x[1]^2)^2 x0 = zeros(2) p = [1.0, 100.0] @@ -180,7 +180,7 @@ The Rosenbrock function can be optimized using `NLopt.G_MLSL_LDS()` with `NLopt. The local optimizer maximum iterations are set via `local_maxiters`: ```@example NLopt4 -using Optimization, OptimizationNLopt, ADTypes, ForwardDiff +using OptimizationBase, OptimizationNLopt, ADTypes, ForwardDiff rosenbrock(x, p) = (p[1] - x[1])^2 + p[2] * (x[2] - x[1]^2)^2 x0 = zeros(2) p = [1.0, 100.0] diff --git a/docs/src/optimization_packages/nlpmodels.md b/docs/src/optimization_packages/nlpmodels.md index 77bf882f7..581db8cf5 100644 --- a/docs/src/optimization_packages/nlpmodels.md +++ b/docs/src/optimization_packages/nlpmodels.md @@ -36,8 +36,8 @@ Hock--Schittkowski optimization suite available from `NLPModelsTest` as `HS10`, translate it to an `OptimizationProblem`. ```@example NLPModels -using OptimizationNLPModels, Optimization, NLPModelsTest, Ipopt -using Optimization: OptimizationProblem +using OptimizationNLPModels, OptimizationBase, NLPModelsTest, Ipopt +using OptimizationBase: OptimizationProblem nlpmodel = NLPModelsTest.HS10() prob = OptimizationProblem(nlpmodel, AutoForwardDiff()) ``` diff --git a/docs/src/optimization_packages/nomad.md b/docs/src/optimization_packages/nomad.md index 03dcdf0b7..c4fcf0fac 100644 --- a/docs/src/optimization_packages/nomad.md +++ b/docs/src/optimization_packages/nomad.md @@ -35,15 +35,15 @@ OptimizationNOMAD.NOMADOpt The Rosenbrock function can be optimized using the `NOMADOpt()` with and without box-constraints as follows: ```@example NOMAD -using Optimization, OptimizationNOMAD +using OptimizationBase, OptimizationNOMAD rosenbrock(x, p) = (p[1] - x[1])^2 + p[2] * (x[2] - x[1]^2)^2 x0 = zeros(2) p = [1.0, 100.0] f = OptimizationFunction(rosenbrock) prob = OptimizationProblem(f, x0, p) -sol = Optimization.solve(prob, NOMADOpt()) +sol = OptimizationBase.solve(prob, NOMADOpt()) prob = OptimizationProblem(f, x0, p, lb = [-1.0, -1.0], ub = [1.5, 1.5]) -sol = Optimization.solve(prob, NOMADOpt()) +sol = OptimizationBase.solve(prob, NOMADOpt()) ``` diff --git a/docs/src/optimization_packages/ode.md b/docs/src/optimization_packages/ode.md index 7008463b7..520c0af86 100644 --- a/docs/src/optimization_packages/ode.md +++ b/docs/src/optimization_packages/ode.md @@ -12,7 +12,7 @@ Pkg.add("OptimizationODE") ## Usage ```julia -using OptimizationODE, Optimization, ADTypes, SciMLBase +using OptimizationODE, OptimizationBase, ADTypes, SciMLBase function f(x, p) return sum(abs2, x) diff --git a/docs/src/optimization_packages/optim.md b/docs/src/optimization_packages/optim.md index a9bb35336..54c7e36be 100644 --- a/docs/src/optimization_packages/optim.md +++ b/docs/src/optimization_packages/optim.md @@ -69,7 +69,7 @@ For a more extensive documentation of all the algorithms and options, please con The Rosenbrock function with constraints can be optimized using the `Optim.IPNewton()` as follows: ```@example Optim1 -using Optimization, OptimizationOptimJL, ADTypes, ForwardDiff +using OptimizationBase, OptimizationOptimJL, ADTypes, ForwardDiff rosenbrock(x, p) = (p[1] - x[1])^2 + p[2] * (x[2] - x[1]^2)^2 cons = (res, x, p) -> res .= [x[1]^2 + x[2]^2] x0 = zeros(2) @@ -115,7 +115,7 @@ Derivative-free optimizers are optimizers that can be used even in cases where n The Rosenbrock function can be optimized using the `Optim.NelderMead()` as follows: ```@example Optim2 -using Optimization, OptimizationOptimJL +using OptimizationBase, OptimizationOptimJL rosenbrock(x, p) = (1 - x[1])^2 + 100 * (x[2] - x[1]^2)^2 x0 = zeros(2) p = [1.0, 100.0] @@ -275,7 +275,7 @@ Gradient-based optimizers are optimizers which utilize the gradient information The Rosenbrock function can be optimized using the `Optim.LBFGS()` as follows: ```@example Optim3 -using Optimization, OptimizationOptimJL, ADTypes, ForwardDiff +using OptimizationBase, OptimizationOptimJL, ADTypes, ForwardDiff rosenbrock(x, p) = (1 - x[1])^2 + 100 * (x[2] - x[1]^2)^2 x0 = zeros(2) p = [1.0, 100.0] @@ -336,7 +336,7 @@ the Hessian in order to be appropriate. The Rosenbrock function can be optimized using the `Optim.Newton()` as follows: ```@example Optim4 -using Optimization, OptimizationOptimJL, ADTypes, ModelingToolkit, Symbolics +using OptimizationBase, OptimizationOptimJL, ADTypes, ModelingToolkit, Symbolics rosenbrock(x, p) = (1 - x[1])^2 + 100 * (x[2] - x[1]^2)^2 x0 = zeros(2) p = [1.0, 100.0] @@ -374,7 +374,7 @@ special case when considering conditioning of the Hessian. The Rosenbrock function can be optimized using the `Optim.KrylovTrustRegion()` as follows: ```@example Optim5 -using Optimization, OptimizationOptimJL, ADTypes, ForwardDiff +using OptimizationBase, OptimizationOptimJL, ADTypes, ForwardDiff rosenbrock(x, p) = (1 - x[1])^2 + 100 * (x[2] - x[1]^2)^2 x0 = zeros(2) p = [1.0, 100.0] @@ -400,7 +400,7 @@ box constraints. It works both with and without lower and upper bounds set by `l The Rosenbrock function can be optimized using the `Optim.ParticleSwarm()` as follows: ```@example Optim6 -using Optimization, OptimizationOptimJL +using OptimizationBase, OptimizationOptimJL rosenbrock(x, p) = (p[1] - x[1])^2 + p[2] * (x[2] - x[1]^2)^2 x0 = zeros(2) p = [1.0, 100.0] @@ -432,7 +432,7 @@ box constraints. The Rosenbrock function can be optimized using the `Optim.SAMIN()` as follows: ```@example Optim7 -using Optimization, OptimizationOptimJL, ADTypes, ForwardDiff +using OptimizationBase, OptimizationOptimJL, ADTypes, ForwardDiff rosenbrock(x, p) = (1 - x[1])^2 + 100 * (x[2] - x[1]^2)^2 x0 = zeros(2) p = [1.0, 100.0] diff --git a/docs/src/optimization_packages/polyopt.md b/docs/src/optimization_packages/polyopt.md index adc9d6ea9..a376bb3b2 100644 --- a/docs/src/optimization_packages/polyopt.md +++ b/docs/src/optimization_packages/polyopt.md @@ -22,12 +22,12 @@ OptimizationPolyalgorithms.PolyOpt ``` ```@example polyopt -using Optimization, OptimizationPolyalgorithms, ADTypes, ForwardDiff +using OptimizationBase, OptimizationPolyalgorithms, ADTypes, ForwardDiff rosenbrock(x, p) = (p[1] - x[1])^2 + p[2] * (x[2] - x[1]^2)^2 x0 = zeros(2) _p = [1.0, 100.0] optprob = OptimizationFunction(rosenbrock, ADTypes.AutoForwardDiff()) prob = OptimizationProblem(optprob, x0, _p) -sol = Optimization.solve(prob, PolyOpt(), maxiters = 1000) +sol = OptimizationBase.solve(prob, PolyOpt(), maxiters = 1000) ``` diff --git a/docs/src/optimization_packages/scipy.md b/docs/src/optimization_packages/scipy.md index 12b22ef57..a32e945ea 100644 --- a/docs/src/optimization_packages/scipy.md +++ b/docs/src/optimization_packages/scipy.md @@ -99,7 +99,7 @@ OptimizationSciPy.ScipyBrute ### Unconstrained minimisation ```@example SciPy1 -using Optimization, OptimizationSciPy, ADTypes, Zygote +using OptimizationBase, OptimizationSciPy, ADTypes, Zygote rosenbrock(x, p) = (p[1] - x[1])^2 + p[2] * (x[2] - x[1]^2)^2 x0 = zeros(2) @@ -115,7 +115,7 @@ sol = solve(prob, ScipyBFGS()) ### Constrained optimisation with COBYLA ```@example SciPy2 -using Optimization, OptimizationSciPy +using OptimizationBase, OptimizationSciPy # Objective obj(x, p) = (x[1] + x[2] - 1)^2 @@ -135,7 +135,7 @@ sol = solve(prob, ScipyCOBYLA()) ### Differential evolution (global) with custom options ```@example SciPy3 -using Optimization, OptimizationSciPy, Random, Statistics +using OptimizationBase, OptimizationSciPy, Random, Statistics Random.seed!(123) ackley(x, p) = -20exp(-0.2*sqrt(mean(x .^ 2))) - exp(mean(cos.(2π .* x))) + 20 + ℯ diff --git a/docs/src/optimization_packages/simpleoptimization.md b/docs/src/optimization_packages/simpleoptimization.md index 8940e7a72..b1e2707b3 100644 --- a/docs/src/optimization_packages/simpleoptimization.md +++ b/docs/src/optimization_packages/simpleoptimization.md @@ -26,11 +26,11 @@ SimpleSOAP The Rosenbrock function can be optimized using `SimpleBFGS` as follows: ```@example SimpleOptimization -using SimpleOptimization, Optimization, ForwardDiff +using SimpleOptimization, OptimizationBase, ForwardDiff rosenbrock(x, p) = (1 - x[1])^2 + 100 * (x[2] - x[1]^2)^2 x0 = zeros(2) p = nothing -optf = OptimizationFunction(rosenbrock, Optimization.AutoForwardDiff()) +optf = OptimizationFunction(rosenbrock, OptimizationBase.AutoForwardDiff()) prob = OptimizationProblem(optf, x0, p) sol = solve(prob, SimpleBFGS()) ``` diff --git a/docs/src/optimization_packages/speedmapping.md b/docs/src/optimization_packages/speedmapping.md index 613769744..f2c6b7acc 100644 --- a/docs/src/optimization_packages/speedmapping.md +++ b/docs/src/optimization_packages/speedmapping.md @@ -29,7 +29,7 @@ OptimizationSpeedMapping.SpeedMappingOpt The Rosenbrock function can be optimized using the `SpeedMappingOpt()` with and without bound as follows: ```@example SpeedMapping -using Optimization, OptimizationSpeedMapping, ADTypes, ForwardDiff +using OptimizationBase, OptimizationSpeedMapping, ADTypes, ForwardDiff rosenbrock(x, p) = (p[1] - x[1])^2 + p[2] * (x[2] - x[1]^2)^2 x0 = zeros(2) p = [1.0, 100.0] diff --git a/docs/src/tutorials/minibatch.md b/docs/src/tutorials/minibatch.md index 5aaf8314a..a8a022679 100644 --- a/docs/src/tutorials/minibatch.md +++ b/docs/src/tutorials/minibatch.md @@ -1,6 +1,6 @@ # Data Iterators and Minibatching -It is possible to solve an optimization problem with batches using a `MLUtils.DataLoader`, which is passed to `Optimization.solve` with `ncycles`. All data for the batches need to be passed as a tuple of vectors. +It is possible to solve an optimization problem with batches using a `MLUtils.DataLoader`, which is passed to `OptimizationBase.solve` with `ncycles`. All data for the batches need to be passed as a tuple of vectors. !!! note diff --git a/docs/src/tutorials/reusage_interface.md b/docs/src/tutorials/reusage_interface.md index 92641b17e..4c6064a14 100644 --- a/docs/src/tutorials/reusage_interface.md +++ b/docs/src/tutorials/reusage_interface.md @@ -8,7 +8,7 @@ The `reinit!` function allows you to efficiently reuse an existing optimization ```@example reinit # Create initial problem and cache -using Optimization, OptimizationOptimJL, ADTypes, ForwardDiff +using OptimizationBase, OptimizationOptimJL, ADTypes, ForwardDiff rosenbrock(u, p) = (p[1] - u[1])^2 + p[2] * (u[2] - u[1]^2)^2 u0 = zeros(2) p = [1.0, 100.0] @@ -17,12 +17,12 @@ optf = OptimizationFunction(rosenbrock, ADTypes.AutoForwardDiff()) prob = OptimizationProblem(optf, u0, p) # Initialize cache and solve -cache = Optimization.init(prob, Optim.BFGS()) -sol = Optimization.solve!(cache) +cache = OptimizationBase.init(prob, Optim.BFGS()) +sol = OptimizationBase.solve!(cache) # Reinitialize cache with new parameters -cache = Optimization.reinit!(cache; p = [2.0, 50.0]) -sol2 = Optimization.solve!(cache) +cache = OptimizationBase.reinit!(cache; p = [2.0, 50.0]) +sol2 = OptimizationBase.solve!(cache) ``` ### Supported Arguments @@ -44,12 +44,12 @@ results = [] p_values = [[1.0, 100.0], [2.0, 100.0], [3.0, 100.0]] # Create initial cache -cache = Optimization.init(prob, Optim.BFGS()) +cache = OptimizationBase.init(prob, Optim.BFGS()) function sweep(cache, p_values) for p in p_values - cache = Optimization.reinit!(cache; p = p) - sol = Optimization.solve!(cache) + cache = OptimizationBase.reinit!(cache; p = p) + sol = OptimizationBase.solve!(cache) push!(results, (p = p, u = sol.u, objective = sol.objective)) end end @@ -65,8 +65,8 @@ u0_values = [[0.0, 0.0], [0.5, 0.5], [1.0, 1.0]] for u0 in u0_values local cache - cache = Optimization.reinit!(cache; u0 = u0) - sol = Optimization.solve!(cache) + cache = OptimizationBase.reinit!(cache; u0 = u0) + sol = OptimizationBase.solve!(cache) println("Starting from ", u0, " converged to ", sol.u) end ``` From 6788bd34184300e4b6ca41754a480e15b6da2cbb Mon Sep 17 00:00:00 2001 From: ChrisRackauckas-Claude Date: Sat, 1 Aug 2026 17:46:19 -0400 Subject: [PATCH 4/7] docs: stop relying on the SciMLBase binding leaked by @reexport `@reexport using SciMLBase` exported names(SciMLBase), which always contains the symbol SciMLBase itself, so the module binding landed in every namespace that did `using Optimization`. Curating the exports removes it, and the docs were depending on it in two places: - 21 `SciMLBase.OptimizationProblem`/`OptimizationFunction` calls, 18 of them in executed @example blocks, which would throw UndefVarError and fail the build (@example errors are not covered by the existing warnonly list). OptimizationBase exports both names, so drop the qualification. - 5 @docs entries under API/ naming SciMLBase types. No page sets CurrentModule, so Documenter resolves them in Main; make.jl now binds SciMLBase explicitly. rosenbrock.md, linearandinteger.md and ode.md `using SciMLBase` for real and are left as they are. Verified on Julia 1.11: master binds SciMLBase and ADTypes for all four entry-package x solver combinations tested, this branch binds neither. Co-Authored-By: Chris Rackauckas Co-Authored-By: Claude Opus 5 (1M context) Claude-Session: https://claude.ai/code/session_01A9dFnCQK2GVSNTCJP6ZMG2 --- docs/make.jl | 3 +++ docs/src/optimization_packages/blackboxoptim.md | 2 +- .../optimization_packages/cmaevolutionstrategy.md | 2 +- docs/src/optimization_packages/evolutionary.md | 2 +- docs/src/optimization_packages/gcmaes.md | 4 ++-- docs/src/optimization_packages/mathoptinterface.md | 2 +- docs/src/optimization_packages/metaheuristics.md | 2 +- .../multistartoptimization.md | 4 ++-- docs/src/optimization_packages/nlopt.md | 8 ++++---- docs/src/optimization_packages/optim.md | 14 +++++++------- docs/src/optimization_packages/quaddirect.md | 2 +- 11 files changed, 24 insertions(+), 21 deletions(-) diff --git a/docs/make.jl b/docs/make.jl index 39ceb625e..88c60498b 100644 --- a/docs/make.jl +++ b/docs/make.jl @@ -1,4 +1,7 @@ using Documenter, Optimization +# The `@docs` entries under API/ name SciMLBase types directly; nothing re-exports +# the module binding any more, so bind it here rather than relying on that leak. +using SciMLBase using OptimizationAuglag, OptimizationBBO, OptimizationBase using OptimizationCMAEvolutionStrategy, OptimizationGCMAES, OptimizationIpopt using OptimizationLBFGSB, OptimizationMadNLP, OptimizationManopt diff --git a/docs/src/optimization_packages/blackboxoptim.md b/docs/src/optimization_packages/blackboxoptim.md index e8274abc6..c821827b1 100644 --- a/docs/src/optimization_packages/blackboxoptim.md +++ b/docs/src/optimization_packages/blackboxoptim.md @@ -82,7 +82,7 @@ rosenbrock(x, p) = (p[1] - x[1])^2 + p[2] * (x[2] - x[1]^2)^2 x0 = zeros(2) p = [1.0, 100.0] f = OptimizationFunction(rosenbrock) -prob = SciMLBase.OptimizationProblem(f, x0, p, lb = [-1.0, -1.0], ub = [1.0, 1.0]) +prob = OptimizationProblem(f, x0, p, lb = [-1.0, -1.0], ub = [1.0, 1.0]) sol = solve(prob, BBO_adaptive_de_rand_1_bin_radiuslimited(), maxiters = 100000, maxtime = 1000.0) ``` diff --git a/docs/src/optimization_packages/cmaevolutionstrategy.md b/docs/src/optimization_packages/cmaevolutionstrategy.md index 4f267ef9c..797f12bbc 100644 --- a/docs/src/optimization_packages/cmaevolutionstrategy.md +++ b/docs/src/optimization_packages/cmaevolutionstrategy.md @@ -34,6 +34,6 @@ rosenbrock(x, p) = (p[1] - x[1])^2 + p[2] * (x[2] - x[1]^2)^2 x0 = zeros(2) p = [1.0, 100.0] f = OptimizationFunction(rosenbrock) -prob = SciMLBase.OptimizationProblem(f, x0, p, lb = [-1.0, -1.0], ub = [1.0, 1.0]) +prob = OptimizationProblem(f, x0, p, lb = [-1.0, -1.0], ub = [1.0, 1.0]) sol = solve(prob, CMAEvolutionStrategyOpt()) ``` diff --git a/docs/src/optimization_packages/evolutionary.md b/docs/src/optimization_packages/evolutionary.md index b9ebc1ba0..583eb3502 100644 --- a/docs/src/optimization_packages/evolutionary.md +++ b/docs/src/optimization_packages/evolutionary.md @@ -38,6 +38,6 @@ rosenbrock(x, p) = (p[1] - x[1])^2 + p[2] * (x[2] - x[1]^2)^2 x0 = zeros(2) p = [1.0, 100.0] f = OptimizationFunction(rosenbrock) -prob = SciMLBase.OptimizationProblem(f, x0, p, lb = [-1.0, -1.0], ub = [1.0, 1.0]) +prob = OptimizationProblem(f, x0, p, lb = [-1.0, -1.0], ub = [1.0, 1.0]) sol = solve(prob, Evolutionary.CMAES(μ = 40, λ = 100)) ``` diff --git a/docs/src/optimization_packages/gcmaes.md b/docs/src/optimization_packages/gcmaes.md index 65ce00284..eacfdf643 100644 --- a/docs/src/optimization_packages/gcmaes.md +++ b/docs/src/optimization_packages/gcmaes.md @@ -34,7 +34,7 @@ rosenbrock(x, p) = (p[1] - x[1])^2 + p[2] * (x[2] - x[1]^2)^2 x0 = zeros(2) p = [1.0, 100.0] f = OptimizationFunction(rosenbrock) -prob = SciMLBase.OptimizationProblem(f, x0, p, lb = [-1.0, -1.0], ub = [1.0, 1.0]) +prob = OptimizationProblem(f, x0, p, lb = [-1.0, -1.0], ub = [1.0, 1.0]) sol = solve(prob, GCMAESOpt()) ``` @@ -43,6 +43,6 @@ We can also utilize the gradient information of the optimization problem to aid ```@example GCMAES using ADTypes, ForwardDiff f = OptimizationFunction(rosenbrock, ADTypes.AutoForwardDiff()) -prob = SciMLBase.OptimizationProblem(f, x0, p, lb = [-1.0, -1.0], ub = [1.0, 1.0]) +prob = OptimizationProblem(f, x0, p, lb = [-1.0, -1.0], ub = [1.0, 1.0]) sol = solve(prob, GCMAESOpt()) ``` diff --git a/docs/src/optimization_packages/mathoptinterface.md b/docs/src/optimization_packages/mathoptinterface.md index 5d5ac075e..f273cddc3 100644 --- a/docs/src/optimization_packages/mathoptinterface.md +++ b/docs/src/optimization_packages/mathoptinterface.md @@ -75,7 +75,7 @@ x0 = zeros(2) _p = [1.0, 100.0] f = OptimizationFunction(rosenbrock, ADTypes.AutoForwardDiff()) -prob = SciMLBase.OptimizationProblem(f, x0, _p) +prob = OptimizationProblem(f, x0, _p) opt = OptimizationMOI.MOI.OptimizerWithAttributes(Juniper.Optimizer, "nl_solver" => OptimizationMOI.MOI.OptimizerWithAttributes(Ipopt.Optimizer, diff --git a/docs/src/optimization_packages/metaheuristics.md b/docs/src/optimization_packages/metaheuristics.md index b27f8b3d9..22d3ad1f0 100644 --- a/docs/src/optimization_packages/metaheuristics.md +++ b/docs/src/optimization_packages/metaheuristics.md @@ -57,7 +57,7 @@ rosenbrock(x, p) = (p[1] - x[1])^2 + p[2] * (x[2] - x[1]^2)^2 x0 = zeros(2) p = [1.0, 100.0] f = OptimizationFunction(rosenbrock) -prob = SciMLBase.OptimizationProblem(f, x0, p, lb = [-1.0, -1.0], ub = [1.0, 1.0]) +prob = OptimizationProblem(f, x0, p, lb = [-1.0, -1.0], ub = [1.0, 1.0]) sol = solve(prob, ECA(), maxiters = 100000, maxtime = 1000.0) ``` diff --git a/docs/src/optimization_packages/multistartoptimization.md b/docs/src/optimization_packages/multistartoptimization.md index 94f0d5a19..b6a43f364 100644 --- a/docs/src/optimization_packages/multistartoptimization.md +++ b/docs/src/optimization_packages/multistartoptimization.md @@ -37,7 +37,7 @@ rosenbrock(x, p) = (p[1] - x[1])^2 + p[2] * (x[2] - x[1]^2)^2 x0 = zeros(2) p = [1.0, 100.0] f = OptimizationFunction(rosenbrock, ADTypes.AutoForwardDiff()) -prob = SciMLBase.OptimizationProblem(f, x0, p, lb = [-1.0, -1.0], ub = [1.0, 1.0]) +prob = OptimizationProblem(f, x0, p, lb = [-1.0, -1.0], ub = [1.0, 1.0]) sol = solve(prob, MultistartOptimization.TikTak(100), NLopt.LD_LBFGS()) ``` @@ -46,6 +46,6 @@ You can use any `Optimization` optimizers you like. The global method of the `Mu ```julia using OptimizationOptimJL f = OptimizationFunction(rosenbrock, ADTypes.AutoForwardDiff()) -prob = SciMLBase.OptimizationProblem(f, x0, p, lb = [-1.0, -1.0], ub = [1.0, 1.0]) +prob = OptimizationProblem(f, x0, p, lb = [-1.0, -1.0], ub = [1.0, 1.0]) sol = solve(prob, MultistartOptimization.TikTak(100), LBFGS(), maxiters = 5) ``` diff --git a/docs/src/optimization_packages/nlopt.md b/docs/src/optimization_packages/nlopt.md index edb0fe8e2..ad5a8720f 100644 --- a/docs/src/optimization_packages/nlopt.md +++ b/docs/src/optimization_packages/nlopt.md @@ -99,7 +99,7 @@ rosenbrock(x, p) = (p[1] - x[1])^2 + p[2] * (x[2] - x[1]^2)^2 x0 = zeros(2) p = [1.0, 100.0] f = OptimizationFunction(rosenbrock) -prob = SciMLBase.OptimizationProblem(f, x0, p, lb = [-1.0, -1.0], ub = [1.0, 1.0]) +prob = OptimizationProblem(f, x0, p, lb = [-1.0, -1.0], ub = [1.0, 1.0]) sol = solve(prob, NLopt.LN_NELDERMEAD()) ``` @@ -131,7 +131,7 @@ rosenbrock(x, p) = (p[1] - x[1])^2 + p[2] * (x[2] - x[1]^2)^2 x0 = zeros(2) p = [1.0, 100.0] f = OptimizationFunction(rosenbrock, ADTypes.AutoForwardDiff()) -prob = SciMLBase.OptimizationProblem(f, x0, p, lb = [-1.0, -1.0], ub = [1.0, 1.0]) +prob = OptimizationProblem(f, x0, p, lb = [-1.0, -1.0], ub = [1.0, 1.0]) sol = solve(prob, NLopt.LD_LBFGS()) ``` @@ -169,7 +169,7 @@ rosenbrock(x, p) = (p[1] - x[1])^2 + p[2] * (x[2] - x[1]^2)^2 x0 = zeros(2) p = [1.0, 100.0] f = OptimizationFunction(rosenbrock) -prob = SciMLBase.OptimizationProblem(f, x0, p, lb = [-1.0, -1.0], ub = [1.0, 1.0]) +prob = OptimizationProblem(f, x0, p, lb = [-1.0, -1.0], ub = [1.0, 1.0]) sol = solve(prob, NLopt.GN_DIRECT(), maxtime = 10.0) ``` @@ -185,7 +185,7 @@ rosenbrock(x, p) = (p[1] - x[1])^2 + p[2] * (x[2] - x[1]^2)^2 x0 = zeros(2) p = [1.0, 100.0] f = OptimizationFunction(rosenbrock, ADTypes.AutoForwardDiff()) -prob = SciMLBase.OptimizationProblem(f, x0, p, lb = [-1.0, -1.0], ub = [1.0, 1.0]) +prob = OptimizationProblem(f, x0, p, lb = [-1.0, -1.0], ub = [1.0, 1.0]) sol = solve(prob, NLopt.G_MLSL_LDS(), local_method = NLopt.LD_LBFGS(), maxtime = 10.0, local_maxiters = 10) ``` diff --git a/docs/src/optimization_packages/optim.md b/docs/src/optimization_packages/optim.md index 54c7e36be..879610857 100644 --- a/docs/src/optimization_packages/optim.md +++ b/docs/src/optimization_packages/optim.md @@ -75,7 +75,7 @@ cons = (res, x, p) -> res .= [x[1]^2 + x[2]^2] x0 = zeros(2) p = [1.0, 100.0] prob = OptimizationFunction(rosenbrock, ADTypes.AutoForwardDiff(); cons = cons) -prob = SciMLBase.OptimizationProblem(prob, x0, p, lcons = [-5.0], ucons = [10.0]) +prob = OptimizationProblem(prob, x0, p, lcons = [-5.0], ucons = [10.0]) sol = solve(prob, IPNewton()) ``` @@ -119,7 +119,7 @@ using OptimizationBase, OptimizationOptimJL rosenbrock(x, p) = (1 - x[1])^2 + 100 * (x[2] - x[1]^2)^2 x0 = zeros(2) p = [1.0, 100.0] -prob = SciMLBase.OptimizationProblem(rosenbrock, x0, p) +prob = OptimizationProblem(rosenbrock, x0, p) sol = solve(prob, Optim.NelderMead()) ``` @@ -280,7 +280,7 @@ rosenbrock(x, p) = (1 - x[1])^2 + 100 * (x[2] - x[1]^2)^2 x0 = zeros(2) p = [1.0, 100.0] optprob = OptimizationFunction(rosenbrock, ADTypes.AutoForwardDiff()) -prob = SciMLBase.OptimizationProblem(optprob, x0, p, lb = [-1.0, -1.0], ub = [0.8, 0.8]) +prob = OptimizationProblem(optprob, x0, p, lb = [-1.0, -1.0], ub = [0.8, 0.8]) sol = solve(prob, Optim.LBFGS()) ``` @@ -341,7 +341,7 @@ rosenbrock(x, p) = (1 - x[1])^2 + 100 * (x[2] - x[1]^2)^2 x0 = zeros(2) p = [1.0, 100.0] f = OptimizationFunction(rosenbrock, ADTypes.AutoSymbolics()) -prob = SciMLBase.OptimizationProblem(f, x0, p) +prob = OptimizationProblem(f, x0, p) sol = solve(prob, Optim.Newton()) ``` @@ -379,7 +379,7 @@ rosenbrock(x, p) = (1 - x[1])^2 + 100 * (x[2] - x[1]^2)^2 x0 = zeros(2) p = [1.0, 100.0] optprob = OptimizationFunction(rosenbrock, ADTypes.AutoForwardDiff()) -prob = SciMLBase.OptimizationProblem(optprob, x0, p) +prob = OptimizationProblem(optprob, x0, p) sol = solve(prob, Optim.KrylovTrustRegion()) ``` @@ -405,7 +405,7 @@ rosenbrock(x, p) = (p[1] - x[1])^2 + p[2] * (x[2] - x[1]^2)^2 x0 = zeros(2) p = [1.0, 100.0] f = OptimizationFunction(rosenbrock) -prob = SciMLBase.OptimizationProblem(f, x0, p, lb = [-1.0, -1.0], ub = [1.0, 1.0]) +prob = OptimizationProblem(f, x0, p, lb = [-1.0, -1.0], ub = [1.0, 1.0]) sol = solve(prob, Optim.ParticleSwarm(lower = prob.lb, upper = prob.ub, n_particles = 100)) ``` @@ -437,6 +437,6 @@ rosenbrock(x, p) = (1 - x[1])^2 + 100 * (x[2] - x[1]^2)^2 x0 = zeros(2) p = [1.0, 100.0] f = OptimizationFunction(rosenbrock, ADTypes.AutoForwardDiff()) -prob = SciMLBase.OptimizationProblem(f, x0, p, lb = [-1.0, -1.0], ub = [1.0, 1.0]) +prob = OptimizationProblem(f, x0, p, lb = [-1.0, -1.0], ub = [1.0, 1.0]) sol = solve(prob, Optim.SAMIN()) ``` diff --git a/docs/src/optimization_packages/quaddirect.md b/docs/src/optimization_packages/quaddirect.md index 1bbd674fa..06ae11018 100644 --- a/docs/src/optimization_packages/quaddirect.md +++ b/docs/src/optimization_packages/quaddirect.md @@ -44,6 +44,6 @@ rosenbrock(x, p) = (p[1] - x[1])^2 + p[2] * (x[2] - x[1]^2)^2 x0 = zeros(2) p = [1.0, 100.0] f = OptimizationFunction(rosenbrock) -prob = SciMLBase.OptimizationProblem(f, x0, p, lb = [-1.0, -1.0], ub = [1.0, 1.0]) +prob = OptimizationProblem(f, x0, p, lb = [-1.0, -1.0], ub = [1.0, 1.0]) solve(prob, QuadDirect(), splits = ([-0.9, 0, 0.9], [-0.8, 0, 0.8])) ``` From 287b501e9b174de64a5d5fd9944b8af06fc2d7bb Mon Sep 17 00:00:00 2001 From: ChrisRackauckas-Claude Date: Sat, 1 Aug 2026 21:00:49 -0400 Subject: [PATCH 5/7] docs: say which of Optimization/OptimizationBase to install MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Every example now loads OptimizationBase, so README and the index install instructions pointed at a package the docs never use. Both now lead with OptimizationBase, and index.md gains a short section on the relationship. `Optimization` re-exports OptimizationBase and adds nothing else — it pulls in Logging/ConsoleProgressMonitor/TerminalLoggers/LoggingExtras but never references them — so the new text says the two are interchangeable rather than inventing a distinction between them. Co-Authored-By: Chris Rackauckas Co-Authored-By: Claude Opus 5 (1M context) Claude-Session: https://claude.ai/code/session_01A9dFnCQK2GVSNTCJP6ZMG2 --- README.md | 6 +++--- docs/src/index.md | 14 ++++++++++++++ 2 files changed, 17 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index a22306871..3b0eed353 100644 --- a/README.md +++ b/README.md @@ -22,11 +22,11 @@ unified interface. ## Installation Assuming that you already have Julia correctly installed, it suffices to import -Optimization.jl in the standard way: +OptimizationBase in the standard way: ```julia using Pkg -Pkg.add("Optimization") +Pkg.add("OptimizationBase") ``` The packages relevant to the core functionality of Optimization.jl will be imported @@ -71,7 +71,7 @@ the documentation, which contains the unreleased features. ## Examples ```julia -using Optimization +using OptimizationBase rosenbrock(x, p) = (p[1] - x[1])^2 + p[2] * (x[2] - x[1]^2)^2 x0 = zeros(2) p = [1.0, 100.0] diff --git a/docs/src/index.md b/docs/src/index.md index b4569751b..7d3fa0771 100644 --- a/docs/src/index.md +++ b/docs/src/index.md @@ -36,6 +36,20 @@ Optimization.jl is simply a bundle/interface over many of these dependencies. It may add some optional higher level behavior in the future but at this time the top level package does not add any extra behavior. +### `Optimization` or `OptimizationBase`? + +`OptimizationBase` defines the interface — `OptimizationProblem`, +`OptimizationFunction`, `solve` — and is what every solver package depends on, +so it is what the examples throughout this documentation load: + +```julia +Pkg.add("OptimizationBase") +``` + +`Optimization` re-exports that same interface and nothing else, so the two are +interchangeable for everything shown here. Install whichever you prefer; you +need only one of them, alongside a solver package. + ## Contributing - Please refer to the From 96bd3a8a59b15154d2a94ae5eaed33cbb0079a76 Mon Sep 17 00:00:00 2001 From: ChrisRackauckas-Claude Date: Sat, 1 Aug 2026 21:07:05 -0400 Subject: [PATCH 6/7] OptimizationBase: drop the now-stale Reexport dependency Removing every `@reexport` from OptimizationBase left Reexport in [deps] and [compat] with no user, which fails Aqua's stale-dependency check. The reexport check itself already passed; this is the leftover. QA on OptimizationBase: 19 pass / 1 fail / 1 broken before, 20 pass / 1 broken after. The remaining broken is `ei_broken = (:no_implicit_imports,)`, which is already on master. Co-Authored-By: Chris Rackauckas Co-Authored-By: Claude Opus 5 (1M context) Claude-Session: https://claude.ai/code/session_01A9dFnCQK2GVSNTCJP6ZMG2 --- lib/OptimizationBase/Project.toml | 2 -- 1 file changed, 2 deletions(-) diff --git a/lib/OptimizationBase/Project.toml b/lib/OptimizationBase/Project.toml index 6e78bc44a..e34410fe8 100644 --- a/lib/OptimizationBase/Project.toml +++ b/lib/OptimizationBase/Project.toml @@ -11,7 +11,6 @@ DocStringExtensions = "ffbed154-4ef7-542d-bbb7-c09d3a79fcae" FastClosures = "9aa1b823-49e4-5ca5-8b0f-3971ec8bab6a" LinearAlgebra = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e" PrecompileTools = "aea7be01-6a6a-4083-8856-8a6e6704d82a" -Reexport = "189a3867-3050-52da-a836-e630ba90ab69" SciMLBase = "0bca4576-84f4-4d90-8ffe-ffa030f20462" SciMLLogging = "a6db7da4-7206-11f0-1eab-35f2a5dbe1d1" SparseArrays = "2f01184e-e22b-5df5-ae63-d93ebab69eaf" @@ -58,7 +57,6 @@ MLDataDevices = "1" MLUtils = "0.4" Mooncake = "0.4.138, 0.5" PrecompileTools = "1" -Reexport = "1.2" ReverseDiff = "1.14" SafeTestsets = ">= 0.0.1" SciMLBase = "2.122.1, 3" From 5ec6b71ac07344d4f1e9e7adccba6765c9a350e3 Mon Sep 17 00:00:00 2001 From: ChrisRackauckas-Claude Date: Sat, 1 Aug 2026 21:31:45 -0400 Subject: [PATCH 7/7] OptimizationLBFGSB: drop the now-stale OptimizationFunction import MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit `using SciMLBase: OptimizationStats, OptimizationFunction` predates this branch, but on master `@reexport using OptimizationBase` re-exported every name in names(OptimizationBase), OptimizationFunction among them — and exporting a name counts as using it, so the import was not stale. Removing the reexport orphans it, and ExplicitImports' no_stale_explicit_imports errors. The name is used nowhere else in the package. QA on OptimizationLBFGSB, Julia 1.11: master: 18 pass, 2 fail (JET + reexports), 1 broken before: 19 pass, 1 fail (JET), 1 error (stale import), 1 broken after: 19 pass, 1 fail (JET), 1 broken The remaining JET failure is byte-identical to master's (same 9 toplevel errors, from the LBFGSB struct colliding with the LBFGSB package binding) and is already tracked as a follow-up. Co-Authored-By: Chris Rackauckas Co-Authored-By: Claude Opus 5 (1M context) Claude-Session: https://claude.ai/code/session_01A9dFnCQK2GVSNTCJP6ZMG2 --- lib/OptimizationLBFGSB/src/OptimizationLBFGSB.jl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/OptimizationLBFGSB/src/OptimizationLBFGSB.jl b/lib/OptimizationLBFGSB/src/OptimizationLBFGSB.jl index df884592d..8dd2164e5 100644 --- a/lib/OptimizationLBFGSB/src/OptimizationLBFGSB.jl +++ b/lib/OptimizationLBFGSB/src/OptimizationLBFGSB.jl @@ -8,7 +8,7 @@ import SciMLBase using SciMLLogging: @SciMLMessage using DocStringExtensions import LBFGSB as LBFGSBJL -using SciMLBase: OptimizationStats, OptimizationFunction +using SciMLBase: OptimizationStats using SciMLBase: ReturnCode using OptimizationBase.LinearAlgebra: norm using OptimizationBase: deduce_retcode