diff --git a/Project.toml b/Project.toml index 1282785..4ae482d 100644 --- a/Project.toml +++ b/Project.toml @@ -21,7 +21,6 @@ PrecompileTools = "aea7be01-6a6a-4083-8856-8a6e6704d82a" SciMLBase = "0bca4576-84f4-4d90-8ffe-ffa030f20462" SimpleNonlinearSolve = "727e6d20-b764-4bd8-a329-72de5adea6c7" SparseArrays = "2f01184e-e22b-5df5-ae63-d93ebab69eaf" -TruncatedStacktraces = "781d530d-4396-4725-bb49-402e4bee1e77" Zygote = "e88e6eb3-aa80-5325-afca-941959d7151f" [compat] @@ -39,6 +38,5 @@ Polyester = "0.7.18" PrecompileTools = "1.2.1" SciMLBase = "2.147, 3.1" SimpleNonlinearSolve = "2.7" -TruncatedStacktraces = "1.4" Zygote = "0.7.5" julia = "1.10" diff --git a/src/ComplementaritySolve.jl b/src/ComplementaritySolve.jl index e1c3a16..4fabfa7 100644 --- a/src/ComplementaritySolve.jl +++ b/src/ComplementaritySolve.jl @@ -33,7 +33,6 @@ using Polyester: Polyester, @batch import CommonSolve: init, solve, solve! import ChainRulesCore as CRC import FillArrays: AbstractFill -import TruncatedStacktraces: @truncate_stacktrace const ∂0 = ZeroTangent() const ∂∅ = NoTangent() @@ -45,7 +44,6 @@ const AA3 = AbstractArray{T, 3} where {T} const DEFAULT_NLSOLVER = SimpleNewtonRaphson() - abstract type AbstractComplementarityAlgorithm end abstract type AbstractComplementaritySystemAlgorithm end abstract type AbstractComplementaritySensitivityAlgorithm end diff --git a/src/algorithms/generic.jl b/src/algorithms/generic.jl index 859db38..9cea65e 100644 --- a/src/algorithms/generic.jl +++ b/src/algorithms/generic.jl @@ -2,7 +2,6 @@ nlsolver end -@truncate_stacktrace NonlinearReformulation 1 function NonlinearReformulation(method::Symbol = :smooth, nlsolver = DEFAULT_NLSOLVER) return NonlinearReformulation{method}(nlsolver) diff --git a/src/algorithms/lcp/bokhoven_iterative.jl b/src/algorithms/lcp/bokhoven_iterative.jl index f900cbc..8f4193b 100644 --- a/src/algorithms/lcp/bokhoven_iterative.jl +++ b/src/algorithms/lcp/bokhoven_iterative.jl @@ -5,7 +5,6 @@ end BokhovenIterativeAlgorithm() = BokhovenIterativeAlgorithm(DEFAULT_NLSOLVER) -@truncate_stacktrace BokhovenIterativeAlgorithm ## NOTE: It is a steady state problem so we could in-principle use an ODE Solver for batched in (true, false) diff --git a/src/algorithms/lcp/ipm.jl b/src/algorithms/lcp/ipm.jl index 79d2b75..22534f8 100644 --- a/src/algorithms/lcp/ipm.jl +++ b/src/algorithms/lcp/ipm.jl @@ -7,7 +7,6 @@ function InteriorPointMethod(linsolve = nothing; tolerance = 1.0f-5) return InteriorPointMethod(linsolve, tolerance) end -@truncate_stacktrace InteriorPointMethod function __feasible_steplength(x, Δx, cache; dims = :) T = eltype(x) diff --git a/src/problems/complementarity_problems.jl b/src/problems/complementarity_problems.jl index e645b0e..58af0b2 100644 --- a/src/problems/complementarity_problems.jl +++ b/src/problems/complementarity_problems.jl @@ -72,7 +72,6 @@ for iip in (true, false) end end -@truncate_stacktrace LinearComplementarityProblem 1 2 const LCP = LinearComplementarityProblem @@ -105,7 +104,6 @@ end ub end -@truncate_stacktrace MixedLinearComplementarityProblem const MLCP = MixedLinearComplementarityProblem @@ -123,7 +121,6 @@ end p end -@truncate_stacktrace NonlinearComplementarityProblem 1 const NCP = NonlinearComplementarityProblem @@ -141,7 +138,6 @@ end p end -@truncate_stacktrace MixedComplementarityProblem 1 const MCP = MixedComplementarityProblem diff --git a/src/sensitivity/lcp.jl b/src/sensitivity/lcp.jl index 7b1084e..b2b2535 100644 --- a/src/sensitivity/lcp.jl +++ b/src/sensitivity/lcp.jl @@ -4,7 +4,6 @@ end LinearComplementarityAdjoint() = LinearComplementarityAdjoint(nothing) -@truncate_stacktrace LinearComplementarityAdjoint __lcp_dims(u::AV, M) = (length(u), -1), length(u)^2 __lcp_dims(u::AM, M) = size(u), prod(size(M)[1:2]) diff --git a/src/sensitivity/mcp.jl b/src/sensitivity/mcp.jl index e36b209..7f60d7e 100644 --- a/src/sensitivity/mcp.jl +++ b/src/sensitivity/mcp.jl @@ -4,7 +4,6 @@ end MixedComplementarityAdjoint() = MixedComplementarityAdjoint(nothing) -@truncate_stacktrace MixedComplementarityAdjoint function __fixed_vecjac_operator(f, y, p, A₁, A₂) input, pb_f = Zygote.pullback(x -> f(x, p), y) diff --git a/test/Project.toml b/test/Project.toml index 32a3d1b..7e00cec 100644 --- a/test/Project.toml +++ b/test/Project.toml @@ -1,11 +1,9 @@ [deps] -Aqua = "4c88cf16-eb10-579e-8560-4a9242c79595" BenchmarkTools = "6e4b80f9-dd63-53aa-95a3-0cdb28fa8baf" CUDA = "052768ef-5323-5732-b1bb-66c8b64840ba" ChainRulesCore = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" ComponentArrays = "b0b7db55-cfe3-40fc-9ded-d10e2dbeff66" DiffEqBase = "2b5f629d-d688-5b77-993f-72d75c75574e" -ExplicitImports = "7d51a73a-1435-4ff3-83d9-f097790105c7" FiniteDifferences = "26cc04aa-876d-5657-8c51-4c34ba976000" ForwardDiff = "f6369f11-7733-5829-9624-2563aa707210" LinearAlgebra = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e" @@ -17,6 +15,7 @@ OrdinaryDiffEq = "1dea7af3-3e70-54e6-95c3-0bf5283fa5ed" PATHSolver = "f5f7c340-0bb3-5c69-969a-41884d311d1b" SafeTestsets = "1bc83da4-3b8d-516f-aca4-4fe02f6d838f" SciMLSensitivity = "1ed8b502-d754-442c-8d5d-10ac956f44a1" +SciMLTesting = "09d9d899-5365-40a9-917a-5f67fddea283" SimpleNonlinearSolve = "727e6d20-b764-4bd8-a329-72de5adea6c7" SparseArrays = "2f01184e-e22b-5df5-ae63-d93ebab69eaf" StableRNGs = "860ef19b-820b-49d6-a774-d7a799459cd3" @@ -26,13 +25,11 @@ Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40" Zygote = "e88e6eb3-aa80-5325-afca-941959d7151f" [compat] -Aqua = "0.8" BenchmarkTools = "1" CUDA = "4, 5, 6.1" ChainRulesCore = "1" ComponentArrays = "0.15" DiffEqBase = "6, 7.5" -ExplicitImports = "1" FiniteDifferences = "0.12" ForwardDiff = "0.10, 1" NonlinearSolve = "1, 2, 3, 4" @@ -43,6 +40,7 @@ OrdinaryDiffEq = "6, 7.0" PATHSolver = "1" SafeTestsets = "0.1" SciMLSensitivity = "7" +SciMLTesting = "1.7" SimpleNonlinearSolve = "0.1, 1, 2" StableRNGs = "1" Statistics = "1.10, 1.11" diff --git a/test/aqua.jl b/test/aqua.jl deleted file mode 100644 index ae4d4dd..0000000 --- a/test/aqua.jl +++ /dev/null @@ -1,9 +0,0 @@ -using Aqua, ComplementaritySolve - -Aqua.test_all( - ComplementaritySolve; - ambiguities = false, # Too many ambiguities from downstream - persistent_tasks = false, # PATHSolver precompile workload triggers persistent task detection - project_extras = false, # Not sure about this one - deps_compat = false -) # Compat when we finally release it! diff --git a/test/explicit_imports.jl b/test/explicit_imports.jl deleted file mode 100644 index bc1c5c3..0000000 --- a/test/explicit_imports.jl +++ /dev/null @@ -1,8 +0,0 @@ -using ExplicitImports -using ComplementaritySolve -using Test - -@testset "ExplicitImports" begin - @test check_no_implicit_imports(ComplementaritySolve) === nothing - @test check_no_stale_explicit_imports(ComplementaritySolve) === nothing -end diff --git a/test/qa.jl b/test/qa.jl new file mode 100644 index 0000000..3dd0bfd --- /dev/null +++ b/test/qa.jl @@ -0,0 +1,26 @@ +using SciMLTesting, ComplementaritySolve, Test + +run_qa( + ComplementaritySolve; + explicit_imports = true, + aqua_kwargs = (; + ambiguities = false, # Too many ambiguities from downstream + persistent_tasks = false, # PATHSolver precompile workload triggers persistent task detection + project_extras = false, + deps_compat = false, + ), + ei_kwargs = (; + all_qualified_accesses_are_public = (; + ignore = ( + # PATHSolver C-API surface: no exports / no `public` declarations. + :MCP_MajorIterationLimit, :MCP_MinorIterationLimit, + :MCP_NoProgress, :MCP_Solved, :MCP_TimeLimit, :solve_mcp, + :jacobian, # ForwardDiff documented-but-not-`public` API + ), + ), + all_explicit_imports_are_public = (; + # FillArrays.AbstractFill is documented but neither exported nor `public`. + ignore = (:AbstractFill,), + ), + ), +) diff --git a/test/runtests.jl b/test/runtests.jl index 383c36d..554c270 100644 --- a/test/runtests.jl +++ b/test/runtests.jl @@ -55,11 +55,8 @@ end @testif TESTING_GROUP "QA" begin @testif BACKEND_GROUP "CPU" begin - @safetestset "Aqua Quality Assurance" begin - include("aqua.jl") - end - @safetestset "Explicit Imports" begin - include("explicit_imports.jl") + @safetestset "Quality Assurance" begin + include("qa.jl") end end end