diff --git a/docs/releases/v0.9.0.md b/docs/releases/v0.9.0.md index 8d16aaf..1a4b102 100644 --- a/docs/releases/v0.9.0.md +++ b/docs/releases/v0.9.0.md @@ -53,7 +53,8 @@ migration guidance below before upgrading. This pre-v1 minor release intentionally changes the v0.8.0 contracts: 1. **Migrate import requiredness.** The YAML `optional` field is removed and is - rejected. Replace `optional: true` with `required: false` or omit it; replace + rejected. Replace `optional: true` with `required: false`; omission is equivalent + when the application does not default imports to required. Replace `optional: false` with `required: true`. Imports that previously relied on implicit requiredness now need `required: true`, or an application `ImportDefaults.Required` default set to true. Review discovery filters: @@ -78,6 +79,8 @@ This pre-v1 minor release intentionally changes the v0.8.0 contracts: defaults to upsert across layers and inheritance when no explicit mode applies, rather than unconditional whole-sequence replacement. Declare `mode: replace` at the relevant destination where replacement is intended. + With append or upsert, `[]` contributes no records and does not clear the + collection; null is invalid. Use `mode: replace` with `[]` to clear it. An explicit mode persists at its destination until changed; a parent's mode does not transfer to a different inheriting destination. Unidentified sequences retain strict peer conflicts and whole-value precedence