Skip to content

Release v22.52.0

Choose a tag to compare

@github-actions github-actions released this 07 Oct 14:04
1c0006d

Summary

The Screenplay generator now targets Screenplay 4.68 and carries much more of an Arc application into its .play model. By default it only writes what it can prove from the source and what the executable model admits. Everything else falls back to the previous output or is left out with a diagnostic, so the model never states something the code does not do.

Added

  • Commands mark their event source identifier and route productions with for, using the same rules as Arc's runtime. The generator reports ambiguous or unreadable identities and productions routed to another event source. (part of #2887)
  • An event produced by exactly one unconditional, complete command production anywhere in the application is written inline as produces event, and the embedded event model board shows inline events. (part of #2887)
  • Events carry their XML summary as description, their remarks as documentation, and a rename pin for generation-1 events whose stored name differs from the type name. (part of #2887)
  • Unconditional Must(Method) validator rules become named rules that point to their implementation file, where no specification exercises the command. (part of #2887)
  • Event scenarios become when append specifications, and specifications state the event source of their events with for. A scenario whose event sources cannot be stated faithfully is left out and reported. (part of #2887)
  • Identifiers and values a handler creates with Guid.NewGuid(), and scalar and record command responses, are written as generated values and returns where the executable model admits them and specifications do not depend on them. (part of #2887)
  • ScreenplayOptions.AuthoringOnlyConstructs (MSBuild CratisEmbeddedScreenplayAuthoringOnlyConstructs) also writes constructs that are not executable yet: operations and the systems they use, event sources and streams with command routes, and reads and require recovered from Provide(). (part of #2887)

Changed

  • Arc uses Cratis.Screenplay 4.68.2. (part of #2887)
  • Commands whose handler is empty or only returns a response no longer get a handler file reference, and SP0044 is reported as information when AuthoringOnlyConstructs is off. (part of #2887)

Fixed

  • A validation message no longer attaches to the preceding rule when the validator it follows cannot be read. (part of #2887)
  • The embedded event model board shows event tag values instead of their syntax, and does not ask for generated values as command inputs. (part of #2887)