Skip to content

Release v3.6.0

Choose a tag to compare

@github-actions github-actions released this 17 Sep 14:56
8835b6d

Summary

cratis new becomes concept- and metadata-driven: language derivatives collapse into one concept template, bare cratis new runs an interactive wizard (template → language → database), and listing moves to an explicit cratis new list subcommand.

Added

  • The creation wizard behind bare cratis new: which template (defaulting to the cratis concept), then which language, then which database — each question offering only what the chosen template supports, and single-choice questions skipped because their choice is already made; non-interactive terminals get guidance instead of a hang (#150)
  • cratis new list — an explicit listing of the concept templates with their supported languages and databases, replacing the old bare-invocation listing; language derivatives (the C#, Kotlin, and Java cratis) collapse into a single entry, driven by the packages' own metadata: a shared groupIdentity groups the derivatives, tags.language selects the member, and the Database parameter's choices declare the databases (#150)
  • Concept resolution for explicit invocation too: cratis new cratis --language kotlin resolves the Kotlin derivative inside the concept through the language map rather than by template name (#150)

Changed

  • The catalogue pins Cratis.Templates 1.5.0 and its lockstep Kotlin and Java packages, whose derivatives now share the cratis short name exactly like the SDK's own language families (#150)

Fixed

  • A dashed name (the wizard's default from the folder name) made the sourceName identity and safe_name forms collide on one token and fail the scaffold; the documented upstream behavior is tolerance, and this engine now defines it deterministically — file paths keep the identity form, content takes the last non-identity form (My-App.csproj beside RootNamespace My_App), matching the upstream engine's observable output (#150)