Enabling ExplicitImports.jl (via SciMLTesting run_qa(...; explicit_imports = true)) in
the QA lanes surfaces a set of pre-existing findings across the umbrella package and the
sublibraries. To keep the QA lanes green while these are addressed, the failing
ExplicitImports checks are marked @test_broken (via ei_broken = (...)) per-env; they
auto-flag (Unexpected Pass) once fixed, prompting removal of the marker.
This issue tracks fixing them so the ei_broken markers can be dropped.
Categories
-
no_implicit_imports (all envs): modules bring names into scope via bare
using ADTypes / using LinearAlgebra / using BoundaryValueDiffEqCore /
using SciMLBase; the umbrella BoundaryValueDiffEq re-exports the solver algorithms
(Shooting, MIRK*, RadauIIa*, LobattoIII*, Ascher*, ...) via
using <Sublibrary> + export. Fix: list the names explicitly on the using
statements (using ADTypes: AutoForwardDiff, ...) or @reexport using <Sublibrary>.
-
no_stale_explicit_imports (Core, MIRK, MIRKN, Shooting, Ascher, FIRK): the
sublibraries import a batch of BoundaryValueDiffEqCore internal helpers
(__vec_f, __initial_guess, recursive_flatten, ...) that are not all used in
every sublibrary. Fix: drop the genuinely-unused imports (taking care to keep names
that exist for method extension).
-
all_explicit_imports_via_owners (MIRK, MIRKN, Shooting): get_tmp (owned by
PreallocationTools) and @SciMLMessage (owned by SciMLLogging) are imported from
BoundaryValueDiffEqCore, which re-exports them. Fix: import from the owning package.
-
all_qualified_accesses_are_public / all_explicit_imports_are_public (all envs):
the sublibraries use BoundaryValueDiffEqCore's internal API (__vec,
eval_bc_residual, recursive_flatten, ...) and some upstream non-public names
(SciMLBase.__init/__solve/ReturnCode.Success, ForwardDiff.Dual, Base.Fix2, ...).
Fix: declare the shared BoundaryValueDiffEqCore API names public (Julia 1.11+
public/SciMLPublic) so the sublibraries can import them cleanly, and ignore the
genuine other-package internals.
QA conversion PR: run_qa v1.6 form + ExplicitImports (root + sublibs).
Enabling ExplicitImports.jl (via SciMLTesting
run_qa(...; explicit_imports = true)) inthe QA lanes surfaces a set of pre-existing findings across the umbrella package and the
sublibraries. To keep the QA lanes green while these are addressed, the failing
ExplicitImports checks are marked
@test_broken(viaei_broken = (...)) per-env; theyauto-flag (Unexpected Pass) once fixed, prompting removal of the marker.
This issue tracks fixing them so the
ei_brokenmarkers can be dropped.Categories
no_implicit_imports(all envs): modules bring names into scope via bareusing ADTypes/using LinearAlgebra/using BoundaryValueDiffEqCore/using SciMLBase; the umbrellaBoundaryValueDiffEqre-exports the solver algorithms(
Shooting,MIRK*,RadauIIa*,LobattoIII*,Ascher*, ...) viausing <Sublibrary>+export. Fix: list the names explicitly on theusingstatements (
using ADTypes: AutoForwardDiff, ...) or@reexport using <Sublibrary>.no_stale_explicit_imports(Core, MIRK, MIRKN, Shooting, Ascher, FIRK): thesublibraries import a batch of
BoundaryValueDiffEqCoreinternal helpers(
__vec_f,__initial_guess,recursive_flatten, ...) that are not all used inevery sublibrary. Fix: drop the genuinely-unused imports (taking care to keep names
that exist for method extension).
all_explicit_imports_via_owners(MIRK, MIRKN, Shooting):get_tmp(owned byPreallocationTools) and@SciMLMessage(owned bySciMLLogging) are imported fromBoundaryValueDiffEqCore, which re-exports them. Fix: import from the owning package.all_qualified_accesses_are_public/all_explicit_imports_are_public(all envs):the sublibraries use
BoundaryValueDiffEqCore's internal API (__vec,eval_bc_residual,recursive_flatten, ...) and some upstream non-public names(
SciMLBase.__init/__solve/ReturnCode.Success,ForwardDiff.Dual,Base.Fix2, ...).Fix: declare the shared
BoundaryValueDiffEqCoreAPI namespublic(Julia 1.11+public/SciMLPublic) so the sublibraries can import them cleanly, and ignore thegenuine other-package internals.
QA conversion PR: run_qa v1.6 form + ExplicitImports (root + sublibs).