Skip to content

QA: ExplicitImports tracked @test_broken markers (qualified-accesses-public, no-implicit-imports) #1058

Description

@ChrisRackauckas-Claude

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 LinearSolveall_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, LinearSolveAutotuneno_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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions