Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion lib/OptimizationAuglag/test/qa/Project.toml
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
Aqua = "4c88cf16-eb10-579e-8560-4a9242c79595"
JET = "c3a54625-cd67-489e-a8e7-0a5a0ff4e31b"
OptimizationAuglag = "2ea93f80-9333-43a1-a68d-1f53b957a421"
SciMLTesting = "09d9d899-5365-40a9-917a-5f67fddea283"
Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40"

[sources]
Expand All @@ -10,6 +11,7 @@ OptimizationAuglag = {path = "../.."}
[compat]
Aqua = "0.8"
JET = "0.9, 0.10, 0.11"
julia = "1.10"
OptimizationAuglag = "2"
SciMLTesting = "1.6"
Test = "1"
julia = "1.10"
35 changes: 23 additions & 12 deletions lib/OptimizationAuglag/test/qa/qa.jl
Original file line number Diff line number Diff line change
@@ -1,14 +1,25 @@
using OptimizationAuglag, Aqua, JET
using SciMLTesting, OptimizationAuglag, JET
using Test

@testset "Aqua" begin
# OptimizationOptimisers is used in tests as the inner solver, not in src.
Aqua.test_all(
OptimizationAuglag;
stale_deps = (; ignore = [:OptimizationOptimisers])
)
end

@testset "JET static analysis" begin
JET.test_package(OptimizationAuglag; target_defined_modules = true)
end
# ExplicitImports findings, all tracked against SciML/Optimization.jl:
# * no_implicit_imports broken: the module relies on `@reexport`/`using`
# module names (SciMLBase/OptimizationBase/Reexport/...) that cannot be made
# explicit without restructuring.
# * the ignored *_are_public / *_via_owners names are owned by SciMLBase,
# OptimizationBase, the backend, or Base and are not (yet) declared public;
# the proper fix is upstream `public` declarations, not a local change.
# * the ignored stale imports are part of the intentionally re-surfaced API.
run_qa(
OptimizationAuglag;
explicit_imports = true,
aqua_kwargs = (;
# OptimizationOptimisers is used in tests as the inner solver, not in src.
stale_deps = (; ignore = [:OptimizationOptimisers]),
),
ei_kwargs = (;
no_stale_explicit_imports = (; ignore = (:norm,)),
all_qualified_accesses_are_public = (; ignore = (:OptimizationState, :__solve, :_check_and_convert_maxiters, :allowscallback, :allowsfg, :isa_dataiterator, :requiresconsjac, :requiresgradient)),
all_explicit_imports_are_public = (; ignore = (:OptimizationStats,)),
),
ei_broken = (:no_implicit_imports,),
)
4 changes: 3 additions & 1 deletion lib/OptimizationBBO/test/qa/Project.toml
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
Aqua = "4c88cf16-eb10-579e-8560-4a9242c79595"
JET = "c3a54625-cd67-489e-a8e7-0a5a0ff4e31b"
OptimizationBBO = "3e6eede4-6085-4f62-9a71-46d9bc1eb92b"
SciMLTesting = "09d9d899-5365-40a9-917a-5f67fddea283"
Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40"

[sources]
Expand All @@ -10,6 +11,7 @@ OptimizationBBO = {path = "../.."}
[compat]
Aqua = "0.8"
JET = "0.9, 0.10, 0.11"
julia = "1.10"
OptimizationBBO = "0.4"
SciMLTesting = "1.6"
Test = "1"
julia = "1.10"
25 changes: 17 additions & 8 deletions lib/OptimizationBBO/test/qa/qa.jl
Original file line number Diff line number Diff line change
@@ -1,10 +1,19 @@
using OptimizationBBO, Aqua, JET
using SciMLTesting, OptimizationBBO, JET
using Test

@testset "Aqua" begin
Aqua.test_all(OptimizationBBO)
end

@testset "JET static analysis" begin
JET.test_package(OptimizationBBO; target_defined_modules = true)
end
# ExplicitImports findings, all tracked against SciML/Optimization.jl:
# * no_implicit_imports broken: the module relies on `@reexport`/`using`
# module names (SciMLBase/OptimizationBase/Reexport/...) that cannot be made
# explicit without restructuring.
# * the ignored *_are_public / *_via_owners names are owned by SciMLBase,
# OptimizationBase, the backend, or Base and are not (yet) declared public;
# the proper fix is upstream `public` declarations, not a local change.
run_qa(
OptimizationBBO;
explicit_imports = true,
ei_kwargs = (;
all_qualified_accesses_via_owners = (; ignore = (:OptimizationStats,)),
all_qualified_accesses_are_public = (; ignore = (Symbol("@logmsg"), :LogLevel, :OptRunController, :OptimizationState, :OptimizationStats, :SingleObjectiveMethodNames, :__solve, :_check_and_convert_maxiters, :_check_and_convert_maxtime, :allowscallback, :deduce_retcode, :elapsed_time, :num_steps, :requiresbounds, :shutdown_optimizer!)),
),
ei_broken = (:no_implicit_imports,),
)
4 changes: 3 additions & 1 deletion lib/OptimizationBase/test/qa/Project.toml
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
Aqua = "4c88cf16-eb10-579e-8560-4a9242c79595"
JET = "c3a54625-cd67-489e-a8e7-0a5a0ff4e31b"
OptimizationBase = "bca83a33-5cc9-4baa-983d-23429ab6bcbb"
SciMLTesting = "09d9d899-5365-40a9-917a-5f67fddea283"
Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40"

[sources]
Expand All @@ -10,6 +11,7 @@ OptimizationBase = {path = "../.."}
[compat]
Aqua = "0.8"
JET = "0.9, 0.10, 0.11"
julia = "1.10"
OptimizationBase = "5"
SciMLTesting = "1.6"
Test = "1"
julia = "1.10"
52 changes: 34 additions & 18 deletions lib/OptimizationBase/test/qa/qa.jl
Original file line number Diff line number Diff line change
@@ -1,21 +1,37 @@
using OptimizationBase, Aqua, JET
using SciMLTesting, OptimizationBase, JET
using Test

@testset "Aqua" begin
# OptimizationBase defines the Optimization solve interface itself, so it
# extends SciMLBase's __init/__solve and CommonSolve's init/solve/solve! (the
# latter reexported through SciMLBase) on SciMLBase.OptimizationProblem /
# AbstractOptimizationCache. Those are our *own* interface functions, so mark
# them as own for the piracy check rather than flagging the SciML types.
SB = OptimizationBase.SciMLBase
Aqua.test_all(
OptimizationBase;
piracies = (
# ExplicitImports findings, all tracked against SciML/Optimization.jl:
# * no_implicit_imports broken: the module relies on `@reexport`/`using`
# module names (SciMLBase/OptimizationBase/Reexport/...) that cannot be made
# explicit without restructuring.
# * the ignored *_are_public / *_via_owners names are owned by SciMLBase,
# OptimizationBase, the backend, or Base and are not (yet) declared public;
# the proper fix is upstream `public` declarations, not a local change.
# * the ignored stale imports are part of the intentionally re-surfaced API.
# OptimizationBase defines the Optimization solve interface itself, so it
# extends SciMLBase's __init/__solve and CommonSolve's init/solve/solve! (the
# latter reexported through SciMLBase) on SciMLBase.OptimizationProblem /
# AbstractOptimizationCache. Those are our *own* interface functions, so mark
# them as own for the piracy check rather than flagging the SciML types.
SB = OptimizationBase.SciMLBase
run_qa(
OptimizationBase;
explicit_imports = true,
aqua_kwargs = (;
piracies = (;
treat_as_own = [SB.__init, SB.__solve, SB.init, SB.solve, SB.solve!],
)
)
end

@testset "JET static analysis" begin
JET.test_package(OptimizationBase; target_defined_modules = true)
end
),
),
ei_kwargs = (;
no_stale_explicit_imports = (; ignore = (:I, :OptimizationStats, :extract_alg)),
all_qualified_accesses_via_owners = (; ignore = (:IsInfinite, :IteratorSize, :SizeUnknown)),
# Names imported/accessed from SciMLBase (plus Base.Iterators and
# SparseConnectivityTracer's AbstractTracer) that remain non-public in their
# source pkg on the registered releases (SciMLBase 3.27.0). The fix belongs
# upstream via `public` declarations there, not a local change.
all_qualified_accesses_are_public = (; ignore = (:AbstractOptimizationCache, :AbstractOptimizationFunction, :AbstractOptimizationSolution, :AbstractTracer, :ChainRulesOriginator, :IsInfinite, :IteratorSize, :MaxSense, :MinSense, :NoAD, :NonConcreteEltypeError, :SizeUnknown, :__init, :allowsconsjvp, :allowsconsvjp, :allowsfg, :allowsfgh, :requiresconshess, :requiresconsjac, :requiresgradient, :requireshessian, :requireslagh)),
all_explicit_imports_are_public = (; ignore = (:KeywordArgError, :MaxSense, :MinSense, :ObjSense, :OptimizationStats, :__init, :__solve, :_concrete_solve_adjoint, :_concrete_solve_forward, :allowscallback, :extract_alg, :get_concrete_p, :get_concrete_u0, :get_root_indp, :get_updated_symbolic_problem, :has_kwargs, :promote_u0, :requiresbounds, :requiresconshess, :requiresconsjac, :requiresconstraints, :requiresgradient, :requireshessian, :wrap_sol)),
),
ei_broken = (:no_implicit_imports,),
)
4 changes: 3 additions & 1 deletion lib/OptimizationCMAEvolutionStrategy/test/qa/Project.toml
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
Aqua = "4c88cf16-eb10-579e-8560-4a9242c79595"
JET = "c3a54625-cd67-489e-a8e7-0a5a0ff4e31b"
OptimizationCMAEvolutionStrategy = "bd407f91-200f-4536-9381-e4ba712f53f8"
SciMLTesting = "09d9d899-5365-40a9-917a-5f67fddea283"
Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40"

[sources]
Expand All @@ -10,6 +11,7 @@ OptimizationCMAEvolutionStrategy = {path = "../.."}
[compat]
Aqua = "0.8"
JET = "0.9, 0.10, 0.11"
julia = "1.10"
OptimizationCMAEvolutionStrategy = "0.3"
SciMLTesting = "1.6"
Test = "1"
julia = "1.10"
25 changes: 17 additions & 8 deletions lib/OptimizationCMAEvolutionStrategy/test/qa/qa.jl
Original file line number Diff line number Diff line change
@@ -1,10 +1,19 @@
using OptimizationCMAEvolutionStrategy, Aqua, JET
using SciMLTesting, OptimizationCMAEvolutionStrategy, JET
using Test

@testset "Aqua" begin
Aqua.test_all(OptimizationCMAEvolutionStrategy)
end

@testset "JET static analysis" begin
JET.test_package(OptimizationCMAEvolutionStrategy; target_defined_modules = true)
end
# ExplicitImports findings, all tracked against SciML/Optimization.jl:
# * no_implicit_imports broken: the module relies on `@reexport`/`using`
# module names (SciMLBase/OptimizationBase/Reexport/...) that cannot be made
# explicit without restructuring.
# * the ignored *_are_public / *_via_owners names are owned by SciMLBase,
# OptimizationBase, the backend, or Base and are not (yet) declared public;
# the proper fix is upstream `public` declarations, not a local change.
run_qa(
OptimizationCMAEvolutionStrategy;
explicit_imports = true,
ei_kwargs = (;
all_qualified_accesses_via_owners = (; ignore = (:OptimizationStats,)),
all_qualified_accesses_are_public = (; ignore = (:BasicLogger, :OptimizationState, :OptimizationStats, :__solve, :_check_and_convert_maxiters, :_check_and_convert_maxtime, :allowscallback, :requiresconshess, :requiresconsjac, :requiresgradient, :requireshessian)),
),
ei_broken = (:no_implicit_imports,),
)
4 changes: 3 additions & 1 deletion lib/OptimizationEvolutionary/test/qa/Project.toml
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
Aqua = "4c88cf16-eb10-579e-8560-4a9242c79595"
JET = "c3a54625-cd67-489e-a8e7-0a5a0ff4e31b"
OptimizationEvolutionary = "cb963754-43f6-435e-8d4b-99009ff27753"
SciMLTesting = "09d9d899-5365-40a9-917a-5f67fddea283"
Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40"

[sources]
Expand All @@ -10,6 +11,7 @@ OptimizationEvolutionary = {path = "../.."}
[compat]
Aqua = "0.8"
JET = "0.9, 0.10, 0.11"
julia = "1.10"
OptimizationEvolutionary = "0.4"
SciMLTesting = "1.6"
Test = "1"
julia = "1.10"
41 changes: 25 additions & 16 deletions lib/OptimizationEvolutionary/test/qa/qa.jl
Original file line number Diff line number Diff line change
@@ -1,15 +1,23 @@
using OptimizationEvolutionary, Aqua, JET
using SciMLTesting, OptimizationEvolutionary, JET
using Test
using Evolutionary

@testset "Aqua" begin
# SciML trait/interface methods are our own, not piracy — mark them as such.
# The Evolutionary.trace! override IS genuine piracy (changes Evolutionary's
# tracing globally); mark the piracy test broken until it's replaced.
SB = OptimizationEvolutionary.SciMLBase
Aqua.test_all(
OptimizationEvolutionary;
piracies = (
# ExplicitImports findings, all tracked against SciML/Optimization.jl:
# * no_implicit_imports broken: the module relies on `@reexport`/`using`
# module names (SciMLBase/OptimizationBase/Reexport/...) that cannot be made
# explicit without restructuring.
# * the ignored *_are_public / *_via_owners names are owned by SciMLBase,
# OptimizationBase, the backend, or Base and are not (yet) declared public;
# the proper fix is upstream `public` declarations, not a local change.
# SciML trait/interface methods are our own, not piracy — mark them as such.
# The Evolutionary.trace! override IS genuine piracy (changes Evolutionary's
# tracing globally); mark the piracy test broken until it's replaced.
SB = OptimizationEvolutionary.SciMLBase
run_qa(
OptimizationEvolutionary;
explicit_imports = true,
aqua_kwargs = (;
piracies = (;
broken = true,
treat_as_own = [
SB.__solve,
Expand All @@ -22,10 +30,11 @@ using Evolutionary
SB.requiresgradient,
SB.requireshessian,
],
)
)
end

@testset "JET static analysis" begin
JET.test_package(OptimizationEvolutionary; target_defined_modules = true)
end
),
),
ei_kwargs = (;
all_qualified_accesses_via_owners = (; ignore = (:OptimizationStats, :minimum)),
all_qualified_accesses_are_public = (; ignore = (:AbstractOptimizer, :OptimizationState, :OptimizationStats, :OptimizationTrace, :OptimizationTraceRecord, :Options, :__solve, :_check_and_convert_maxiters, :_check_and_convert_maxtime, :allowscallback, :converged, :minimizer, :minimum, :optimize, :requiresconshess, :requiresconsjac, :requiresgradient, :requireshessian, :trace!, :update!)),
),
ei_broken = (:no_implicit_imports,),
)
4 changes: 3 additions & 1 deletion lib/OptimizationGCMAES/test/qa/Project.toml
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
Aqua = "4c88cf16-eb10-579e-8560-4a9242c79595"
JET = "c3a54625-cd67-489e-a8e7-0a5a0ff4e31b"
OptimizationGCMAES = "6f0a0517-dbc2-4a7a-8a20-99ae7f27e911"
SciMLTesting = "09d9d899-5365-40a9-917a-5f67fddea283"
Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40"

[sources]
Expand All @@ -10,6 +11,7 @@ OptimizationGCMAES = {path = "../.."}
[compat]
Aqua = "0.8"
JET = "0.9, 0.10, 0.11"
julia = "1.10"
OptimizationGCMAES = "0.3"
SciMLTesting = "1.6"
Test = "1"
julia = "1.10"
25 changes: 17 additions & 8 deletions lib/OptimizationGCMAES/test/qa/qa.jl
Original file line number Diff line number Diff line change
@@ -1,10 +1,19 @@
using OptimizationGCMAES, Aqua, JET
using SciMLTesting, OptimizationGCMAES, JET
using Test

@testset "Aqua" begin
Aqua.test_all(OptimizationGCMAES)
end

@testset "JET static analysis" begin
JET.test_package(OptimizationGCMAES; target_defined_modules = true)
end
# ExplicitImports findings, all tracked against SciML/Optimization.jl:
# * no_implicit_imports broken: the module relies on `@reexport`/`using`
# module names (SciMLBase/OptimizationBase/Reexport/...) that cannot be made
# explicit without restructuring.
# * the ignored *_are_public / *_via_owners names are owned by SciMLBase,
# OptimizationBase, the backend, or Base and are not (yet) declared public;
# the proper fix is upstream `public` declarations, not a local change.
run_qa(
OptimizationGCMAES;
explicit_imports = true,
ei_kwargs = (;
all_qualified_accesses_via_owners = (; ignore = (:OptimizationStats,)),
all_qualified_accesses_are_public = (; ignore = (:OptimizationStats, :__init, :__solve, :_check_and_convert_maxiters, :_check_and_convert_maxtime, :allowscallback, :maximize, :minimize, :requiresbounds, :requiresconshess, :requiresconsjac, :requiresgradient, :requireshessian, :supports_sense)),
),
ei_broken = (:no_implicit_imports,),
)
4 changes: 3 additions & 1 deletion lib/OptimizationIpopt/test/qa/Project.toml
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
Aqua = "4c88cf16-eb10-579e-8560-4a9242c79595"
JET = "c3a54625-cd67-489e-a8e7-0a5a0ff4e31b"
OptimizationIpopt = "43fad042-7963-4b32-ab19-e2a4f9a67124"
SciMLTesting = "09d9d899-5365-40a9-917a-5f67fddea283"
Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40"

[sources]
Expand All @@ -10,6 +11,7 @@ OptimizationIpopt = {path = "../.."}
[compat]
Aqua = "0.8"
JET = "0.9, 0.10, 0.11"
julia = "1.10"
OptimizationIpopt = "1"
SciMLTesting = "1.6"
Test = "1"
julia = "1.10"
25 changes: 17 additions & 8 deletions lib/OptimizationIpopt/test/qa/qa.jl
Original file line number Diff line number Diff line change
@@ -1,10 +1,19 @@
using OptimizationIpopt, Aqua, JET
using SciMLTesting, OptimizationIpopt, JET
using Test

@testset "Aqua" begin
Aqua.test_all(OptimizationIpopt)
end

@testset "JET static analysis" begin
JET.test_package(OptimizationIpopt; target_defined_modules = true)
end
# ExplicitImports findings, all tracked against SciML/Optimization.jl:
# * no_implicit_imports broken: the module relies on `@reexport`/`using`
# module names (SciMLBase/OptimizationBase/Reexport/...) that cannot be made
# explicit without restructuring.
# * the ignored *_are_public / *_via_owners names are owned by SciMLBase,
# OptimizationBase, the backend, or Base and are not (yet) declared public;
# the proper fix is upstream `public` declarations, not a local change.
run_qa(
OptimizationIpopt;
explicit_imports = true,
ei_kwargs = (;
all_qualified_accesses_via_owners = (; ignore = (:OptimizationStats,)),
all_qualified_accesses_are_public = (; ignore = (Symbol("@logmsg"), :AbstractOptimizationCache, :ApplicationReturnStatus, :DEFAULT_VERBOSE, :Diverging_Iterates, :Feasible_Point_Found, :GetIpoptCurrentIterate, :Infeasible_Problem_Detected, :LogLevel, :Maximum_CpuTime_Exceeded, :Maximum_Iterations_Exceeded, :Maximum_WallTime_Exceeded, :OptimizationState, :OptimizationStats, :ReInitCache, :Search_Direction_Becomes_Too_Small, :Solve_Succeeded, :Solved_To_Acceptable_Level, :User_Requested_Stop, :__init, :__solve, :_check_and_convert_maxiters, :_check_and_convert_maxtime, :_process_verbose_param, :allowscallback, :get_observed, :get_p, :get_paramsyms, :get_syms, :instantiate_function, :requiresconshess, :requiresconsjac, :requiresgradient, :requireshessian, :supports_opt_cache_interface, :supports_sense)),
),
ei_broken = (:no_implicit_imports,),
)
4 changes: 3 additions & 1 deletion lib/OptimizationLBFGSB/test/qa/Project.toml
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
Aqua = "4c88cf16-eb10-579e-8560-4a9242c79595"
JET = "c3a54625-cd67-489e-a8e7-0a5a0ff4e31b"
OptimizationLBFGSB = "22f7324a-a79d-40f2-bebe-3af60c77bd15"
SciMLTesting = "09d9d899-5365-40a9-917a-5f67fddea283"
Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40"

[sources]
Expand All @@ -10,6 +11,7 @@ OptimizationLBFGSB = {path = "../.."}
[compat]
Aqua = "0.8"
JET = "0.9, 0.10, 0.11"
julia = "1.10"
OptimizationLBFGSB = "1"
SciMLTesting = "1.6"
Test = "1"
julia = "1.10"
Loading
Loading