Skip to content
Merged
8 changes: 4 additions & 4 deletions Project.toml
Original file line number Diff line number Diff line change
@@ -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"
Expand Down Expand Up @@ -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"
Expand Down
56 changes: 28 additions & 28 deletions docs/Project.toml
Original file line number Diff line number Diff line change
Expand Up @@ -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"
2 changes: 1 addition & 1 deletion docs/src/optimization_packages/pycma.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ OptimizationPyCMA.PyCMAOpt
## Example

```@example PyCMA
using OptimizationPyCMA
using Optimization, OptimizationPyCMA

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should users have this or OptimizationBase?

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I guess OptimizationBase

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done in a37c8f4 — the example is now using OptimizationBase, OptimizationPyCMA.

Verified locally on Julia 1.11 (fresh env, both packages deved from this branch): the block runs to ReturnCode.Success with sol.u = [0.8, 0.64], sol.objective = 0.04.

For the record, my PR description was wrong to call Optimization "the documented pattern on every doc page but one" — getting_started.md, lbfgsb.md, prima.md, sophia.md and the first ipopt.md example already use OptimizationBase. The docs are split roughly 30 Optimization / 6 OptimizationBase, with the front door (getting_started.md) on OptimizationBase. Harmonizing the remaining pages is a separate PR if you want it — say the word.


rosenbrock(x, p) = (p[1] - x[1])^2 + p[2] * (x[2] - x[1]^2)^2
x0 = zeros(2)
Expand Down
6 changes: 3 additions & 3 deletions lib/OptimizationAuglag/Project.toml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
name = "OptimizationAuglag"
uuid = "2ea93f80-9333-43a1-a68d-1f53b957a421"
authors = ["paramthakkar123 <paramthakkar864@gmail.com>", "Sebastian Micluța-Câmpeanu <sebastian.mc95@proton.me>"]
version = "2.0.2"
version = "3.0.0"

[deps]
LinearAlgebra = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e"
Expand Down Expand Up @@ -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"
Expand Down
4 changes: 3 additions & 1 deletion lib/OptimizationAuglag/src/OptimizationAuglag.jl
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down
4 changes: 2 additions & 2 deletions lib/OptimizationAuglag/test/qa/Project.toml
Original file line number Diff line number Diff line change
Expand Up @@ -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"
12 changes: 7 additions & 5 deletions lib/OptimizationBBO/Project.toml
Original file line number Diff line number Diff line change
@@ -1,12 +1,13 @@
name = "OptimizationBBO"
uuid = "3e6eede4-6085-4f62-9a71-46d9bc1eb92b"
authors = ["Vaibhav Dixit <vaibhavyashdixit@gmail.com> 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"
Expand All @@ -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"]
5 changes: 4 additions & 1 deletion lib/OptimizationBBO/src/OptimizationBBO.jl
Original file line number Diff line number Diff line change
@@ -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
Expand Down
4 changes: 2 additions & 2 deletions lib/OptimizationBBO/test/qa/Project.toml
Original file line number Diff line number Diff line change
Expand Up @@ -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"
2 changes: 1 addition & 1 deletion lib/OptimizationBase/Project.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
name = "OptimizationBase"
uuid = "bca83a33-5cc9-4baa-983d-23429ab6bcbb"
version = "5.2.4"
version = "6.0.0"
authors = ["Vaibhav Dixit <vaibhavyashdixit@gmail.com> and contributors"]

[deps]
Expand Down
17 changes: 15 additions & 2 deletions lib/OptimizationBase/src/OptimizationBase.jl
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand Down Expand Up @@ -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
6 changes: 3 additions & 3 deletions lib/OptimizationBase/test/AD/Project.toml
Original file line number Diff line number Diff line change
Expand Up @@ -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"
Expand Down
1 change: 1 addition & 0 deletions lib/OptimizationBase/test/matrixvalued.jl
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
using OptimizationBase, LinearAlgebra, ForwardDiff, Zygote, FiniteDiff,
DifferentiationInterface, SparseConnectivityTracer
using Test, ReverseDiff
import ADTypes

@testset "Matrix Valued" begin
for adtype in [
Expand Down
2 changes: 1 addition & 1 deletion lib/OptimizationBase/test/qa/Project.toml
Original file line number Diff line number Diff line change
Expand Up @@ -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"
1 change: 1 addition & 0 deletions lib/OptimizationBase/test/qa/qa.jl
Original file line number Diff line number Diff line change
Expand Up @@ -55,4 +55,5 @@ run_qa(
),
),
ei_broken = (:no_implicit_imports,),
reexports_allow = OPTIMIZATION_CURATED_REEXPORTS,
)
18 changes: 10 additions & 8 deletions lib/OptimizationCMAEvolutionStrategy/Project.toml
Original file line number Diff line number Diff line change
@@ -1,12 +1,13 @@
name = "OptimizationCMAEvolutionStrategy"
uuid = "bd407f91-200f-4536-9381-e4ba712f53f8"
authors = ["Vaibhav Dixit <vaibhavyashdixit@gmail.com> 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"
Expand All @@ -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"]
Original file line number Diff line number Diff line change
@@ -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

Expand Down
1 change: 1 addition & 0 deletions lib/OptimizationCMAEvolutionStrategy/test/core_tests.jl
Original file line number Diff line number Diff line change
@@ -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
Expand Down
4 changes: 2 additions & 2 deletions lib/OptimizationCMAEvolutionStrategy/test/qa/Project.toml
Original file line number Diff line number Diff line change
Expand Up @@ -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"
4 changes: 2 additions & 2 deletions lib/OptimizationEvolutionary/Project.toml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
name = "OptimizationEvolutionary"
uuid = "cb963754-43f6-435e-8d4b-99009ff27753"
authors = ["Vaibhav Dixit <vaibhavyashdixit@gmail.com> and contributors"]
version = "0.4.11"
version = "0.5.0"
[deps]
OptimizationBase = "bca83a33-5cc9-4baa-983d-23429ab6bcbb"
Evolutionary = "86b6b26d-c046-49b6-aa0b-5f0f74682bd6"
Expand All @@ -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"
Expand Down
5 changes: 4 additions & 1 deletion lib/OptimizationEvolutionary/src/OptimizationEvolutionary.jl
Original file line number Diff line number Diff line change
@@ -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
Expand Down
Loading
Loading