Skip to content

Upgrade to CTBase 0.21 / CTModels 0.12 and consume CTBase.Strategies + Core utils#270

Merged
ocots merged 4 commits into
developfrom
move/ctflows-to-ctbase-phase-a
Jun 23, 2026
Merged

Upgrade to CTBase 0.21 / CTModels 0.12 and consume CTBase.Strategies + Core utils#270
ocots merged 4 commits into
developfrom
move/ctflows-to-ctbase-phase-a

Conversation

@ocots

@ocots ocots commented Jun 22, 2026

Copy link
Copy Markdown
Member

Summary

Brings CTFlows up to date with the current control-toolbox ecosystem and starts
consuming generic building blocks from CTBase.

Two related concerns, kept as separate commits in this single PR:

  1. Ecosystem upgrade — CTBase 0.20 → 0.21, CTModels 0.11 → 0.12.
    The Strategies / Options / Orchestration modules moved from CTSolvers
    into CTBase (clean break). All references are rewired
    CTSolvers.* → CTBase.*, and the now-unused CTSolvers and CommonSolve
    dependencies are dropped.
  2. Core utils (phase A of the CTFlows → CTBase move)AbstractTag,
    AbstractCache and make_coerce now live in CTBase.Core. CTFlows.Common
    re-exports them, so call sites are unchanged.

Commits

  • Consume AbstractTag/AbstractCache/make_coerce from CTBase.Core
  • Migrate Strategies/Options/Orchestration from CTSolvers to CTBase
  • test: load ForwardDiff explicitly; rewire CTSolvers -> CTBase

Depends on

Notes

  • With DifferentiationInterface 0.7 the AutoForwardDiff backend requires
    ForwardDiff to be loaded. The differential_geometry / differentiation
    suites run before extensions/ (which used to load it), so they now
    import ForwardDiff themselves rather than relying on test ordering.
  • CommonSolve was removed because it is unused anywhere in the package; revert
    that hunk if it was kept intentionally for the solve interface.

Test plan

  • Full local test suite green (~3233 tests, 0 failed, 0 errored) against
    locally dev-ed CTBase 0.21 / CTModels 0.12 / CTSolvers 0.4.19.
  • CI green once CTBase 0.21 (with #459) is available.

🤖 Generated with Claude Code

ocots and others added 3 commits June 22, 2026 23:52
These three generic helpers moved into CTBase.Core. CTFlows.Common no longer
defines them: it re-exports them from CTBase.Core so existing `Common.<symbol>`
call sites stay unchanged. Removes the now-duplicated files:

- src/Common/abstract_tag.jl   (AbstractTag already exists in CTBase.Core)
- src/Common/abstract_cache.jl (AbstractCache moved to CTBase.Core)
- src/Common/helpers.jl        (make_coerce moved to CTBase.Core)

Requires CTBase 0.21.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
The generic Strategies / Options / Orchestration modules moved from CTSolvers
into CTBase (clean break, no re-export shims). Rewire all CTFlows references
accordingly:

- `CTSolvers.Strategies/Options/Orchestration.*` -> `CTBase.*` across
  Differentiation, Flows, Integrators, MultiPhase and the SciMLIntegrator ext.
- `CTSolvers.value` / `CTSolvers.is_user` -> `CTBase.Options.value` / `.is_user`.
- Bind CTBase in modules that use the `CTBase.Strategies.*` prefix
  (`using CTSolvers: CTSolvers` -> `using CTBase: CTBase`).

Project.toml:
- Bump compat: CTBase 0.20 -> 0.21, CTModels 0.11 -> 0.12.
- Drop now-unused deps CTSolvers and CommonSolve (flagged stale by Aqua).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- Rewire test references to the moved modules: `CTSolvers.Strategies/Options`
  -> `CTBase.Strategies/Options`, and `import CTSolvers` -> `import CTBase`.
- Add `import ForwardDiff` to the DI-dependent suites (differential_geometry,
  differentiation, the DifferentiationInterface extension test). With
  DifferentiationInterface 0.7, the AutoForwardDiff backend requires ForwardDiff
  to be loaded; these suites run before extensions/ (which used to load it), so
  they now load it themselves instead of relying on test order.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@ocots

ocots commented Jun 22, 2026

Copy link
Copy Markdown
Member Author

Reviewer notes / merge order

This PR is part of the CTFlows → CTBase move effort and is coupled to a CTBase change:

  1. Merge CTBase.jl#459 first and cut a CTBase 0.21 beta. Until then, CI here cannot resolve (CTBase 0.21 with AbstractCache / make_coerce in Core is not yet published).
  2. Then this PR goes green and can be merged into develop.

The three commits are intentionally separable for review:

  • commit 1 is the phase-A move (consume AbstractTag / AbstractCache / make_coerce from CTBase.Core);
  • commit 2 is the ecosystem upgrade (Strategies/Options/Orchestration now in CTBase; drop CTSolvers + CommonSolve; bump compat);
  • commit 3 is the test rewiring (+ explicit import ForwardDiff).

Validated locally with CTBase / CTModels / CTSolvers dev-ed from their local branches; full suite green. Follow-up PRs will move the Traits (3-repo, needs CTModels) and Data modules.

@ocots
ocots merged commit 006442a into develop Jun 23, 2026
5 checks passed
@ocots
ocots deleted the move/ctflows-to-ctbase-phase-a branch June 23, 2026 10:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant