Repository navigation
Conversation
…page; BREAKING + CHANGELOG Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This branch has not been deployed
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.
Closes #966.
Summary
using OptimalControlno longer brings the module nameCTLieinto scope. CTLie 0.3.0 (released 2026-10-10, in General) made the@Lieexpansion hygienic (control-toolbox/CTLie.jl#40): the generated code holds the modules, not their names. The export was there only for that.The issue's checklist
CTLie = "0.3"inProject.toml,docs/Project.tomland its snapshotdocs/src/assets/Project.toml(copied bydocs/make.jl).@reexport import CTLie: CTLieand its comment are gone fromsrc/imports/ctlie.jl, replaced by a one-line note. OptimalControl still bindsCTLieinternally (using CTLie: CTLieinsrc/OptimalControl.jl), soOptimalControl.CTLieworks andtest_ctflows.jl'sOptimalControl.CTLieis unchanged.test/suite/reexport/test_ctlie.jl: the testset "Generated Code Prefix" becomes "Module name not exported" (!is_exported(OptimalControl, :CTLie)).LieImportOnly(import OptimalControlonly) andLieMacroOnly(using OptimalControl: @Lieonly). They call@Lie [X, Y],@Lie [X, Y] is_autonomous = falseand@Lie {H1, H2}. The test asserts that neither module hasCTLieorCTBasein scope, and that the results are correct.using OptimalControlis needed" of the page "The@Liemacro" is dropped, with its hidden check (which asserted the old failure and would now fail).Choices made
"0.3"only, not"0.2, 0.3". Without the hygienic expansion, removing the export breaks@Liefor users, so 0.2 must be excluded. Nothing else in the dependency graph depends on CTLie (checked in General: CTFlows, CTDirect, CTSolvers, CTModels, CTParser and CTBase have no CTLie dep), so the bump resolves. This supersedes CompatHelper's CompatHelper: bump compat for CTLie to 0.3, (keep existing compat) #973 and CompatHelper: bump compat for CTLie to 0.3 for package docs, (keep existing compat) #974, which can be closed after merge.import CTLie: CTLie/import CTBase: CTBaseintest/suite/indirect/test_shooting_sweep.jl. They were there only because@Lieneeded them (comment said so). The Goddard@Lienow runs without them, which is an extra real-world hygiene check.[Unreleased]/ "Breaking changes (unreleased)" section ofCHANGELOG.mdandBREAKING.md, with a migration snippet (using CTLie: CTLieorOptimalControl.CTLie.…). I did not bumpversioninProject.toml: the release number (2.3.0-beta or other) is the release PR's call.BREAKING.md. Guard errors ofad/Lift/∂ₜon HVF / in-place fields are nowIncorrectArgumentinstead ofNotImplemented, and OptimalControl users see them through the re-exported functions. Nothing in OptimalControl's tests or docs relied onNotImplementedthere.docs/src/assets/Manifest.tomlnot regenerated:docs/make.jloverwrites it on the next docs build. Only the Project snapshot was updated by hand, to stay consistent withdocs/Project.toml.CTBasestays exported (out of scope, as the issue says); the other module re-exports are Remove the re-exports of CTModels and ExaModels once @def is hygienic #967, blocked on CTParser#356.Checks
Ran locally (resolved env: CTLie v0.3.0):
suite/reexport/*,suite/environment/*,suite/extensions/*andsuite/indirect/*give 861/861 passing, including the Goddard shooting sweep that uses@Lie. Full suite and docs build not run locally.🤖 Generated with Claude Code