Skip to content

Releases: control-toolbox/CTParser.jl

v0.8.13

03 Apr 11:18
229b2f6

Choose a tag to compare

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 @init alias 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

03 Apr 09:47

Choose a tag to compare

v0.8.11-beta

03 Apr 09:46

Choose a tag to compare

What's Changed

  • Refactor @init alias 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

16 Mar 13:53

Choose a tag to compare

What's Changed

Full Changelog: v0.8.9-beta...v0.8.10-beta

v0.8.9-beta

16 Mar 13:48

Choose a tag to compare

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

09 Mar 17:28
fef57ae

Choose a tag to compare

Release notes

What's Changed

Full Changelog: v0.8.7...v0.8.8

v0.8.7

09 Mar 16:07

Choose a tag to compare

What's Changed

Full Changelog: v0.8.6...v0.8.7

v0.8.6

09 Mar 10:05
9f51a5a

Choose a tag to compare

What's Changed

Full Changelog: v0.8.0...v0.8.6

v0.8.1

02 Jan 15:54
f0e6720

Choose a tag to compare

What's Changed

Full Changelog: v0.8.0...v0.8.1

v0.8.0

10 Dec 09:30
cf36215

Choose a tag to compare

CTParser v0.8.0

Diff since v0.7.2

CTParser v0.8.0

Highlights

  • New @init macro for initial guesses – Introduced an initialisation DSL implemented in src/initial_guess.jl to 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!() in src/initial_guess.jl so that @init can 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.toml and test/Project.toml to 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.md to describe the @def and @init macros, 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 @init DSL, 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
  • Julia version
  • API changes
    • No breaking removals or renames detected. The new @init macro and the init_prefix/init_prefix! functions are additive and coexist with the existing @def-based workflow.
  • Behaviour changes
    • @init now routes initial-guess construction through the backend selected by init_prefix() (default :CTModels). Custom backends must implement build_initial_guess(ocp, spec) and validate_initial_guess(ocp, ig) with the expected semantics.

New Features

  • Added the @init macro in src/initial_guess.jl to build backend-specific initial guesses from a compact DSL over an optimal control problem ocp defined with @def.
  • Introduced init_prefix() and init_prefix!() in src/initial_guess.jl to control which backend module (default :CTModels) interprets the NamedTuple produced 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.jl and src/initial_guess.jl by consistently using CTBase.ParsingError via the configured error-handling prefix and wrapping generated code with __wrap for better line information.

Bug Fixes

  • Fixed documentation build issues with newer Documenter and CTBase versions by declaring explicit dependencies and compat entries in docs/Project.toml.
  • Updated tests to work with the new compat ranges for CTBase, CTModels and NLPModels, resolving failures when running the full control-toolbox test suite.

Documentation

  • Expanded the main documentation page in docs/src/index.md to describe CTParser’s role in the control-toolbox ecosystem and how it interfaces with CTModels.jl, ExaModels.jl and other packages.
  • Documented the @def macro, its functional and ExaModels backends, and how backend prefixes can be customised from user code.
  • Added user-facing documentation for the new @init macro, including examples that highlight the need to qualify private functions with their module (e.g. CTParser.private_fun(x)), and how @init delegates to backend-specific build_initial_guess / validate_initial_guess implementations.

Tests

Internal

  • Removed the obsolete docs/src/dev.md page 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.jl across the codebase (#171), and recorded the formatter configuration in formatter.lock.
  • Updated CI to use actions/checkout@v6 in UpdateReadme.yml (#176).
  • Collected compat and testing updates (including the new @init DSL 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:

  • [Dev] Use named tuple for init (#58)
  • Error when using euler_implicit with ExaModels (#172)
  • [General] release v0.7.2 (#175)
  • [Dev] Update compat and more (#180)
  • [Dev] Tests (#185)