Skip to content

Release v4.51.0

Choose a tag to compare

@github-actions github-actions released this 09 Oct 23:23
e0f44f7

Summary

Stage can now plan from Screenplay files and a list of names, which is the entry point Studio's code generation needs. Pass .play files or folders and the modules, features or slices to render, and get back a deterministic plan placed under the domain folder you choose, or a scaffold-only plan for an empty application root.

Added

  • CratisRendering.PlanFrom(PlaySources, PlanSelection, CratisPlanOptions) compiles .play files and folders and plans the selected modules, features, sub-features and slices, named by their authored path. Several entries combine into one plan. Files that are not selected are still compiled, so concepts, application-level declarations and sibling features can be passed in as context without being rendered. The result is a CratisPlanResult with the artifacts, typed diagnostics and a digest. An overload accepts an already loaded model.
  • CratisRendering.PlanScaffold(CratisPlanOptions) plans only the application scaffold, at the application root, without any Screenplay sources. Plans for a module, feature or slice never contain the scaffold.
  • The Domain option on CratisPlanOptions places slice code under {Domain}/{Module}/{Feature}/… and concepts and types under {Domain}/Common, with namespaces that follow the folders. Without a domain, the output is unchanged.
  • ArtifactRenderPlan now carries a digest of the planned output. The same sources and selection produce the same artifacts and digest, whatever order the files are listed or found in.
  • Typed STAGE-PLAN-* diagnostics report unknown modules, features or slices (listing the names that exist), an empty selection, an invalid or reserved domain, sources outside the root and sources that do not compile. A source plan never comes back silently empty. Symbolic links and other reparse points below the source root are refused rather than followed. See https://github.com/Cratis/Stage/blob/main/Documentation/reference/plan-from-sources.md. (#210)