ExplicitImports QA: tracked @test_broken markers
The QA suite (test/qa/qa.jl + lib/*/test/qa/qa.jl) now runs the full
ExplicitImports.jl check set via SciMLTesting.run_qa(...; explicit_imports = true).
Most checks pass or are handled with curated ignore-lists for non-public names
of stdlib / other SciML packages. A few checks have too many findings to ignore
name-by-name and are tracked as @test_broken (via ei_broken) until fixed:
Root LinearSolve — all_qualified_accesses_are_public
~90 qualified accesses (LinearSolve.x) of names that are not declared public:
- LinearSolve's own internals reached via
LinearSolve.x from extension modules
(e.g. defaultalg, do_factorization, init_sparse_reduction, init_cacheval,
DefaultLinearSolver, QRFactorization, ...).
- stdlib / SciMLBase / LinearAlgebra internals (
@max_methods, Experimental,
BlasInt, build_linear_solution, checksquare, chkfinite, ...).
Fix path: declare the relevant LinearSolve internals public, and/or upstream
public declarations in SciMLBase / SciMLOperators (tracked separately). Once the
finding count is tractable, replace ei_broken with an ignore-list or drop it.
Sublibraries LinearSolvePyAMG, LinearSolveAutotune — no_implicit_imports
Both sublibraries using whole packages (LinearAlgebra, SparseArrays,
PythonCall, Plots, ...) and rely on names brought in implicitly. Making every
such name an explicit import is a source refactor; tracked as @test_broken until
done.
This is a QA-tracking issue opened alongside the run_qa v1.6 conversion PR; it can
be closed once the markers above are removed.
ExplicitImports QA: tracked
@test_brokenmarkersThe QA suite (
test/qa/qa.jl+lib/*/test/qa/qa.jl) now runs the fullExplicitImports.jl check set via
SciMLTesting.run_qa(...; explicit_imports = true).Most checks pass or are handled with curated
ignore-lists for non-public namesof stdlib / other SciML packages. A few checks have too many findings to ignore
name-by-name and are tracked as
@test_broken(viaei_broken) until fixed:Root
LinearSolve—all_qualified_accesses_are_public~90 qualified accesses (
LinearSolve.x) of names that are not declaredpublic:LinearSolve.xfrom extension modules(e.g.
defaultalg,do_factorization,init_sparse_reduction,init_cacheval,DefaultLinearSolver,QRFactorization, ...).@max_methods,Experimental,BlasInt,build_linear_solution,checksquare,chkfinite, ...).Fix path: declare the relevant LinearSolve internals
public, and/or upstreampublicdeclarations in SciMLBase / SciMLOperators (tracked separately). Once thefinding count is tractable, replace
ei_brokenwith anignore-list or drop it.Sublibraries
LinearSolvePyAMG,LinearSolveAutotune—no_implicit_importsBoth sublibraries
usingwhole packages (LinearAlgebra,SparseArrays,PythonCall,Plots, ...) and rely on names brought in implicitly. Making everysuch name an explicit import is a source refactor; tracked as
@test_brokenuntildone.
This is a QA-tracking issue opened alongside the run_qa v1.6 conversion PR; it can
be closed once the markers above are removed.