Move Options, Strategies, and Orchestration to CTBase#149
Merged
Conversation
These three modules are generic infrastructure with no dependency on CTSolvers-specific code. Moving them to CTBase makes them available to the broader control-toolbox ecosystem (OptimalControl, etc.) without going through CTSolvers. Changes: - Remove src/Options/, src/Strategies/, src/Orchestration/ (moved to CTBase 0.21) - Update src/CTSolvers.jl: drop the three includes, update architecture docstring - Rewire src/Modelers/Modelers.jl and src/Solvers/Solvers.jl to CTBase.Options / CTBase.Strategies - Rewire all 7 extensions (CTSolversCUDA, Ipopt, Knitro, MadNCL, MadNLP, MadNLPGPU, Uno) - Drop pure unit/contract tests that moved to CTBase (options: 7, orchestration: 10, strategies: 17) - Rewire the 11 remaining strategy integration tests and all modeler/solver tests to CTBase.* - Add explicit contract validation testsets (id, metadata, options) for all concrete strategies: Modelers.ADNLP, Modelers.Exa, Solvers.Ipopt, MadNLP, MadNCL, Uno - Remove the 4 developer guides that moved to CTBase (options system, implementing a strategy, strategy parameters, orchestration and routing); update index.md, architecture.md, implementing_a_modeler.md, implementing_a_solver.md with references to CTBase.jl docs - Update docs/api_reference.jl and docs/make.jl to remove the moved API sections - Bump CTBase dependency to 0.21.0-beta Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
This PR completes the migration of three generic infrastructure modules from CTSolvers to CTBase, making them available to the broader control-toolbox ecosystem.
Modules moved to CTBase 0.21:
Options— option definition, extraction, and validationStrategies— abstract strategy contract, registry, builders, disambiguation, introspectionOrchestration— routing and disambiguation of strategy parametersThis is a clean break: no re-export shims. All call sites now use
CTBase.Options,CTBase.Strategies,CTBase.Orchestration.Changes
Source
src/Options/,src/Strategies/,src/Orchestration/(34 files, ~5500 lines)src/CTSolvers.jl: drop threeinclude/usingblocks, update architecture docstringsrc/Modelers/Modelers.jlandsrc/Solvers/Solvers.jltoCTBase.Options/CTBase.StrategiesCTSolversCUDA,Ipopt,Knitro,MadNCL,MadNLP,MadNLPGPU,Uno)Tests
CTBase.*id,metadata,options) for all concrete strategies:Modelers.ADNLP,Modelers.Exa,Solvers.Ipopt,MadNLP,MadNCL,UnoDocumentation
index.md,architecture.md,implementing_a_modeler.md,implementing_a_solver.mdwith pointers to CTBase.jl documentationdocs/api_reference.jlanddocs/make.jlto remove the moved API sectionsDependencies
0.21.0-beta(the release that contains Options, Strategies, Orchestration)Test plan
julia --project=docs docs/make.jl) — no broken cross-references or undefined symbols🤖 Generated with Claude Code