Migrating to 0.11.0 (historical)¶
Archived. Current tools are 0.13.0 (Spec 3.0.0). For new upgrades use migration-0.13.md. Do not pin
dtcs==0.11.0for new work.
Upgrade playbook from 0.10.x tools to 0.11.x. At that time Spec was still 1.0.0-draft and document dtcsVersion was typically "1.0.0".
Summary¶
| Area | Change |
|---|---|
| Lineage | Mapping operation defaults to dtcs:derive; optional flow enum |
| Dataset actions | Require a parameters map (fields, join keys, …) |
| COM | First-class guarantees / compatibility; nested extensions preserved |
| Null semantics | Runtime distinguishes null / missing / invalid tokens |
| Stdlib | Full Ch 17–19 catalog (dataset ops, extra functions/rules) |
Before / after¶
Lineage¶
# 0.10.x (still valid; defaults applied in 0.11)
lineage:
mappings:
- output: "customer_clean"
inputs: ["customer_raw"]
# 0.11 explicit (recommended)
lineage:
mappings:
- id: "raw_to_clean"
output: "customer_clean"
inputs: ["customer_raw"]
operation: "dtcs:derive"
flow: derived
Dataset operators¶
# Required in 0.11
semanticActions:
- id: "keep_columns"
action: "dtcs:project"
target: "customer_raw"
parameters:
fields: ["customer_id", "email"]
Overlapping targets need semantics.ordering:
Runtime JSON tokens¶
{ "email": null }
{ "email": { "$dtcs": "missing" } }
{ "email": { "$dtcs": "invalid", "reason": "bad format" } }
Do not treat missing/invalid as JSON null in CI assertions.
Verify you are on 0.11¶
dtcs version
# → dtcs 0.11.0
dtcs registry resolve dtcs:project --json # should resolve
dtcs registry resolve dtcs:one_of --json
dtcs validate examples/minimal.dtcs.yaml # after clone or curl
Pin installs: