Skip to content

Rename modelers and solvers for consistency#69

Merged
ocots merged 18 commits intodevelopfrom
rename
Feb 13, 2026
Merged

Rename modelers and solvers for consistency#69
ocots merged 18 commits intodevelopfrom
rename

Conversation

@ocots
Copy link
Copy Markdown
Member

@ocots ocots commented Feb 13, 2026

Summary

This PR renames modelers and solvers to have more consistent and concise naming throughout the codebase.

Renamings

Modelers

  • DiscretizedOptimalControlProblemDiscretizedModel
  • AbstractOptimizationModelerAbstractNLPModeler
  • ADNLPModelerADNLP
  • ExaModelerExa

Solvers

  • AbstractOptimizationSolverAbstractNLPSolver
  • IpoptSolverIpopt
  • MadNLPSolverMadNLP
  • MadNCLSolverMadNCL
  • KnitroSolverKnitro

Strategy Framework (unchanged)

  • AbstractStrategy
  • StrategyRegistry
  • StrategyMetadata
  • StrategyOptions
  • OptionDefinition
  • RoutedOption

Changes

  • Updated all type definitions and constructors
  • Updated all references in tests and documentation
  • Maintained backward compatibility through exports where possible
  • Updated module qualifications (e.g., Modelers.ADNLP instead of ADNLPModeler)

Files Modified

  • src/Modelers/ - All modeler implementations
  • src/Solvers/ - All solver implementations
  • test/ - Updated test references
  • ext/ - Updated extension implementations
  • Various integration and documentation files

Impact

  • More concise and consistent naming across the codebase
  • Better separation of concerns with clearer type names
  • All tests pass with the new naming
  • Breaking change for users of the renamed types

- Update CTModels dependency from 0.8 to 0.9
- Replace AbstractOptimalControlProblem with AbstractModel in type definitions
- Update documentation references to use new abstract types
- Update test suite to use new AbstractModel interface
- Update type references in DOCP module files
- Rename types in documentation (architecture.md, implementing_an_optimization_problem.md, index.md)
- Update test suites to use new type names
- Maintain consistency across all references
- Update Modelers module with new type references
- Update Strategies API and contract files
- Update Orchestration and Solvers modules
- Update comprehensive test suites
- Update documentation to reflect type changes
- Maintain consistency across all module interfaces
- Update all references to ADNLPModeler to use Modelers.ADNLPModeler
- Fix test imports to use explicit module qualification
- Update documentation examples with proper module prefixes
- Maintain consistency in module naming across all files
- Fix isdefined syntax errors in test files
- Replace all occurrences of ADNLPModeler with ADNLP
- Update struct definition from ADNLPModeler to ADNLP
- Update constructor function name from Modelers.ADNLPModeler to Modelers.ADNLP
- Update all documentation references and examples
- Update all test files to use new type name
- Update exports in Modelers module
- Maintain backward compatibility through deprecation warnings
- Update all references to ExaModeler to use Modelers.ExaModeler
- Maintain consistency with ADNLP qualification pattern
- Update struct definition to use ExaModeler (not Modelers.ExaModeler)
- Update all documentation references and examples
- Update all test files to use qualified module names
- Update imports in test files for consistency
- Ensure uniform naming convention across both modelers
- Replace all occurrences of ExaModeler with Exa
- Update struct definition from ExaModeler to Exa
- Update constructor function name from Modelers.ExaModeler to Modelers.Exa
- Update all documentation references and examples
- Update all test files to use new type name
- Update exports in Modelers module
- Maintain consistent naming pattern with ADNLP (short, concise names)
- Update cross-references between ADNLP and Exa documentation
- Add redirect_stderr(devnull) around tests that intentionally generate warnings
- Hide warnings for unknown options in permissive mode tests
- Keep test functionality while reducing terminal output pollution
- Apply to Modelers.ADNLP, Modelers.Exa, and all solver tests
- Maintain all test assertions and validation logic
- Wrap all permissive mode tests with redirect_stderr(devnull) to hide expected warnings
- Wrap validation error tests with redirect_stderr(devnull) to hide expected error messages
- Fix missing 'end' in test_strict_permissive_integration.jl
- Comment out println statements for extension loading in test_route_to_comprehensive.jl

Tests now have clean output while maintaining all validation logic.
- Rename IpoptSolver -> Ipopt for brevity and consistency
- Rename KnitroSolver -> Knitro for brevity and consistency
- Update all references in tests, documentation, and extensions
- Maintain backward compatibility through proper exports
- Update solver registry and validation tests
- Fix all documentation references to use new names

All tests pass with the new naming convention.
- Rename Solvers.MadNLPSolver to Solvers.MadNLP across codebase
- Update all test files to use new naming convention
- Fix import statements and references in documentation
- Update CHANGELOG.md with breaking change notice
- Ensure consistency in solver type naming

This is a breaking change that affects user code using MadNLP solver.
- Suppress deprecation warnings in modelers tests using redirect_stderr
- Fix import references in comprehensive validation tests
- Remove console warnings for adnlp_backend and exa_backend aliases
- Ensure clean test output while maintaining test logic
@ocots ocots merged commit 12dd470 into develop Feb 13, 2026
8 checks passed
@ocots ocots deleted the rename branch February 13, 2026 17:20
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