Skip to content

QA: ExplicitImports no_implicit_imports finding (marked ei_broken pending refactor) #245

Description

@ChrisRackauckas-Claude

The QA group (test/qa/qa.jl) now runs ExplicitImports via run_qa(...; explicit_imports = true). Five of the six ExplicitImports checks pass (some all_qualified_accesses_are_public ignores documented inline for de-facto-public upstream names). The remaining check, check_no_implicit_imports, fails and is currently suppressed with ei_broken = (:no_implicit_imports,) so the QA lane records Broken, not Fail.

Finding (ExplicitImports.check_no_implicit_imports)

GlobalSensitivity relies on implicit imports (names brought in by bare using Statistics, Distributions, ... rather than using X: name). Making each explicit is a large, mechanical refactor across the whole src/ tree, so it is tracked here rather than done as part of the QA conversion.

Names relied on implicitly:

  • Combinatorics, permutations — Combinatorics
  • Copulas, GaussianCopula, IndependentCopula, SklarDist, condition — Copulas
  • Distributions, Distribution, MvNormal, Normal, Uniform, UnivariateDistribution, cdf, pdf — Distributions
  • FFTW, dct — FFTW; rfft — AbstractFFTs
  • ForwardDiff — ForwardDiff
  • KernelDensity, kde — KernelDensity
  • LinearAlgebra, Symmetric, diag, dot, pinv — LinearAlgebra
  • PrecompileTools, @compile_workload, @setup_workload — PrecompileTools
  • QuasiMonteCarlo — QuasiMonteCarlo
  • Random, AbstractRNG, rand!, randperm, shuffle! — Random
  • RecursiveArrayTools — RecursiveArrayTools
  • Statistics, cov, mean, quantile, std, var — Statistics
  • StatsBase, competerank — StatsBase
  • Trapz, trapz — Trapz

Fix

Replace the bare using X lines in src/GlobalSensitivity.jl (and per-file usages) with explicit using X: a, b, c for the names actually used, then drop :no_implicit_imports from ei_broken in test/qa/qa.jl. The ei_broken marker auto-flags an Unexpected Pass once the check is clean, so the suppression cannot be silently left behind.

Ignore until reviewed by @ChrisRackauckas.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions