Conversation
Member
jbcaillau
commented
Feb 25, 2026
- PR tracking develop -> main
- develop stores the latest beta
…link - Combine test/Project.toml into main Project.toml using [extras] and [targets] - Add compat constraints for all test dependencies - Fix broken external reference in docs/src/manual-model.md - Update version to 1.1.7-beta
- Accept CTParser v0.7 and v0.8 - Prepare for CTParser v0.8.2-beta testing - Part of migration tracked in control-toolbox/CTParser.jl#207
Adapt to CTModels v0.7.x and integrate CTSolvers
- Add ctbase.jl with CTBase exception reexports using @reexport import - Add ctdirect.jl with CTDirect types and functions reexports - Add test_ctbase.jl and test_ctdirect.jl to verify reexports - Enable ctdirect.jl include in OptimalControl.jl - Add Reexport dependency to Project.toml - Fix 'Invalid redefinition of constant' error by using proper @reexport import pattern
- Add ctflows.jl with CTFlows types, functions, operators, and macros reexports - Add test_ctflows.jl to verify reexports with proper type checking - Fix test issues: separate types vs functions, handle @lie macro correctly - Enable ctflows.jl include in OptimalControl.jl - All reexport tests now passing (35/35)
- Add reexport tests for CTModels, CTParser, CTSolvers, and ExaModels - Fix @reexport import syntax errors by combining multiple import blocks - Enable ctmodels.jl, ctparser.jl, ctsolvers.jl, and examodels.jl imports - Add module prefix exports (CTBase, CTModels, ExaModels) for generated code - Remove unused plots.jl import file - All reexport tests now pass (426/426 tests)
- Add canonical solve function in src/solve.jl with CommonSolve interface - Export solve function from OptimalControl module - Create test problems (Beam, Goddard) in test/problems/ - Add comprehensive test_canonical.jl testing all combinations: * Discretizers: Collocation (midpoint, trapeze) * Modelers: ADNLPModeler, ExaModeler * Solvers: IpoptSolver, MadNLPSolver * Problems: Beam, Goddard - Add progress printing for test debugging - Update Project.toml dependencies (Reexport version, gitignore) - Remove unused modelers.jl (moved to .save/)
- Change println to print for inline progress display - Add ✓ done confirmation after each test completion
- Add CUDA import and MadNLPGPU dependency - Add CUDA availability check with informative message at module load - Add GPU test section with: * ExaModeler(backend=CUDA.CUDABackend()) * MadNLPSolver(linear_solver=MadNLPGPU.CUDSSSolver) * Guarded by CUDA.functional() check - Tests run only if CUDA is available, otherwise skipped with @info - Update Project.toml to include MadNLPGPU in dependencies and test extras
- Remove redundant validate_initial_guess call (already done in build_initial_guess) - Update comment to reflect build_initial_guess handles both building and validation
- Create test/suite/builders/test_options_forwarding.jl - Test ExaModeler options: base_type and backend (both @test_broken) - Test ADNLPModeler options: name (@test_broken), backend (@test), and advanced backend overrides (@test_broken) - Use MockGPUBackend <: KernelAbstractions.GPU for backend testing - Document which options are currently forwarded vs not forwarded by CTDirect builders
- Remove @reexport from imports that should not be exported - Update test files to use fully qualified type names - Fix test expectations: types should not be exported to Main - Ensure proper module scoping in reexport tests
- Convert 3 @test_broken → @test for advanced ADNLPModeler backends - Add tests for all 7 advanced backend options (gradient, hessian, jacobian, hprod, jprod, jtprod, ghjvprod) - Use Types instead of instances for cleaner API (no args needed) - Add conditional GPU backend test for ExaModeler when CUDA available - Update comments to reflect CTSolvers v0.2.5-beta capabilities - Add CUDA availability check in test files - Fix Goddard problem objective (max → min formulation) - Update runtests.jl with CUDA check - Update test_canonical.jl CUDA check pattern Result: 10 Pass tests (vs 3 Pass, 3 Broken before) Full coverage of all testable backend forwarding options
- Create test_print_utils.jl module with SOLID architecture - Add column headers for better readability - Implement scientific notation for error (8.14e-04 format) - Add phantom sign for positive objectives alignment - Make memory display optional (disabled by default) - Use CTModels iterations() function for proper data extraction - Maintain backward compatibility with existing tests Features: - Professional table format inspired by CTBenchmarks.jl - Real-time progress display with colors - Summary statistics with success rate - Clean separation of concerns (SRP, DIP, DRY) - 48/48 tests passing
… modes - Added to test explicit and descriptive modes on a real problem (Beam). - Limited iterations to 0 to ensure fast execution while verifying correct routing and return types. - Follows Separation of Concerns by isolating these end-to-end mode tests from unit and canonical tests.
- Document two orthogonal mechanisms: route_to(...; bypass=true) and bypass(val) - route_to with bypass: local permissive mode for descriptive solve - bypass(val): wrapper for explicit strategy constructors - Detailed implementation plan with file-by-file changes - Clear separation: mode for global control, bypass for local actions
- Add English header comments explaining the role of each test file - Updated test files in suite/solve/, suite/helpers/, suite/builders/, and suite/reexport/ - Comments describe what each test suite validates and its place in the architecture - Improves code readability and maintainability for developers
- New test file test/suite/solve/test_bypass.jl with 27 tests - Mock strategies implementing full CTSolvers contract (StrategyOptions, metadata, options accessor) - Layer 3 override intercepting solve call to inspect resulting strategies - Descriptive mode: error without bypass, bypass on solver/discretizer/modeler, multi-bypass, bypass(nothing) - Explicit mode: bypass via strategy constructor - Top-level dispatch: both descriptive and explicit paths via solve()
…tions with aliases init/i - _descriptive_action_defs() declares initial_guess (aliases: init, i) and display - _build_components_from_routed receives ocp, extracts action options from routed.action - _DEFAULT_DISPLAY and _DEFAULT_INITIAL_GUESS constants as single source of truth - _unwrap_option helper to unwrap OptionValue without duplication - solve_descriptive signature simplified: no more explicit initial_guess/display args - solve_explicit extracts action options from kwargs with _extract_action_kwarg - CommonSolve.solve signature simplified: all kwargs... - _extract_action_kwarg helper with alias conflict detection - OptionValue imported from CTSolvers - All 284 solve tests pass
…max_iter=0 behavior
…dispatch and test_orchestration
…ALIASES/_INITIAL_GUESS_ALIASES_ONLY constants
…xport added reexport ExaLinAlg
Member
Author
|
stupid spell check failure! |
Contributor
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #707 +/- ##
===========================================
+ Coverage 67.74% 89.93% +22.19%
===========================================
Files 2 14 +12
Lines 31 159 +128
===========================================
+ Hits 21 143 +122
- Misses 10 16 +6 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
Release v1.2.2-beta
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.