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

    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