Skip to content

Cap zarr to < 3 until zarr 3 support is implemented#1856

Closed
candleindark wants to merge 1 commit into
dandi:masterfrom
candleindark:cap-zarr-below-3
Closed

Cap zarr to < 3 until zarr 3 support is implemented#1856
candleindark wants to merge 1 commit into
dandi:masterfrom
candleindark:cap-zarr-below-3

Conversation

@candleindark
Copy link
Copy Markdown
Member

Summary

The codebase uses zarr 2.x APIs (e.g. zarr.errors.PathNotFoundError in dandi/files/zarr.py:460). The dependency cap zarr <= 3.1.5 advertised zarr 3 support that does not actually exist in the code.

Until 2026-05-19 this was masked because hdmf-zarr (pulled in transitively via nwbinspector) pinned zarr < 3. nwbinspector 0.7.2, released 2026-05-19, moved hdmf-zarr into an optional [zarr] extra. The resolver then began honoring this project's own (too-loose) cap and installed zarr 3.1.5, surfacing the latent incompatibility as 11 failing tests on the daily scheduled run (e.g. job 76815825089).

This PR tightens the cap to match what the code actually supports. A follow-up issue will track proper zarr 3 support.

Test plan

  • Identify the regression range via comparison of Successfully installed lines between the last green and first red scheduled runs (zarr 2.18.7 → 3.1.5; nwbinspector 0.7.1 → 0.7.2)
  • CI passes on this PR

The codebase uses zarr 2.x APIs (e.g. `zarr.errors.PathNotFoundError`
in `dandi/files/zarr.py`). The previous cap of `<= 3.1.5` advertised
zarr 3 support that does not actually exist; until today, hdmf-zarr
(a transitive dep via nwbinspector) pinned `zarr<3`, hiding this.
nwbinspector 0.7.2 moved hdmf-zarr into an optional extra, so the
resolver started picking zarr 3.1.5 and the latent incompatibility
surfaced as 11 test failures on the daily scheduled run.

This tightens the cap to match what the code actually supports. A
follow-up issue tracks proper zarr 3 support.

Co-Authored-By: Claude Code 2.1.144 / Claude Opus claude-opus-4-7 <noreply@anthropic.com>
@candleindark candleindark requested a review from yarikoptic May 19, 2026 19:57
@candleindark candleindark added the dependencies Update one or more dependencies version label May 19, 2026
@codecov
Copy link
Copy Markdown

codecov Bot commented May 19, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 76.26%. Comparing base (d69a282) to head (9a9870b).

Additional details and impacted files
@@            Coverage Diff             @@
##           master    #1856      +/-   ##
==========================================
+ Coverage   76.24%   76.26%   +0.01%     
==========================================
  Files          87       87              
  Lines       12512    12512              
==========================================
+ Hits         9540     9542       +2     
+ Misses       2972     2970       -2     
Flag Coverage Δ
unittests 76.26% <ø> (+0.01%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

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

@candleindark candleindark mentioned this pull request May 19, 2026
@yarikoptic
Copy link
Copy Markdown
Member

I (well -- I&claude) am working out a more thorough solution -- we do want to keep allowing zarr 3. backstory: We (with @kabilar ) did raise upper version but it was not in effect due to hdmf-zarr blocking it via nwbexpector dependency for us. That was addressed and thus we started to upgrade into that zarr 3.

@github-actions
Copy link
Copy Markdown

🚀 Issue was released in 0.76.0 🚀

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Update one or more dependencies version released

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants