Skip to content

Release v4.96.0

Choose a tag to compare

@github-actions github-actions released this 13 Oct 20:54
55a7303

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 as storedName in 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.CheckPublication refuses 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 is CratisPublicationCheck.ChangesEventTypeIds, which lists each change and reports STAGE-EVENT-002. Publishers that switch over CratisPublicationCheck must handle this new case. For scoped plans the aggregate policy layout check still runs first, so publishers that refuse only RequiresApplicationScope keep refusing those plans. cratis render adopts 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 unpinned Recorded_event, fails with STAGE-ESM-012. (#372)
  • Protected observable list queries now render their success specifications with Arc's QueryScenario and its default Chronicle read models. Scoped projections and protected snapshot list successes are still refused with STAGE-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 empty rule on text now rejects whitespace-only values, for both concept and command validation, following Screenplay decision 0071. (#344)
  • Non-text secret concepts (Int, Decimal, Bool, Date, DateTime, Uuid) now render and run instead of failing with STAGE-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)