Skip to content

QA: make implicit imports explicit (ExplicitImports no_implicit_imports) #155

Description

@ChrisRackauckas-Claude

The QA group now runs ExplicitImports (run_qa(HighDimPDE; explicit_imports = true, ...) per SciMLTesting v1.6). Five of the six ExplicitImports checks pass; no_implicit_imports is currently marked @test_broken via ei_broken = (:no_implicit_imports,) and will auto-flag (Unexpected Pass) once this is resolved.

HighDimPDE relies on heavy whole-module using of large deps (CUDA, Flux, Zygote, the @reexport using DiffEqBase, SciMLSensitivity, StochasticDiffEq, etc.), so making every name explicit is a non-trivial refactor that should be done deliberately rather than as part of the QA conversion. The implicit imports flagged by check_no_implicit_imports(HighDimPDE):

* `CUDA` which is exported by `CUDA`
* `DocStringExtensions` which is exported by `DocStringExtensions`
* `SIGNATURES` which is exported by `DocStringExtensions`
* `TYPEDSIGNATURES` which is exported by `DocStringExtensions`
* `Flux` which is exported by `Flux`
* `cpu` which is exported by `Flux`
* `gpu` which is exported by `Flux`
* `σ` which is exported by `NNlib`
* `Functors` which is exported by `Functors`
* `@functor` which is exported by `Functors`
* `LinearAlgebra` which is exported by `LinearAlgebra`
* `I` which is exported by `LinearAlgebra`
* `dot` which is exported by `LinearAlgebra`
* `Random` which is exported by `Random`
* `rand!` which is exported by `Random`
* `randn!` which is exported by `Random`
* `Reexport` which is exported by `Reexport`
* `@reexport` which is exported by `Reexport`
* `SciMLSensitivity` which is exported by `SciMLSensitivity`
* `TrackerAdjoint` which is exported by `SciMLSensitivity`
* `SparseArrays` which is exported by `SparseArrays`
* `Statistics` which is exported by `Statistics`
* `mean` which is exported by `Statistics`
* `StochasticDiffEq` which is exported by `StochasticDiffEq`
* `DiffEqBase` which is exported by `DiffEqBase`
* `EM` which is exported by `StochasticDiffEqLowOrder`
* `EnsembleProblem` which is exported by `SciMLBase`
* `EnsembleSerial` which is exported by `SciMLBase`
* `EnsembleThreads` which is exported by `SciMLBase`
* `SDEProblem` which is exported by `SciMLBase`
* `SciMLBase` which is exported by `SciMLBase`
* `remake` which is exported by `SciMLBase`
* `solve` which is exported by `CommonSolve`
* `Tracker` which is exported by `Tracker`
* `Zygote` which is exported by `Zygote`
* `cuDNN` which is exported by `cuDNN`

To resolve: convert these to explicit using X: a, b (or qualified accesses) and then remove :no_implicit_imports from the ei_broken tuple in test/qa/qa.jl.

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