From 185be37806c712209f18410677954b8afec2c43e Mon Sep 17 00:00:00 2001 From: Davis Vann Bennett Date: Wed, 11 Nov 2026 21:36:50 +0100 Subject: [PATCH] docs(zarr-metadata): condense the pending release notes and renumber the #4598 fragment Replace the ten bugfix fragments of #4574 with three, two of them marked breaking, and shorten the #4592 fragment to the rename and the names a user is most likely to have imported. The removed detail stays in the pull requests. Rename 427.removal.md to 4598.removal.md: the fragment came in with #4598 but carried the fork PR's number, so the changelog would have linked to an unrelated upstream PR. Assisted-by: ClaudeCode:claude-opus-5-5 --- packages/zarr-metadata/changes/4574.bugfix.1.md | 8 +------- packages/zarr-metadata/changes/4574.bugfix.10.md | 5 ----- packages/zarr-metadata/changes/4574.bugfix.2.md | 5 +---- packages/zarr-metadata/changes/4574.bugfix.3.md | 6 +----- packages/zarr-metadata/changes/4574.bugfix.4.md | 7 ------- packages/zarr-metadata/changes/4574.bugfix.5.md | 11 ----------- packages/zarr-metadata/changes/4574.bugfix.6.md | 8 -------- packages/zarr-metadata/changes/4574.bugfix.7.md | 12 ------------ packages/zarr-metadata/changes/4574.bugfix.8.md | 4 ---- packages/zarr-metadata/changes/4574.bugfix.9.md | 12 ------------ packages/zarr-metadata/changes/4592.removal.md | 11 +---------- .../changes/{427.removal.md => 4598.removal.md} | 0 12 files changed, 4 insertions(+), 85 deletions(-) delete mode 100644 packages/zarr-metadata/changes/4574.bugfix.10.md delete mode 100644 packages/zarr-metadata/changes/4574.bugfix.4.md delete mode 100644 packages/zarr-metadata/changes/4574.bugfix.5.md delete mode 100644 packages/zarr-metadata/changes/4574.bugfix.6.md delete mode 100644 packages/zarr-metadata/changes/4574.bugfix.7.md delete mode 100644 packages/zarr-metadata/changes/4574.bugfix.8.md delete mode 100644 packages/zarr-metadata/changes/4574.bugfix.9.md rename packages/zarr-metadata/changes/{427.removal.md => 4598.removal.md} (100%) diff --git a/packages/zarr-metadata/changes/4574.bugfix.1.md b/packages/zarr-metadata/changes/4574.bugfix.1.md index 0d387acd14..53a5935723 100644 --- a/packages/zarr-metadata/changes/4574.bugfix.1.md +++ b/packages/zarr-metadata/changes/4574.bugfix.1.md @@ -1,7 +1 @@ -**Breaking:** A problem in a v2 struct dtype is located where the document - writes it. A record's problem was located under a `fields` key the - document does not have, at `("dtype", "fields", 0, 1)`; it is now at - `("dtype", 0, 1)`, and carries the value found there as its `input`. - `declarations()` places each record's type there too. A definition's - functions still find the record types in `nested` at - `("fields", 0, 1)`, their place in the configuration. +**Breaking:** Every problem is now located where the document writes the value. The v2 readers and the v2 models' `from_key_value` locate a problem in the file that holds it, such as `(".zarray", "order")` or `(".zattrs", "x")`, instead of in the merged document, and a v2 array node reading's `at` is now `(".zarray",)`. A problem in a v2 struct record is at `("dtype", 0, 1)` instead of under a `fields` key the document does not have, a codec's missing configuration member, such as the `endian` of a `bytes` codec, is reported inside the configuration it writes, or at `codecs.N.configuration` when it writes none, and a codec handed values it cannot encode is reported at `codecs.N` however it is spelled. diff --git a/packages/zarr-metadata/changes/4574.bugfix.10.md b/packages/zarr-metadata/changes/4574.bugfix.10.md deleted file mode 100644 index e06b2d6d3d..0000000000 --- a/packages/zarr-metadata/changes/4574.bugfix.10.md +++ /dev/null @@ -1,5 +0,0 @@ -Each problem `read_consolidated_metadata_v3` finds in the inline - `consolidated_metadata` member itself, such as a `kind` that is not - `"inline"` or a key that is not a node path, carries the value found at - its location as its `input`, as every other reader's problems do. Its - `input` was unset. diff --git a/packages/zarr-metadata/changes/4574.bugfix.2.md b/packages/zarr-metadata/changes/4574.bugfix.2.md index 4342fc151c..b0a67f448e 100644 --- a/packages/zarr-metadata/changes/4574.bugfix.2.md +++ b/packages/zarr-metadata/changes/4574.bugfix.2.md @@ -1,4 +1 @@ -A v2 dtype written as the string `"struct"` is refused as a string that is - not a NumPy typestr, like any other, instead of being read as a struct - with no records. `struct` is the name the definition of a records array - is filed under, not part of the v2 dtype grammar. +**Breaking:** The v2 readers now agree with the v3 readers. A `.zarray` member the spec does not define may hold `NaN` and the infinities, a `.zmetadata` key that does not name its node's path, such as `/a/.zarray`, is refused instead of being read as the node at `a`, and a `.zgroup` that holds `attributes` is an `invalid_value` rather than an `unknown_key`, so a caller who tolerates unknown keys no longer drops those attributes. diff --git a/packages/zarr-metadata/changes/4574.bugfix.3.md b/packages/zarr-metadata/changes/4574.bugfix.3.md index adec05b00c..b69507e86d 100644 --- a/packages/zarr-metadata/changes/4574.bugfix.3.md +++ b/packages/zarr-metadata/changes/4574.bugfix.3.md @@ -1,5 +1 @@ -A group listed in v3 consolidated metadata whose own document has a problem, - such as attributes that are not an object, is reported for that problem - alone. It was also reported for disagreeing with the outer listing's copy - of the same node, a difference that came only from the problem. A copy - whose only problem is an unknown key is still compared. +Various mistakes in v2 and consolidated metadata are now reported once, at their own location, with the right kind and message. A float where an integer from a fixed set is required, such as `"zarr_format": 2.0`, is an `invalid_type`, and a v2 typestr with a part its family does not take, such as `