Releases: control-toolbox/CTParser.jl
Releases · control-toolbox/CTParser.jl
v0.8.13
What's Changed
- [AUTO] JuliaFormatter.jl run by @github-actions[bot] in #238
- CompatHelper: add new compat entry for ExaModels at version 0.9 for package test, (drop existing compat) by @github-actions[bot] in #239
- Init by @ocots in #241
- Refactor
@initalias system to use compile-time substitution by @ocots in #244 - [AUTO] JuliaFormatter.jl run by @github-actions[bot] in #245
- feat: support optimal control problems with zero-dimensional control by @ocots in #246
- Bump version from 0.8.12-beta to 0.8.13 by @ocots in #248
Full Changelog: v0.8.8...v0.8.13
v0.8.12-beta
Full Changelog: v0.8.11-beta...v0.8.12-beta
v0.8.11-beta
What's Changed
- Refactor
@initalias system to use compile-time substitution by @ocots in #244 - [AUTO] JuliaFormatter.jl run by @github-actions[bot] in #245
Full Changelog: v0.8.10-beta...v0.8.11-beta
v0.8.10-beta
v0.8.9-beta
What's Changed
- [AUTO] JuliaFormatter.jl run by @github-actions[bot] in #238
- CompatHelper: add new compat entry for ExaModels at version 0.9 for package test, (drop existing compat) by @github-actions[bot] in #239
Full Changelog: v0.8.8...v0.8.9-beta
v0.8.8
Release notes
What's Changed
- re-added initial guess tests by @jbcaillau in #236
Full Changelog: v0.8.7...v0.8.8
v0.8.7
v0.8.6
What's Changed
- Refactor CI workflow for test jobs by @ocots in #196
- scalarised constraint bounds by @jbcaillau in #195
- Dynamics exa by @jbcaillau in #205
- Generalize exa_linalg to AbstractVector/AbstractMatrix by @jbcaillau in #210
- 211 dev optimise exa linalg by @jbcaillau in #212
- Update test suite and gitignore configuration by @jbcaillau in #218
- Update CTModels compat by @ocots in #225
- replaced homemade exalinalg by ExaModels LinearAlgebra extension by @jbcaillau in #228
- Develop by @jbcaillau in #219
Full Changelog: v0.8.0...v0.8.6
v0.8.1
What's Changed
- Refactor CI workflow for test jobs by @ocots in #196
- scalarised constraint bounds by @jbcaillau in #195
- Vectorisation bis by @jbcaillau in #201
Full Changelog: v0.8.0...v0.8.1
v0.8.0
CTParser v0.8.0
CTParser v0.8.0
Highlights
- New
@initmacro for initial guesses – Introduced an initialisation DSL implemented insrc/initial_guess.jlto build backend-specific initial guesses from compact specifications, with support for time-dependent functions, time grids and constants. - Configurable initial-guess backend – Added
init_prefix()/init_prefix!()insrc/initial_guess.jlso that@initcan target custom backends (default:CTModels), mirroring the backend customisation already available for@def. - Compat bump to CTBase 0.17 and CTModels 0.7 – Updated compat bounds in
Project.toml,docs/Project.tomlandtest/Project.tomlto align CTParser with the latest control-toolbox ecosystem. - Expanded documentation for CTParser’s role and DSLs – Reworked the main landing page in
docs/src/index.mdto describe the@defand@initmacros, backend prefixes and the separation between parsing, model building and initial-guess construction. - Extended test coverage for parsing and initialisation – Added several new test files in
test/covering the@initDSL, backend prefixes and one-pass parsing paths (e.g.test_initial_guess.jl,test_onepass_exa_bis.jl,test_onepass_fun_bis.jl,test_prefix_bis.jl,test_utils_bis.jl).
Breaking Changes / Compatibility Notes
- Dependency updates
CTBasecompat raised from0.16to0.17inProject.tomlandtest/Project.toml.CTModelscompat raised from0.6to0.7intest/Project.toml.NLPModelscompat set to0.21intest/Project.toml.OrderedCollectionscompat relaxed from"1.8"to"1"inProject.toml, and added as an explicit test dependency with compat"1.8".- Documentation environment now depends on
CTBase0.17,Documenter1,MarkdownandMarkdownASTindocs/Project.toml.
- Julia version
- Package compat remains
julia = "1.10"inProject.toml; the test environment now also declaresjulia = "1.10"intest/Project.toml.
- Package compat remains
- API changes
- No breaking removals or renames detected. The new
@initmacro and theinit_prefix/init_prefix!functions are additive and coexist with the existing@def-based workflow.
- No breaking removals or renames detected. The new
- Behaviour changes
@initnow routes initial-guess construction through the backend selected byinit_prefix()(default:CTModels). Custom backends must implementbuild_initial_guess(ocp, spec)andvalidate_initial_guess(ocp, ig)with the expected semantics.
New Features
- Added the
@initmacro insrc/initial_guess.jlto build backend-specific initial guesses from a compact DSL over an optimal control problemocpdefined with@def. - Introduced
init_prefix()andinit_prefix!()insrc/initial_guess.jlto control which backend module (default:CTModels) interprets theNamedTupleproduced by@init. - Added optional logging support to
@init(log = true) to print a human-readable,NamedTuple-like summary of the initialisation specification, which can aid debugging of complex initial guesses.
Enhancements
- Clarified and documented the default backend settings in
src/defaults.jl, including parsing backend, ExaModels scheme/grid size, base scalar type and backend prefixes for both functional and ExaModels modes. - Improved error-reporting utilities in
src/onepass.jlandsrc/initial_guess.jlby consistently usingCTBase.ParsingErrorvia the configured error-handling prefix and wrapping generated code with__wrapfor better line information.
Bug Fixes
- Fixed documentation build issues with newer
DocumenterandCTBaseversions by declaring explicit dependencies and compat entries indocs/Project.toml. - Updated tests to work with the new compat ranges for
CTBase,CTModelsandNLPModels, resolving failures when running the full control-toolbox test suite.
Documentation
- Expanded the main documentation page in
docs/src/index.mdto describe CTParser’s role in the control-toolbox ecosystem and how it interfaces withCTModels.jl,ExaModels.jland other packages. - Documented the
@defmacro, its functional and ExaModels backends, and how backend prefixes can be customised from user code. - Added user-facing documentation for the new
@initmacro, including examples that highlight the need to qualify private functions with their module (e.g.CTParser.private_fun(x)), and how@initdelegates to backend-specificbuild_initial_guess/validate_initial_guessimplementations.
Tests
- Added
test/test_initial_guess.jlto exercise the@initDSL, alias handling, time grids, time-dependent functions and backend delegation. - Added
test/test_onepass_exa_bis.jlandtest/test_onepass_fun_bis.jlto further stress the one-pass parser on both ExaModels and functional backends. - Added
test/test_prefix_bis.jlandtest/test_utils_bis.jlto cover backend prefix setters and various parsing utilities.
Internal
- Removed the obsolete
docs/src/dev.mdpage and cleaned up references to it in the documentation build. - Dropped the old
reports/directory from version control and added it to.gitignore, while still using it as a convenient local location for generated artefacts such as release notes. - Applied
JuliaFormatter.jlacross the codebase (#171), and recorded the formatter configuration informatter.lock. - Updated CI to use
actions/checkout@v6inUpdateReadme.yml(#176). - Collected compat and testing updates (including the new
@initDSL and extended tests) under dedicated pull requests such as #183 and #186.
Full Changelog: v0.7.2...v0.8.0
Merged pull requests:
- Bump actions/checkout from 5 to 6 (#176) (@dependabot[bot])
- Update compat and more (#183) (@ocots)
- Add tests (#186) (@ocots)
- CompatHelper: add new compat entry for MarkdownAST at version 0.1 for package docs, (drop existing compat) (#188) (@github-actions[bot])
- Add initial guess tests to runtests (#190) (@ocots)
Closed issues: