build: bump minimum zarr to >=3.1.6 - #1024
Merged
Merged
Conversation
TomNicholas
force-pushed
the
bump-zarr-3.1.1
branch
from
June 24, 2026 15:59
d0de51c to
cd2ca40
Compare
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #1024 +/- ##
==========================================
- Coverage 90.10% 90.01% -0.10%
==========================================
Files 36 36
Lines 2204 2204
==========================================
- Hits 1986 1984 -2
- Misses 218 220 +2 🚀 New features to boost your workflow:
|
zarr <3.1.6 mis-strips keys when listing the contents of a nested group, silently dropping arrays whose names collide with others in the store (zarr-developers/zarr-python#3657). This loses nested data when parsing hierarchical Zarr stores with the ZarrParser, regardless of zarr version within 3.1.0-3.1.5. Fixed in zarr 3.1.6. Bump the floor (and the minimum-versions CI pin) to 3.1.6, and remove the xfail on test_parser_recurses_into_subgroups so nested-store parsing is exercised at the minimum version with deliberately colliding array names. The bump also lets the tiff and grib parsers (which need zarr>=3.1.2 and >=3.1.1) re-join the minimum-versions environment. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
TomNicholas
force-pushed
the
bump-zarr-3.1.1
branch
from
June 24, 2026 16:21
cd2ca40 to
d299d31
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Follow-up to #1023 (merged), fixing the CI failure its
xfailwas papering over.The real bug
#1023addedtest_parser_recurses_into_subgroupsand marked itxfailon zarr < 3.1.1, on the theory that zarr 3.1.0 couldn't list nested groups. That was wrong. Investigating the min-versions CI failure showed the actual issue:zarr < 3.1.6 mis-strips keys when listing the contents of a nested group — e.g. an array stored at
group_a/nested/deep_varis reported as a member namedvar, which isn't a real object, so it's silently dropped andarray_keys()returns empty. It triggers when array names share substrings with others in the store (root_var/a_var/deep_var), the same class of bug as zarr-python#3657 thattest_parser_with_nested_store_pathalready works around.Verified across versions (array stored at
group_a/nested/deep_var):array_keys()ofgroup_a/nested[](array dropped)['deep_var']It is not version-of-zarr-specific in the depth sense, and it is not fixable by choosing tidy test names — real user data can have any names, so on any zarr 3.1.0–3.1.5 a hierarchical store with colliding names silently loses nested arrays. The honest fix is to require the zarr version that fixed it.
This PR
zarr>=3.1.0→zarr>=3.1.6(and theminimum-versionspin to==3.1.6). 3.1.6 is the exact version that fixed the listing bug.xfail(andHAS_NESTED_GROUP_LISTING) fromtest_parser_recurses_into_subgroups, keeping deliberately colliding array names so the test is a real regression guard. It passes at 3.1.6 and fails at 3.1.5 (confirmed locally).tiffandgribparsers in the minimum-versions env — they were excluded only because they requirezarr>=3.1.2/>=3.1.1, both satisfied by the new floor.CI watch
The minimum-versions job now resolves
virtual-tiffandgribberishagainst zarr 3.1.6 — confirm that environment still solves cleanly. If either fails to resolve at the minimum pins, the fallback is to drop it back out with an accurate reason.