SciML / SciML/ParallelParticleSwarms.jl
QA: make implicit imports explicit (no_implicit_imports)
Nobody has claimed this yet.
- Dominant language
- Julia
- Stars
- 30
- Forks
- 4
- Avg merge
- 5h 11m
- Merged PRs (30d)
- 14
Description
The QA group (run_qa, ExplicitImports v1.6 form) currently marks
check_no_implicit_imports as ei_broken = (:no_implicit_imports,) because the
module relies on many implicit imports brought in by heavy using of several
deps. Making every name explicit at once is a large, risky refactor, so it is
tracked here and the check runs as @test_broken until resolved.
Implicit imports reported by ExplicitImports.check_no_implicit_imports(ParallelParticleSwarms):
- ForwardDiff:
ForwardDiff - KernelAbstractions:
KernelAbstractions,@groupsize,@index,@kernel,@localmem,@private,@synchronize,@uniform,CPU,get_backend - LineSearch:
LineSearch,StrongWolfeLineSearch - Optimization:
Optimization - PrecompileTools:
PrecompileTools,@compile_workload,@setup_workload - QuasiMonteCarlo:
QuasiMonteCarlo,LatinHypercubeSample - Reexport:
Reexport,@reexport - Setfield:
Setfield,@set! - SimpleNonlinearSolve:
SimpleNonlinearSolve,SimpleBroyden,SimpleLimitedMemoryBroyden - ADTypes:
AutoEnzyme,AutoForwardDiff - NonlinearSolveBase:
NonlinearSolveBase - SciMLBase:
OptimizationFunction,OptimizationProblem,SciMLBase,reinit!,remake - CommonSolve:
init,solve,solve! - StaticArrays:
StaticArrays,@SArray - StaticArraysCore:
MVector,SArray,SVector
Resolution path: replace bare using <Dep> with explicit using <Dep>: name1, name2, ...
for each dep above, then drop :no_implicit_imports from ei_broken in
test/qa/qa.jl. The @test_broken auto-flags as an unexpected pass once the check is clean.
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 by running the QA group with ExplicitImports v1.6 and inspect test/qa/qa.jl, especially the ei_broken entry and @test_broken check. Replace each dependency's bare using with the explicit names listed in the issue. Done means check_no_implicit_imports(ParallelParticleSwarms) is clean and :no_implicit_imports is removed from ei_broken.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- julia
- Domain
- testing
- Issue type
- Refactor
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Clearly specified
- Newbie friendliness
- 48/100