Skip to content

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.0 for 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:

semantics:
  ordering:
    mode: explicit
    order: ["normalize_email", "keep_columns"]

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:

pip install 'dtcs==0.11.0'
cargo install dtcs --version 0.11.0