Skip to content

Release v2.4.0

Choose a tag to compare

@github-actions github-actions released this 14 Aug 05:16
f68f359

Added

  • Cratis.Stage.Rendering.Cratis.Scaffolding — scaffolds the Cratis project a rendered application is placed into, from the Cratis templates. Take it alongside the renderer and pass TemplateEngineProjectScaffolder to CratisRenderer to keep today's behavior. (#34)
  • A Screenplay specification exercising its slice's command renders as a Cratis spec — a CommandScenario<T> in the when_ folder layout, wrapped in #if DEBUG. Appended events are asserted against the event source the command's identifier names, narrowed to the values the specification states; a rejection asserts both that the command failed and that it failed as validation. (#14)

Changed

  • CratisRenderer.CreateDefault() renders into the target directory without scaffolding a project around it, which is what regenerating from a document into a project that already exists needs. (#34)
  • A specification that cannot be rendered faithfully is reported with the reason instead of being rendered — one that establishes prior state with given, states read model state, exercises another slice's command, or asserts nothing. (#14)
  • Specifications are no longer counted in a slice's unrendered-construct list, since each one now either renders or says on its own why it does not. (#14)

Removed

  • Cratis.Stage.Rendering.Cratis no longer depends on Cratis, Cratis.Arc.MongoDB, Cratis.Templates or the three Microsoft.TemplateEngine.* packages. The package is Cratis.Stage.Contracts and Cratis.Screenplay and nothing else. (#34, #18)
  • TemplateEngineProjectScaffolder, SampleSlice, ScaffoldingFailed, TemplateNotFound and TemplatePackageNotFound move to the new scaffolding package, keeping their namespace. (#34)

Fixed

  • Consuming the renderer no longer contributes 28 global usings to the consuming project, which made User, AppendedEvent, CommandContext and ObserverRunningState ambiguous — 160 compilation errors in the CLI alone. (#34)
  • Consuming the renderer no longer brings the Arc, Chronicle and MongoDB runtime it generates code for, nor a NuGet.Frameworks that stops Microsoft.Build.Locator from running. A host can now render and use MSBuild in the same process. (#34, #18)