Skip to content

build: bump minimum zarr to >=3.1.6 - #1024

Merged
TomNicholas merged 1 commit into
zarr-developers:mainfrom
TomNicholas:bump-zarr-3.1.1
Jun 24, 2026
Merged

build: bump minimum zarr to >=3.1.6#1024
TomNicholas merged 1 commit into
zarr-developers:mainfrom
TomNicholas:bump-zarr-3.1.1

Conversation

@TomNicholas

@TomNicholas TomNicholas commented Jun 24, 2026

Copy link
Copy Markdown
Member

Follow-up to #1023 (merged), fixing the CI failure its xfail was papering over.

The real bug

#1023 added test_parser_recurses_into_subgroups and marked it xfail on 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_var is reported as a member named var, which isn't a real object, so it's silently dropped and array_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 that test_parser_with_nested_store_path already works around.

Verified across versions (array stored at group_a/nested/deep_var):

zarr array_keys() of group_a/nested
3.1.0 – 3.1.5 [] (array dropped)
3.1.6+ ['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

  • Bump zarr>=3.1.0zarr>=3.1.6 (and the minimum-versions pin to ==3.1.6). 3.1.6 is the exact version that fixed the listing bug.
  • Remove the unnecessary xfail (and HAS_NESTED_GROUP_LISTING) from test_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).
  • Re-include the tiff and grib parsers in the minimum-versions env — they were excluded only because they require zarr>=3.1.2 / >=3.1.1, both satisfied by the new floor.

CI watch

The minimum-versions job now resolves virtual-tiff and gribberish against 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.

@codecov

codecov Bot commented Jun 24, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 90.01%. Comparing base (2cc8ff3) to head (d299d31).

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     

see 1 file with indirect coverage changes

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

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 TomNicholas changed the title build: bump minimum zarr to >=3.1.1 build: bump minimum zarr to >=3.1.6 Jun 24, 2026
@TomNicholas
TomNicholas merged commit 94b3aa6 into zarr-developers:main Jun 24, 2026
16 of 17 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant