Repository navigation
Release v4.51.0
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.playfiles 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 aCratisPlanResultwith 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
Domainoption onCratisPlanOptionsplaces 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. ArtifactRenderPlannow 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)