SciML / SciML/ParallelParticleSwarms.jl

QA: make implicit imports explicit (no_implicit_imports)

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

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

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 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.