Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 23 additions & 0 deletions BREAKING.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,29 @@

This document outlines all breaking changes introduced in CTBase v0.18.0-beta compared to v0.17.4. Use this guide to migrate your code and understand the impact of these changes.

## Non-breaking note (0.30.1-beta)

- **Plotting — Makie backend parity**: `CTBase.Plotting.MakieBackend` reached
feature parity with `PlotsBackend`. `Plotting.render!` on a `Makie.Figure`
(overlay), `HLine` / `VLine` decorations, `:steppost` / `:scatter` series types
and `z_order` are now honoured, and `render` / `render!` forward axis attributes
as well as series attributes. **No breaking change**: methods that previously
threw `NotImplemented` now succeed; no signature, type, or public name changed.
No migration required.
- **Plotting — `:split` legend with a user `label=`**: a `:split` cell now shows
its legend when a `label=` keyword — or an IR series label — is given, on both
the Plots and Makie backends. **No breaking change**: a bug fix; rendered output
changes only for a call that explicitly passed `label=` and previously saw no
legend. No migration required.

## Non-breaking note (0.30.0-beta)

- **Plotting — Makie backend (proof of concept)**: added
`CTBase.Plotting.MakieBackend` and the `CTBaseMakie` weak-dependency extension
(trigger: `Makie`), `render` only. **No breaking change**: purely additive;
`PlotsBackend` rendering, `default_backend()` and all public signatures are
unchanged. No migration required.

## Non-breaking note (0.29.3)

- **Documentation**: switched extensible documentation cross-references to use
Expand Down
48 changes: 47 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,53 @@ All notable changes to CTBase will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [0.30.0-beta] - unreleased
## [0.30.1-beta] - unreleased

### ✨ Added

- **Makie plotting backend — parity with the Plots backend**:
`CTBase.Plotting.MakieBackend` is now at feature parity with
`CTBase.Plotting.PlotsBackend`
([CTModels#408](https://github.com/control-toolbox/CTModels.jl/issues/408)). The
`CTBaseMakie` extension now handles:
- **`Plotting.render!`** — overlay onto an existing `Makie.Figure`, targeting axes
by deterministic leaf order; an empty target figure is filled as if by `render`
(shared `_render_into!` helper). Previously threw `NotImplemented`.
- **`HLine` / `VLine` decorations** — drawn via `Makie.hlines!` / `Makie.vlines!`
with style translation (box bounds, initial/final-time markers).
- **`seriestype` dispatch** — `:steppost` → `Makie.stairs!(…; step=:post)`,
`:scatter` → `Makie.scatter!`, `:path` → `Makie.lines!`. Constant-interpolation
controls now render as steps instead of lines.
- **`z_order`** — series drawn back-to-front with the same ranking as the Plots
backend.
- **User keyword arguments** — `render` / `render!` now forward axis attributes
(`legend`, `ylims`, grid / scale / ticks) to every cell, not only series
attributes. Makie exposes no `Plots.attributes(:Series)` analogue, so the
series-vs-axis split uses curated whitelists and drops unrecognised keys.

### 🔧 Fixed

- **`:split` layout: a user `label=` now shows the legend** (both the Plots and
Makie backends). A `:split` cell keeps its legend off by default; passing a
`label=` keyword — or an IR series label — now turns it back on so overlaid
solutions can be told apart. Previously the label was accepted but never visible.

### 📚 Documentation

- The plotting guide names both backends in the architecture overview and the
"no backend loaded" note, and gains a **"User Attributes: Series vs Axis"**
section describing the per-backend keyword-argument split. `CairoMakie` is added
to the docs build and the guide renders an executed Makie example.

### ✅ Compatibility

- **No breaking changes**: `MakieBackend` methods that previously threw
`NotImplemented` now succeed; nothing is removed or renamed. The `:split` +
`label=` legend change is a bug fix — rendered output differs only for a call
that already passed `label=`. See
[`BREAKING.md`](BREAKING.md) → *Non-breaking note (0.30.1-beta)*.

## [0.30.0-beta] - 2026-08-27

### ✨ Added

Expand Down
2 changes: 1 addition & 1 deletion Project.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
name = "CTBase"
uuid = "54762871-cc72-4466-b8e8-f6c8b58076cd"
version = "0.30.0-beta"
version = "0.30.1-beta"
authors = ["Olivier Cots <olivier.cots@irit.fr>", "Jean-Baptiste Caillau <caillau@univ-cotedazur.fr>"]

[deps]
Expand Down
Loading