SciML / SciML/MATLABDiffEq.jl

QA: make implicit imports explicit (ExplicitImports no_implicit_imports)

Open
#85 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Julia
Stars
19
Forks
13
Avg merge
2h 52m
Merged PRs (30d)
5

Description

Tracking issue for the no_implicit_imports ExplicitImports check, currently marked @test_broken in the QA group (test/qa/qa.jl, run_qa ei_broken = (:no_implicit_imports,)).

MATLABDiffEq relies on the following implicit imports (names brought in by heavy using/@reexport rather than explicit using X: name):

* `DiffEqBase` which is exported by `DiffEqBase`
* `MATLAB` which is exported by `MATLAB`
* `eval_string` which is exported by `MATLAB`
* `get_default_msession` which is exported by `MATLAB`
* `get_mvariable` which is exported by `MATLAB`
* `get_variable` which is exported by `MATLAB`
* `jarray` which is exported by `MATLAB`
* `jvector` which is exported by `MATLAB`
* `put_variable` which is exported by `MATLAB`
* `ModelingToolkit` which is exported by `ModelingToolkit`
* `equations` which is exported by `ModelingToolkitBase`
* `independent_variables` which is exported by `ModelingToolkitBase`
* `modelingtoolkitize` which is exported by `ModelingToolkitBase`
* `parameters` which is exported by `ModelingToolkitBase`
* `PrecompileTools` which is exported by `PrecompileTools`
* `@compile_workload` which is exported by `PrecompileTools`
* `@setup_workload` which is exported by `PrecompileTools`
* `Reexport` which is exported by `Reexport`
* `@reexport` which is exported by `Reexport`

Notes:

  • @reexport using DiffEqBase is intentional (the package re-exports the DiffEqBase namespace); the bare DiffEqBase reliance is a consequence of that and may need to stay implicit / be handled specially rather than converted.
  • The MATLAB/ModelingToolkit/PrecompileTools/Reexport function and macro names can be converted to explicit using X: a, b, ... forms once verified not to break the re-export surface or downstream method extension.

Until resolved, the check runs as @test_broken and will auto-flag (Unexpected Pass) once it passes, prompting removal of the ei_broken entry. Opened as part of the run_qa v1.6 / ExplicitImports QA conversion.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with test/qa/qa.jl and the run_qa entry for the ExplicitImports check, then inspect MATLABDiffEq's import declarations for the listed names. Verify that explicit imports preserve the re-export surface and downstream method extension, run the QA check, and remove the ei_broken entry once no_implicit_imports passes.

Written by the indexing model from the issue text.

Assessment

Tech stack
julia, matlab
Domain
testing, tooling
Issue type
Refactor
Difficulty
3/5
Estimated time
1-2 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
55/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.