Skip to content

Conversation

ParamThakkar123
Copy link
Contributor

Checklist

  • Appropriate tests were added
  • Any code changes were done in a way that does not break public API
  • All documentation related to code changes were updated
  • The new code follows the
    contributor guidelines, in particular the SciML Style Guide and
    COLPRAC.
  • Any new documentation only uses public API

Additional context

Add any other context about the problem here.

@ParamThakkar123 ParamThakkar123 marked this pull request as draft October 6, 2025 13:14
@oscardssmith
Copy link
Member

Note that this refactor has already been started in #2448, #2475 so we should probably colapse this into those.

@ParamThakkar123
Copy link
Contributor Author

Sure

ChrisRackauckas and others added 27 commits October 6, 2025 19:26
Removed unused imports that were causing ExplicitImports.jl test failures.
The following stale imports were removed:
- From OrdinaryDiffEqCore: Many utility functions that are no longer directly used
- From OrdinaryDiffEqDifferentiation: Functions that are not directly referenced
- From OrdinaryDiffEqNonlinearSolve: Several internal functions
- From OrdinaryDiffEqRosenbrock: RosenbrockMutableCache

All explicit import tests now pass.

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

Co-Authored-By: Claude <[email protected]>
- Remove duplicate exports of AutoTsit5 and AutoDP5 (already exported earlier in the file)
- Add missing imports for AutoVern6, AutoVern7, AutoVern8, AutoVern9 from OrdinaryDiffEqVerner
- Fixes ExplicitImports.jl test failures
…ctions

- Added missing LinearAlgebra imports: diag, inv, rank, isdiag
- Added missing DataStructures import: FasterForward
- Fixed imports in OrdinaryDiffEqCore, OrdinaryDiffEqSDIRK, OrdinaryDiffEqRosenbrock, and OrdinaryDiffEqLinear modules
- Add explicit imports for all OrdinaryDiffEq submodules
- Add CommonSolve dependency and explicit imports for init, solve, solve\!, step\!
- Add explicit imports for SciMLBase functions
- Export all submodule names to satisfy ExplicitImports.jl
- Remove unused AdaptiveRadau import
- Run JuliaFormatter on modified files

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

Co-Authored-By: Claude <[email protected]>
- Add explicit imports for all OrdinaryDiffEq submodules
- Add CommonSolve dependency and explicit imports for init, solve, solve\!, step\!
- Add explicit imports for SciMLBase functions
- Export all submodule names to satisfy ExplicitImports.jl
- Remove unused AdaptiveRadau import
- All ExplicitImports.jl tests now pass

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

Co-Authored-By: Claude <[email protected]>
…tiation

- Fixed recursivecopy import in OrdinaryDiffEqCore
- Added SciMLBase and SciMLOperators module imports in OrdinaryDiffEqDifferentiation
- Fixed @logmsg import in OrdinaryDiffEqCore

🤖 Generated with Claude Code

Co-Authored-By: Claude <[email protected]>
🤖 Generated with Claude Code

Co-Authored-By: Claude <[email protected]>
…erentiation

- Added recursive_unitless_eltype import to OrdinaryDiffEqCore
- Added ODEFunction, SplitFunction, DynamicalODEFunction, islinear imports to OrdinaryDiffEqDifferentiation

🤖 Generated with Claude Code

Co-Authored-By: Claude <[email protected]>
- Changed all @reexport statements from DiffEqBase to SciMLBase in all sublibraries (32 files)
- Added SciMLBase as a dependency to all subpackages that use @reexport
- Fixed imports that moved from SciMLBase to DiffEqBase:
  - initialize_dae!, get_tstops, get_tstops_array, get_tstops_max
  - ODE_DEFAULT_NORM, ODE_DEFAULT_ISOUTOFDOMAIN, ODE_DEFAULT_PROG_MESSAGE, ODE_DEFAULT_UNSTABLE_CHECK
  - calculate_residuals, calculate_residuals!, @tight_loop_macros, timedepentdtmin
  - prepare_alg functions
  - max_vector_callback_length_int, value
- Updated ExplicitRKTableau references to use DiffEqBase
- Fixed unitfulvalue function to reference DiffEqBase
- Removed copyat_or_push! from exports (internal function)

This allows ExplicitImports tests to skip SciMLBase as configured in the test.
This commit fixes the test failures related to missing function imports/exports:

1. Fixed SciMLBase.value not defined error in OrdinaryDiffEqCore/src/misc_utils.jl by using DiffEqBase.value instead
2. Added missing DAEFunction import in OrdinaryDiffEqDifferentiation
3. Removed unused copyat_or_push\! imports from OrdinaryDiffEqTsit5 and OrdinaryDiffEqLowOrderRK
4. Added missing prepare_alg imports in OrdinaryDiffEqExponentialRK and OrdinaryDiffEqLowOrderRK

These changes address the compilation failures where subpackages were trying to use functions that weren't properly imported due to the explicit imports refactoring.

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

Co-Authored-By: Claude <[email protected]>
ChrisRackauckas and others added 28 commits October 6, 2025 19:30
- Import DefaultInit, ShampineCollocationInit, BrownBasicInit from DiffEqBase
- Add extended versions for OrdinaryDiffEq-specific options
- Update OrdinaryDiffEqNonlinearSolve to accept both base and extended types
- Add helper functions to handle algorithm parameter differences
- Bump DiffEqBase to 6.190 for new initialization algorithms
- Remove conflicting constructor overloads
- Keep only positional argument constructors for backward compatibility
- Add helper functions for parameter extraction from both base and extended types
- Update OrdinaryDiffEqNonlinearSolve to handle both DiffEqBase and extended types
Now that DiffEqBase has the extended versions of BrownBasicInit and ShampineCollocationInit with parameters, OrdinaryDiffEq can use them directly instead of maintaining its own extended types.

Changes:
- Import BrownFullBasicInit from DiffEqBase
- Remove local extended type definitions
- Create aliases for backward compatibility
- Update OrdinaryDiffEqNonlinearSolve to use DiffEqBase types

This simplifies the code and reduces duplication across the ecosystem.

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

Co-Authored-By: Claude <[email protected]>
- Bump DiffEqBase requirement to 6.190.1 in all relevant Project.toml files
- Remove delegation from DiffEqBase types to extended versions since DiffEqBase now has the full versions with parameters
- Keep backward compatibility aliases for ShampineCollocationInitExt and BrownBasicInitExt

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

Co-Authored-By: Claude <[email protected]>
- Remove unnecessary backward compatibility aliases (ShampineCollocationInitExt, BrownBasicInitExt)
- Remove unnecessary getter functions - use direct field access instead
- Add ODEIntegrator type dispatch to disambiguate from DiffEqBase implementations
- Remove redundant DefaultInit delegation

This keeps the PR minimal and focused on using the DiffEqBase extended algorithms.

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

Co-Authored-By: Claude <[email protected]>
- Remove BrownBasicInit import and export
- Update DiffEqBase requirement to 6.190.2 across all packages
- Align with DiffEqBase PR SciML#1216 to simplify the initialization algorithm API
- Replace Union{BrownBasicInit, BrownFullBasicInit} with just BrownFullBasicInit
- Aligns with DiffEqBase PR SciML#1216 removing the BrownBasicInit alias
…qCore

- Move imports and exports from initialize_dae.jl to OrdinaryDiffEqCore.jl
- Follows the pattern of having all imports/exports at the subpackage top level
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.

9 participants