Skip to content

Release v22.86.0

Choose a tag to compare

@github-actions github-actions released this 13 Oct 04:58
fa7e15f

Summary

The Screenplay generator recovers how concepts generate their values. Concepts whose factory uses a Cratis Fundamentals generation strategy get a matching generate line, and [GeneratedValue] parameters of those concepts become generated properties, so generated models describe the identifiers and tokens the application actually creates.

Added

  • The Screenplay generator states a concept's generation strategy from its New() factory: GenerateValue.UuidV7() and Guid.CreateVersion7() become generate uuidv7, Ulid() becomes generate ulid, TypeId("p") becomes generate typeid "p", NanoId(size, alphabet) becomes generate nanoid with its size and alphabet, Bytes(count, encoding) becomes generate bytes with its encoding, and RandomNumberGenerator.GetHexString(n, lowercase) becomes generate bytes n/2 hex with its case. Plain UUID factories keep no generate line (part of #3116)
  • [GeneratedValue] parameters of concepts with a recovered strategy, including string-backed concepts, become generated properties, and scenarios can pin them with text values that match the strategy's shape (part of #3116)

Changed

  • Generation strategies need Screenplay ESM v15: models that use them select ESM v15, and a MaximumExecutableModelVersion below v15 keeps the previous output and reports the withheld strategy. In a v15 model, UUID pins must be version 4 UUIDs; other pins are left out with SP0039 (part of #3116)
  • Factories the generator cannot read as one strategy call, generation that uses the generation context's time or tenant, and concepts with validation rules keep their legacy command and are reported with SP0073 (part of #3116)
  • The Screenplay generator uses Cratis Screenplay 4.148.0 (part of #3116)