Skip to content

Commit 49a1718

Browse files
Merge pull request #520 from ChrisRackauckas-Claude/qa-run_qa-v16-explicit-imports
QA: run_qa v1.6 form + ExplicitImports (root + sublibs)
2 parents 0828718 + fe630c8 commit 49a1718

30 files changed

Lines changed: 301 additions & 181 deletions

File tree

Project.toml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ LinearAlgebra = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e"
1717
OrdinaryDiffEqTsit5 = "b1df2697-797e-41e3-8120-5422d3b24e4a"
1818
Reexport = "189a3867-3050-52da-a836-e630ba90ab69"
1919
SciMLBase = "0bca4576-84f4-4d90-8ffe-ffa030f20462"
20+
SciMLLogging = "a6db7da4-7206-11f0-1eab-35f2a5dbe1d1"
2021

2122
[weakdeps]
2223
ODEInterface = "54ca160b-1b9f-5127-a996-1867f4bc2a2c"
@@ -58,7 +59,8 @@ Random = "1.10"
5859
RecursiveArrayTools = "3.31.2, 4"
5960
Reexport = "1.2"
6061
SafeTestsets = "0.1.0"
61-
SciMLBase = "3"
62+
SciMLBase = "3.30"
63+
SciMLLogging = "1.10.1, 2"
6264
SciMLTesting = "1"
6365
Sparspak = "0.3.11"
6466
StaticArrays = "1.9.8"

ext/BoundaryValueDiffEqODEInterfaceExt.jl

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,9 @@ module BoundaryValueDiffEqODEInterfaceExt
33
using BoundaryValueDiffEq: BVPM2, BVPSOL, COLNEW
44
using BoundaryValueDiffEqCore: __extract_u0, __initial_guess_length, __extract_mesh,
55
__flatten_initial_guess, __get_bcresid_prototype,
6-
__has_initial_guess, __initial_guess, _process_verbose_param, BVPVerbosity, @SciMLMessage
6+
__has_initial_guess, __initial_guess, _process_verbose_param, BVPVerbosity
77
using SciMLBase: SciMLBase, BVProblem, TwoPointBVProblem, ReturnCode
8+
using SciMLLogging: @SciMLMessage
89
using ODEInterface: OptionsODE, OPT_ATOL, OPT_RTOL, OPT_METHODCHOICE, OPT_DIAGNOSTICOUTPUT,
910
OPT_ERRORCONTROL, OPT_SINGULARTERM, OPT_MAXSTEPS, OPT_BVPCLASS,
1011
OPT_SOLMETHOD, OPT_RHS_CALLMODE, OPT_COLLOCATIONPTS, OPT_ADDGRIDPOINTS,

lib/BoundaryValueDiffEqAscher/Project.toml

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,6 @@ DifferentiationInterface = "a0c0ee7d-e4b9-4e03-894e-1c5f64a51d63"
1212
FastClosures = "9aa1b823-49e4-5ca5-8b0f-3971ec8bab6a"
1313
ForwardDiff = "f6369f11-7733-5829-9624-2563aa707210"
1414
LinearAlgebra = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e"
15-
PreallocationTools = "d236fae5-4411-538c-8e31-a6e3d9e00b46"
16-
RecursiveArrayTools = "731186ca-8d62-57ce-b412-fbd966d074cd"
1715
Reexport = "189a3867-3050-52da-a836-e630ba90ab69"
1816
SciMLBase = "0bca4576-84f4-4d90-8ffe-ffa030f20462"
1917
Setfield = "efcf1570-3423-57d1-acb7-fd33fddbac46"
@@ -29,11 +27,10 @@ DifferentiationInterface = "0.7.15"
2927
FastClosures = "0.3.2"
3028
ForwardDiff = "0.10.38, 1"
3129
LinearAlgebra = "1.10"
32-
PreallocationTools = "1.2"
3330
Random = "1.10"
3431
RecursiveArrayTools = "3.27.0, 4"
3532
Reexport = "1.2"
36-
SciMLBase = "3"
33+
SciMLBase = "3.30"
3734
SciMLTesting = "1"
3835
Setfield = "1.1.1"
3936
StaticArrays = "1.9.8"

lib/BoundaryValueDiffEqAscher/src/BoundaryValueDiffEqAscher.jl

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -3,26 +3,26 @@ module BoundaryValueDiffEqAscher
33
using ADTypes: ADTypes, AutoSparse, AutoForwardDiff
44
using AlmostBlockDiagonals: AlmostBlockDiagonals, IntermediateAlmostBlockDiagonal
55

6-
using BoundaryValueDiffEqCore: AbstractBoundaryValueDiffEqAlgorithm,
6+
using BoundaryValueDiffEqCore: BoundaryValueDiffEqCore,
7+
AbstractBoundaryValueDiffEqAlgorithm,
78
AbstractBoundaryValueDiffEqCache, BVPJacobianAlgorithm,
9+
DEFAULT_VERBOSE, GlobalErrorControl, _process_verbose_param,
810
__extract_problem_details, concrete_jacobian_algorithm,
9-
__Fix3, __concrete_solve_algorithm,
10-
__internal_nlsolve_problem, __vec, __vec_f, __vec_f!,
11+
__concrete_solve_algorithm,
12+
__vec, __vec_f, __vec_f!,
1113
__vec_bc, __vec_bc!, __extract_mesh, get_dense_ad,
1214
__get_bcresid_prototype, __split_kwargs, __concrete_kwargs,
1315
__default_nonsparse_ad, __construct_internal_problem,
1416
__internal_solve, __build_cost
1517

1618
using ConcreteStructs: @concrete
17-
using DifferentiationInterface: DifferentiationInterface, Constant, prepare_jacobian
19+
using DifferentiationInterface: DifferentiationInterface, Constant
1820
using FastClosures: @closure
19-
using ForwardDiff: ForwardDiff, Dual
20-
using LinearAlgebra
21-
using PreallocationTools: PreallocationTools, DiffCache
22-
using RecursiveArrayTools: VectorOfArray, recursivecopy
21+
using ForwardDiff: ForwardDiff
22+
using LinearAlgebra: LinearAlgebra, I, norm, rank
2323
using Reexport: @reexport
24-
using SciMLBase: SciMLBase, AbstractDiffEqInterpolation, StandardBVProblem, __solve,
25-
_unwrap_val
24+
using SciMLBase: SciMLBase, BVProblem, ReturnCode, StandardBVProblem,
25+
TwoPointBVProblem, isinplace, solve
2626
using Setfield: @set!
2727

2828
const DI = DifferentiationInterface

lib/BoundaryValueDiffEqAscher/test/qa/Project.toml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
Aqua = "4c88cf16-eb10-579e-8560-4a9242c79595"
33
BoundaryValueDiffEqAscher = "7227322d-7511-4e07-9247-ad6ff830280e"
44
BoundaryValueDiffEqCore = "56b672f2-a5fe-4263-ab2d-da677488eb3a"
5+
SciMLTesting = "09d9d899-5365-40a9-917a-5f67fddea283"
56
Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40"
67

78
[sources]
@@ -12,5 +13,6 @@ BoundaryValueDiffEqCore = {path = "../../../BoundaryValueDiffEqCore"}
1213
Aqua = "0.8"
1314
BoundaryValueDiffEqAscher = "1"
1415
BoundaryValueDiffEqCore = "2"
16+
SciMLTesting = "1.6"
1517
Test = "1.10"
1618
julia = "1.10"
Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,16 @@
1+
using SciMLTesting
12
using BoundaryValueDiffEqAscher
2-
using Aqua
33
using Test
44

5-
@testset "Aqua" begin
6-
Aqua.test_all(BoundaryValueDiffEqAscher)
7-
end
5+
run_qa(
6+
BoundaryValueDiffEqAscher;
7+
explicit_imports = true,
8+
ei_kwargs = (;
9+
# StandardBVProblem is a SciMLBase-owned BVP problem type that this solver
10+
# legitimately dispatches on but which SciMLBase does not mark public.
11+
all_explicit_imports_are_public = (; ignore = (:StandardBVProblem,)),
12+
# ForwardDiff.Dual / ForwardDiff.jacobian! are ForwardDiff internals with
13+
# no public replacement.
14+
all_qualified_accesses_are_public = (; ignore = (:Dual, :jacobian!)),
15+
),
16+
)

lib/BoundaryValueDiffEqCore/Project.toml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ RecursiveArrayTools = "731186ca-8d62-57ce-b412-fbd966d074cd"
2121
Reexport = "189a3867-3050-52da-a836-e630ba90ab69"
2222
SciMLBase = "0bca4576-84f4-4d90-8ffe-ffa030f20462"
2323
SciMLLogging = "a6db7da4-7206-11f0-1eab-35f2a5dbe1d1"
24+
SciMLPublic = "431bcebd-1456-4ced-9d72-93c2757fff0b"
2425
SciMLStructures = "53ae85a6-f571-4167-b2af-e1d143709226"
2526
Setfield = "efcf1570-3423-57d1-acb7-fd33fddbac46"
2627
SparseArrays = "2f01184e-e22b-5df5-ae63-d93ebab69eaf"
@@ -44,8 +45,9 @@ OptimizationBase = "5.1"
4445
PreallocationTools = "1.2"
4546
RecursiveArrayTools = "3.27.0, 4"
4647
Reexport = "1.2"
47-
SciMLBase = "3"
48+
SciMLBase = "3.30"
4849
SciMLLogging = "1.10.1, 2"
50+
SciMLPublic = "1"
4951
SciMLTesting = "1"
5052
SciMLStructures = "1.7.0"
5153
Setfield = "1"

lib/BoundaryValueDiffEqCore/src/BoundaryValueDiffEqCore.jl

Lines changed: 38 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2,26 +2,31 @@ module BoundaryValueDiffEqCore
22

33
using Adapt: adapt
44
using ADTypes: ADTypes, AbstractADType, AutoSparse, AutoForwardDiff, AutoFiniteDiff,
5-
NoSparsityDetector, KnownJacobianSparsityDetector, AutoPolyesterForwardDiff
6-
using ArrayInterface: parameterless_type, fast_scalar_indexing
5+
AutoPolyesterForwardDiff
6+
using ArrayInterface: parameterless_type
77
using ConcreteStructs: @concrete
88
using DiffEqBase: DiffEqBase, solve
99
using ForwardDiff: ForwardDiff, pickchunksize
1010
using Integrals: Integrals, IntegralProblem
11-
using LinearAlgebra
11+
using LinearAlgebra: LinearAlgebra, mul!
1212
using LineSearch: BackTracking
13-
using NonlinearSolveFirstOrder: NonlinearSolvePolyAlgorithm
13+
using NonlinearSolveFirstOrder: NonlinearSolveFirstOrder, NonlinearSolvePolyAlgorithm,
14+
GaussNewton, LevenbergMarquardt, NewtonRaphson, NonlinearSolveBase, TrustRegion
1415
using NonlinearSolveBase: NonlinearVerbosity
1516
using OptimizationBase: OptimizationBase, OptimizationVerbosity
1617
using PreallocationTools: PreallocationTools, DiffCache, get_tmp
1718
using RecursiveArrayTools: AbstractVectorOfArray, VectorOfArray, DiffEqArray
1819
using Reexport: @reexport
19-
using SciMLBase: SciMLBase, AbstractBVProblem, AbstractDiffEqInterpolation,
20-
StandardBVProblem, StandardSecondOrderBVProblem, __solve, _unwrap_val
21-
using SciMLLogging: SciMLLogging, @SciMLMessage, Silent, DebugLevel,
22-
InfoLevel, WarnLevel, ErrorLevel, @verbosity_specifier, AbstractVerbositySpecifier,
20+
using SciMLBase: SciMLBase, AbstractBVProblem, BVProblem, NonlinearFunction,
21+
NonlinearLeastSquaresProblem, NonlinearProblem, OptimizationFunction,
22+
OptimizationProblem, SecondOrderBVProblem, StandardBVProblem,
23+
StandardSecondOrderBVProblem, TwoPointBVProblem, TwoPointSecondOrderBVProblem,
24+
__solve
25+
using SciMLLogging: SciMLLogging, Silent,
26+
InfoLevel, WarnLevel, @verbosity_specifier,
2327
None, Minimal, Standard, Detailed, All
24-
using Setfield: @set!, @set
28+
using SciMLPublic: @public
29+
using Setfield: @set!
2530
using SparseArrays: sparse
2631
using SparseConnectivityTracer: SparseConnectivityTracer, TracerLocalSparsityDetector
2732
using SparseMatrixColorings: GreedyColoringAlgorithm
@@ -55,4 +60,28 @@ export HOErrorControl, REErrorControl
5560
export integral
5661
export BVPVerbosity, _process_verbose_param, DEFAULT_VERBOSE
5762

63+
# Internal API consumed by the solver sublibraries (BoundaryValueDiffEqMIRK,
64+
# BoundaryValueDiffEqFIRK, BoundaryValueDiffEqShooting, BoundaryValueDiffEqAscher,
65+
# BoundaryValueDiffEqMIRKN). Marked public so the sublibraries can import these
66+
# without ExplicitImports flagging them; not exported because they are not part
67+
# of the user-facing API.
68+
@public AbstractBoundaryValueDiffEqCache, AbstractErrorControl, DiffCacheNeeded,
69+
EvalSol, NoDiffCacheNeeded, __FastShortcutNonlinearPolyalg, __Fix3,
70+
__add_singular_term!, __any_sparse_ad, __build_cost, __build_solution,
71+
__cache_trait, __concrete_kwargs, __concrete_solve_algorithm,
72+
__construct_internal_problem, __default_coloring_algorithm,
73+
__default_nonsparse_ad, __default_sparse_ad, __default_sparsity_detector,
74+
__extract_mesh, __extract_problem_details, __extract_u0,
75+
__flatten_initial_guess, __get_bcresid_prototype, __get_non_sparse_ad,
76+
__has_initial_guess, __initial_guess, __initial_guess_length,
77+
__initial_guess_on_mesh, __internal_nlsolve_problem,
78+
__internal_optimization_problem, __internal_solve,
79+
__materialize_jacobian_algorithm, __maybe_allocate_diffcache, __maybe_matmul!,
80+
__needs_diffcache, __resize!, __restructure_sol, __split_kwargs,
81+
__tunable_part, __use_both_error_control, __vec, __vec_bc, __vec_bc!,
82+
__vec_f, __vec_f!, __vec_so_bc, __vec_so_bc!, _sparse_like,
83+
concrete_jacobian_algorithm, diff!, eval_bc_residual, eval_bc_residual!,
84+
get_dense_ad, interval, nodual_value, recursive_flatten, recursive_flatten!,
85+
recursive_flatten_twopoint!, recursive_unflatten!, safe_similar, _unwrap_val
86+
5887
end

lib/BoundaryValueDiffEqCore/src/utils.jl

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
1+
_unwrap_val(::Val{B}) where {B} = B
2+
_unwrap_val(B) = B
3+
14
recursive_length(x::Vector{<:AbstractArray}) = sum(length, x)
25
recursive_length(x::Vector{<:DiffCache}) = sum(xᵢ -> length(xᵢ.u), x)
36

lib/BoundaryValueDiffEqCore/test/qa/Project.toml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
[deps]
22
Aqua = "4c88cf16-eb10-579e-8560-4a9242c79595"
33
BoundaryValueDiffEqCore = "56b672f2-a5fe-4263-ab2d-da677488eb3a"
4+
SciMLTesting = "09d9d899-5365-40a9-917a-5f67fddea283"
45
Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40"
56

67
[sources]
@@ -9,5 +10,6 @@ BoundaryValueDiffEqCore = {path = "../.."}
910
[compat]
1011
Aqua = "0.8"
1112
BoundaryValueDiffEqCore = "2"
13+
SciMLTesting = "1.6"
1214
Test = "1.10"
1315
julia = "1.10"

0 commit comments

Comments
 (0)