Skip to content

Release v3.55.0

Choose a tag to compare

@github-actions github-actions released this 12 Oct 23:21
b304f1f

cratis run can now run a model whose ui profile names custom runtime packages, and refuses one that names a package nothing provides before it starts Docker. The CLI bundles Stage 4.80.0, the release whose live Stage loads approved packages at runtime.

Added

  • cratis run --package-set <file> [--packages <folder>] hands the approved package set (the same document cratis render --package-set takes) to the live Stage: the set is mounted read-only at /packages/approved-packages.json and the folder of each approved package, <packages folder>/<npm name>, read-only at /packages/<npm name> - never the folder that holds them. The Stage loads each package at runtime from its browser (ES module) build, with the Stage's own React, and refuses to render when a package is missing or differs from its declaration. A package without a folder, a set that is missing or invalid and --packages without --package-set are refused before Docker starts. (part of #284)
  • cratis run resolves the ui profile of the model before Docker starts. A package that is neither shipped (core, scene.web, Cratis.Components) nor approved is refused with CLI-RENDER-007 (exit code 5) and says to approve it with --package-set; nothing is started, so a typo or a forgotten approval no longer produces a sandbox that shows a placeholder where the package's component belongs. A model that does not compile is left to the Stage. (part of #284)
  • The packed-CLI check in CI now also runs the same package set live: cratis run without the set refuses with CLI-RENDER-007, and with the set the Stage container renders the custom component, its property and style sheet beside the shipped components in a browser, using the same scenario as the rendered application. (part of #284)
  • Documentation: run.md#custom-packages and the screenplay.md custom package section describe the live package folder, the browser-build contract and what is refused.

Changed

  • The CLI bundles Stage 4.80.0 (from 4.79.1), the release whose live Stage loads approved packages at runtime, so cratis run defaults to the cratis/stage:4.80.0 image.