Repository navigation
Release v4.96.0
Summary
Stage now admits ESM v16 from Screenplay 4.152.0, so a renamed event keeps reading the events already stored under its old name. Stage also moves to Chronicle 19.55.2 and Arc 22.87.0.
Added
- Events with a stored name that differs from their model name (
id "Original"in the model, carried asstoredNamein ESM v16) render as[EventType("Original")], while the generated class follows the current name. Unpinned events and models below v16 render exactly as before. The Host registers, appends and rebuilds these events under the stored name. (#372) CratisRendering.CheckPublicationrefuses a plan that would change the Chronicle[EventType]id of an existing event class in the destination, or whose existing id cannot be read. The new outcome isCratisPublicationCheck.ChangesEventTypeIds, which lists each change and reportsSTAGE-EVENT-002. Publishers that switch overCratisPublicationCheckmust handle this new case. For scoped plans the aggregate policy layout check still runs first, so publishers that refuse onlyRequiresApplicationScopekeep refusing those plans.cratis renderadopts the new refusal in Cratis/cli#354. (#372)- A plan where two events would get the same Chronicle event type id, for example a pinned
id "RecordedEvent"beside an unpinnedRecorded_event, fails withSTAGE-ESM-012. (#372) - Protected observable list queries now render their success specifications with Arc's
QueryScenarioand its default Chronicle read models. Scoped projections and protected snapshot list successes are still refused withSTAGE-ESM-011. (part of #278)
Changed
- Stage builds on Screenplay and its canonical corpus 4.152.0, Chronicle 19.55.2 and Arc 22.87.0. Generated applications, the Docker images and the spec runner pin the same Chronicle and Arc versions. (#344)
- A semantic
not emptyrule on text now rejects whitespace-only values, for both concept and command validation, following Screenplay decision 0071. (#344) - Non-text
secretconcepts (Int,Decimal,Bool,Date,DateTime,Uuid) now render and run instead of failing withSTAGE-ESM-041. Chronicle 19.55.2 encrypts them at rest and returns them in their original type. (#344) - The rendering guides now explain how event ids are chosen, which publishers enforce
STAGE-EVENT-002, and that renaming an event without a pin still loses access to its stored events. They now recommend the Screenplay rename tool, which adds the pin. (#372)