Skip to main content

2026-10-10-contract-introductions


title: New data objects keep installed clients on their contract line affects: dartway_generator: "0.21.0-dev.17" dartway_core_server: "0.21.0-dev.17"​

Who is affected​

Projects with a generated shared contract descriptor, especially those adding data objects without changing existing calls, channels or object shapes.

What to change​

No project code edit or installed-client update is required. On the next dartway generate, lib/generated/dw_contract.json moves to format 2 automatically; format 1 trusted baselines still validate. Generate and commit the descriptor and protocol together as usual.

For a new data object, raise the shared package's version: above the trusted base's version. A patch bump is enough. The generator records that version as since, preserves existing objects' introduction metadata, and the server keeps those updates and deletions from older builds. A project that raised its line only for new data objects may stay on that line; nothing is undone.

How to check​

dartway generate --check --contract-base <trusted-SHA> passes when the generated files are current and the new data object's shared version is above the baseline. Existing shape changes still require a breaking-line raise.