@@ -7,6 +7,39 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
77
88Dates are specified in the format ` DD-MM-YYYY ` .
99
10+ ## [ 0.9.0] - 27-02-2026
11+
12+ ### Added
13+ - Migrated code from ` redsun-mimir ` to here
14+ - In particular the whole plan specification and action system
15+ - Some things still require additional tests, although have been empirically tested in ` redsun-mimir `
16+ - ` DeviceSequenceEdit ` : new ` ValueWidget ` subclass rendering ` Sequence[PDevice] ` and ` Set[PDevice] `
17+ parameters as a checkbox list with a live selection count label.
18+ - ` PlanWidget.device_widgets ` : exposes device parameter widgets for external validation.
19+ - ` PlanWidget.params_widget ` : single ` QWidget ` wrapping the Devices and Parameters group boxes;
20+ disabled atomically during plan execution so all inputs lock without affecting run/stop/pause buttons.
21+ - ` Set[PDevice] ` / ` AbstractSet[PDevice] ` annotation support in plan spec: ` isdeviceset ` predicate
22+ and ` _handle_device_set ` handler; ` resolve_arguments ` coerces to ` set() ` for set-typed params.
23+ - ` HasWriter ` protocol expressing the ability of a device to encapsulate a writer.
24+ - ` SessionPathProvider ` with automatic run-number increment, replacing ` AutoIncrementFileProvider ` .
25+ - Metadata registry on ` Writer ` ; metadata collected at ` prepare ` time is written immediately after
26+ stream open.
27+ - ` clear_sources ` mechanism for presenters to explicitly clear writer sources after a plan finishes.
28+ - ` group ` parameter on path providers for sub-group addressing within a Zarr store.
29+
30+ ### Changed
31+ - Storage layer migrated to per-device ` Writer ` instances identified by URI (singleton via ` get() ` ).
32+ - Device preparation migrated from ` StorageInfo ` /` StorageConfig ` dict-based API to ` PrepareInfo ` .
33+ - ` make_writer ` signature updated to ` (uri, mimetype) ` .
34+ - Shareable plan-spec and widget infrastructure migrated from redsun-mimir into the SDK.
35+ - ` create_plan_widget ` now splits device and scalar parameters into separate "Devices" and
36+ "Parameters" group boxes.
37+ - Widget factory predicates now match on annotation shape rather than ` choices is not None ` ;
38+ empty-choices case produces a valid empty widget instead of raising ` RuntimeError ` .
39+ - ` _try_factory_entry ` now only swallows predicate errors; factory crashes propagate immediately.
40+ - ` is_device_set ` removed from ` ParamDescription ` ; set coercion derived from annotation directly
41+ via ` isdeviceset(p.annotation) ` , symmetric with how ` isdevicesequence ` was already handled.
42+
1043## [ 0.8.2] - 23-02-2026
1144
1245### Changed
@@ -183,6 +216,7 @@ Dates are specified in the format `DD-MM-YYYY`.
183216
184217- Initial release on PyPI
185218
219+ [ 0.9.0 ] : https://github.com/redsun-acquisition/redsun/compare/v0.8.2...v0.9.0
186220[ 0.8.2 ] : https://github.com/redsun-acquisition/redsun/compare/v0.8.0...v0.8.2
187221[ 0.8.0 ] : https://github.com/redsun-acquisition/redsun/compare/v0.7.2...v0.8.0
188222[ 0.7.2 ] : https://github.com/redsun-acquisition/redsun/compare/v0.7.0...v0.7.2
0 commit comments