QA: make implicit imports explicit (ExplicitImports no_implicit_imports)
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 DiffEqBaseis intentional (the package re-exports the DiffEqBase namespace); the bareDiffEqBasereliance is a consequence of that and may need to stay implicit / be handled specially rather than converted.- The
MATLAB/ModelingToolkit/PrecompileTools/Reexportfunction and macro names can be converted to explicitusing 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
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- 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