Skip to content

Conversation

ChrisRackauckas
Copy link
Member

Summary

  • Adds comprehensive quality assurance tests using ExplicitImports.jl and Aqua.jl
  • Converts all package imports to explicit imports for better code clarity
  • Adds new test file qa_test.jl that runs at the beginning of the test suite

Changes

  1. Test dependencies: Added ExplicitImports.jl and Aqua.jl to test extras
  2. Quality tests: Created test/qa_test.jl with:
    • Aqua tests for ambiguities, dependencies compatibility, piracies, etc.
    • ExplicitImports tests to ensure no implicit imports and no stale imports
  3. Explicit imports: Converted all using PackageX to using PackageX: symbol1, symbol2, ...
    • This makes dependencies clearer and reduces namespace pollution
    • Helps catch unused imports and makes code intent more explicit

Benefits

  • ✅ Improved code clarity with explicit imports
  • ✅ Better dependency tracking
  • ✅ Automated quality checks in CI
  • ✅ Reduced namespace pollution
  • ✅ Easier to understand what symbols come from which packages

Test plan

  • Package precompiles successfully
  • Quality assurance tests pass (with expected Aqua compat warnings for stdlib packages)
  • Full test suite passes
  • CI checks pass

🤖 Generated with Claude Code

ChrisRackauckas and others added 4 commits August 10, 2025 08:16
- Set up ExplicitImports.jl and Aqua.jl in test dependencies
- Add quality assurance test file with comprehensive tests
- Convert all package imports to explicit imports (using PackageX: f,g,h)
- Remove unnecessary implicit imports to improve code clarity
- Format code with JuliaFormatter SciMLStyle

This improves code quality by making all imports explicit, which helps with:
- Better understanding of dependencies
- Reduced namespace pollution
- Clearer code intent
- Catching unused imports

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

Co-Authored-By: Claude <[email protected]>
- Mark stdlib compat test as @test_broken since stdlib packages don't need compat entries
- Skip test dependencies compat check
- Allow AbstractSciMLOperator to be imported from SciMLBase (re-exported)
- All QA tests now pass properly
- Added compat entries for all packages in [extras]
- AlgebraicMultigrid, Aqua, DAEProblemLibrary, DiffEqCallbacks, ExplicitImports
- ForwardDiff, IncompleteLU, ODEProblemLibrary, SparseConnectivityTracer
- SparseDiffTools, Test
- Re-enabled check_extras in Aqua test since we now have compat entries
- Added compat entries for Libdl, LinearAlgebra, Logging, SparseArrays = "1"
- Set Test = "1" to match other stdlib packages
- Removed @test_broken since all compat entries are now present
- All Aqua compat tests should now pass
@ChrisRackauckas ChrisRackauckas merged commit cec637e into master Aug 10, 2025
2 of 6 checks passed
@ChrisRackauckas ChrisRackauckas deleted the add-explicit-imports-aqua branch August 10, 2025 18:18
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant