Skip to content
This repository was archived by the owner on May 12, 2026. It is now read-only.

Improve explicit imports hygiene#170

Merged
ChrisRackauckas merged 1 commit into
SciML:masterfrom
ChrisRackauckas-Claude:explicit-imports-20260102-044621
Jan 3, 2026
Merged

Improve explicit imports hygiene#170
ChrisRackauckas merged 1 commit into
SciML:masterfrom
ChrisRackauckas-Claude:explicit-imports-20260102-044621

Conversation

@ChrisRackauckas-Claude

Copy link
Copy Markdown
Contributor

Summary

This PR improves code clarity and maintainability by adding explicit imports for all used functions from dependencies and removing stale imports.

Changes

  1. Added explicit imports for all used functions from dependencies:

    • CommonSolve: init, solve, step!
    • SciMLBase: DAEProblem, DESolution, EnsembleProblem, EnsembleSolution, EnsembleThreads, NonlinearProblem, ODEProblem, ReturnCode, SDDEProblem, SDEProblem, remake
    • RecipesBase: @recipe, @series
    • RecursiveArrayTools: recursive_mean, vecvecapply
    • DiffEqNoiseProcess: NoiseGrid, NoiseWrapper
    • StructArrays: StructArray
    • NLsolve: nlsolve
    • LinearAlgebra: /, \
    • RootedTrees: RootedTreeIterator, RungeKuttaMethod, residual_order_condition
    • Statistics: mean, std
    • Base: convert, transpose
  2. Removed stale import of AbstractDDEProblem (not used)

  3. Added CommonSolve to dependencies - was only a transitive dependency before, now explicit

  4. Added ExplicitImports.jl tests to CI to prevent regression and maintain import hygiene

Testing

  • All existing tests pass
  • New ExplicitImports hygiene tests added and passing
  • Verified with ExplicitImports.jl:
    • ✓ No implicit imports
    • ✓ No stale explicit imports

Benefits

  • Clarity: Readers can see exactly where each function comes from
  • Maintainability: Changes to dependencies won't silently break code
  • Robustness: No reliance on transitive dependencies
  • CI enforcement: ExplicitImports tests prevent future regressions

cc @ChrisRackauckas

🤖 Generated with Claude Code

Co-Authored-By: Claude Sonnet 4.5 noreply@anthropic.com

This PR adds explicit imports to improve code clarity and maintainability:

1. Added explicit imports for all used functions from dependencies
   - CommonSolve: init, solve, step!
   - SciMLBase: DAEProblem, DESolution, EnsembleProblem, etc.
   - RecipesBase: @recipe, @Series
   - RecursiveArrayTools: recursive_mean, vecvecapply
   - DiffEqNoiseProcess: NoiseGrid, NoiseWrapper
   - StructArrays: StructArray
   - NLsolve: nlsolve
   - LinearAlgebra: /, \
   - RootedTrees: RootedTreeIterator, RungeKuttaMethod, residual_order_condition
   - Statistics: mean, std
   - Base: convert, transpose

2. Removed stale import of AbstractDDEProblem (not used)

3. Added CommonSolve to dependencies (was only a transitive dependency before)

4. Added ExplicitImports.jl tests to CI to prevent regression

All tests pass, including the new ExplicitImports hygiene tests.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
@ChrisRackauckas ChrisRackauckas merged commit a424bb8 into SciML:master Jan 3, 2026
3 of 6 checks passed
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants