Skip to content

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

Description

@ChrisRackauckas-Claude

ExplicitImports: no_implicit_imports known-broken

The QA group now runs ExplicitImports.jl's checks via SciMLTesting.run_qa(...; explicit_imports = true). Five of the six checks pass (after fixing stale imports and ignoring other packages' non-public names); check_no_implicit_imports is currently marked @test_broken (via ei_broken = (:no_implicit_imports,) in test/qa/qa.jl).

The component submodules do using ModelingToolkitBase, Symbolics, IfElse (and a couple do using DiffEqBase / using PreallocationTools) and rely on those packages' exported names and macros (@component, @named, @parameters, @variables, System, Equation, Flow, @connector, @unpack, connect, extend, compose, ...). Making every one of these an explicit using X: a, b, c is a large, mechanical, but per-submodule-different refactor; it is tracked here rather than done as one risky sweep.

Once it's done, drop :no_implicit_imports from ei_broken in test/qa/qa.jl (the marker auto-flags an Unexpected Pass when the check starts passing).

Names relied on implicitly (per submodule, from ExplicitImports.print_explicit_imports)

Mechanical.MultiBody2D (9):
  IfElse; ModelingToolkitBase: @component @named @parameters System; Symbolics: @variables Equation
Mechanical.TranslationalModelica (14):
  IfElse; ModelingToolkitBase: @component @connector @named @parameters @unpack Flow System compose extend; Symbolics: @variables Equation
Magnetic.FluxTubes (12):
  ModelingToolkitBase: @component @connector @named @parameters @unpack @variables Equation Flow System connect extend
Electrical (16):
  IfElse; ModelingToolkitBase: @component @connector @constants @named @parameters @unpack Flow System connect extend; Symbolics: @register_symbolic @variables Equation
Hydraulic (1):
  ModelingToolkitBase
Mechanical.Translational (11):
  ModelingToolkitBase: @component @connector @named @parameters Flow System compose; Symbolics: @variables Equation
Magnetic (1):
  ModelingToolkitBase
Mechanical.Rotational (14):
  IfElse; ModelingToolkitBase: @component @connector @named @parameters @unpack Flow System compose extend; Symbolics: @variables Equation
Hydraulic.IsothermalCompressible (15):
  ModelingToolkitBase: @component @connector @named @parameters Flow ParentScope System connect domain_connect; Symbolics: @register_derivative @register_symbolic @variables Equation
Mechanical (1):
  ModelingToolkitBase
Mechanical.TranslationalPosition (14):
  IfElse; ModelingToolkitBase: @component @connector @named @parameters @unpack Flow System compose extend; Symbolics: @variables Equation
Thermal (13):
  IfElse; ModelingToolkitBase: @component @connector @named @parameters @unpack Flow System extend; Symbolics: @variables Equation
Blocks (20):
  DiffEqBase; ModelingToolkitBase: @component @connector @named @parameters @unpack System compose connect extend; PreallocationTools: DiffCache GeneralLazyBufferCache get_tmp; Symbolics: @register_symbolic @variables Differential Equation

Part of the SciML run_qa v1.6 / ExplicitImports rollout.

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