From 4d9897e240345dd40b20b74abc9ddd90eb7e96b8 Mon Sep 17 00:00:00 2001 From: Olivier Cots Date: Fri, 28 Aug 2026 16:58:02 +0200 Subject: [PATCH] Prepare 0.30.1-beta release. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Makie backend parity (#540): render! / overlay, HLine/VLine decorations, :steppost / :scatter seriestype dispatch, z_order, axis-attribute forwarding. Plus the :split + `label=` legend fix on both backends, and the plotting-guide docs pass. All additive / bug-fix — no breaking change. Co-Authored-By: Claude Sonnet 5 --- BREAKING.md | 23 +++++++++++++++++++++++ CHANGELOG.md | 48 +++++++++++++++++++++++++++++++++++++++++++++++- Project.toml | 2 +- 3 files changed, 71 insertions(+), 2 deletions(-) diff --git a/BREAKING.md b/BREAKING.md index 12372818..cc4851e0 100644 --- a/BREAKING.md +++ b/BREAKING.md @@ -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 diff --git a/CHANGELOG.md b/CHANGELOG.md index ebc1f6ae..ed2ea6ad 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -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 diff --git a/Project.toml b/Project.toml index 7acb83ba..04c13f10 100644 --- a/Project.toml +++ b/Project.toml @@ -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 ", "Jean-Baptiste Caillau "] [deps]