Skip to content

Release Zarr-Python v3.1.2 #3397

Closed
Closed

Description

@maxrjones

Release: v3.1.2
Scheduled Date: 2025/08/22

Priority PRs/issues to complete prior to release

Before release:

  • Make sure that all pull requests which will be included in the release have been properly documented as changelog files in the changes/ directory.
  • Run towncrier build --version x.y.z to create the changelog, and commit the result to the release branch.
  • Check SPEC 0 to see if the minimum supported version of Python or NumPy needs bumping.
  • Check to ensure that:

Release:

  • Go to https://github.com/zarr-developers/zarr-python/releases.
    • Click "Draft a new release".
    • Choose a version number prefixed with a v (e.g. v0.0.0). For pre-releases, include the appropriate suffix (e.g. v0.0.0a1 or v0.0.0rc2).
    • Set the target branch to the release branch (e.g., 3.1.x)
    • Set the description of the release to: See release notes https://zarr.readthedocs.io/en/stable/release-notes.html#release-0-0-0, replacing the correct version numbers. For pre-release versions, the URL should omit the pre-release suffix, e.g. "a1" or "rc1".
    • Click on "Generate release notes" to auto-fill the description.
    • Make a release by clicking the 'Publish Release' button, this will automatically create a tag too.
  • Verify that release workflows succeeded.
    • The latest version is correct on PyPI.
    • The stable version is correct on ReadTheDocs.

After release:

  • Review and merge the pull request on the conda-forge zarr-feedstock that will be automatically generated.

  • Party 🎉

Activity

  1. changed the title [-]Release Zarr-Python v3.1.1[/-] [+]Release Zarr-Python v3.1.2[/+] on Aug 22, 2025
  2. dcherian commented on Aug 22, 2025

    @dcherian
    Contributor

    Xarray is seeing a regression in nightly tests: pydata/xarray#10640 cc @ianhi

    xarray/tests/test_backends.py::TestZarrWriteEmpty::test_write_empty[3 failing variants]: AssertionError: assert {'0.0.0', '0....1.1', '1.1.0'} == {'0.0.0', '0.... '1.0.1', ...}
      
      Extra items in the right set:
      �[0m�[33m'�[39;49;00m�[33m1.1.1�[39;49;00m�[33m'�[39;49;00m�[90m�[39;49;00m
      �[0m�[33m'�[39;49;00m�[33m1.0.0�[39;49;00m�[33m'�[39;49;00m�[90m�[39;49;00m
      �[0m�[33m'�[39;49;00m�[33m1.0.1�[39;49;00m�[33m'�[39;49;00m�[90m�[39;49;00m
      
      Full diff:
      �[0m�[90m �[39;49;00m {�[90m�[39;49;00m
      �[90m �[39;49;00m     '0.0.0',�[90m�[39;49;00m
      �[90m �[39;49;00m     '0.0.1',�[90m�[39;49;00m
      �[90m �[39;49;00m     '0.1.0',�[90m�[39;49;00m
      �[90m �[39;49;00m     '0.1.1',�[90m�[39;49;00m
      �[91m-     '1.0.0',�[39;49;00m�[90m�[39;49;00m
      �[91m-     '1.0.1',�[39;49;00m�[90m�[39;49;00m
      �[90m �[39;49;00m     '1.1.0',�[90m�[39;49;00m
      �[91m-     '1.1.1',�[39;49;00m�[90m�[39;49;00m
      �[90m �[39;49;00m }�[90m�[39;49;00m
    xarray/tests/test_backends.py::TestZarrWriteEmpty::test_write_empty[3 failing variants]: AssertionError: assert {'0/0/0', '0/...1/1', '1/1/0'} == {'0/0/0', '0/... '1/0/1', ...}
      
      Extra items in the right set:
      �[0m�[33m'�[39;49;00m�[33m1/1/1�[39;49;00m�[33m'�[39;49;00m�[90m�[39;49;00m
      �[0m�[33m'�[39;49;00m�[33m1/0/0�[39;49;00m�[33m'�[39;49;00m�[90m�[39;49;00m
      �[0m�[33m'�[39;49;00m�[33m1/0/1�[39;49;00m�[33m'�[39;49;00m�[90m�[39;49;00m
      
      Full diff:
      �[0m�[90m �[39;49;00m {�[90m�[39;49;00m
      �[90m �[39;49;00m     '0/0/0',�[90m�[39;49;00m
      �[90m �[39;49;00m     '0/0/1',�[90m�[39;49;00m
      �[90m �[39;49;00m     '0/1/0',�[90m�[39;49;00m
      �[90m �[39;49;00m     '0/1/1',�[90m�[39;49;00m
      �[91m-     '1/0/0',�[39;49;00m�[90m�[39;49;00m
      �[91m-     '1/0/1',�[39;49;00m�[90m�[39;49;00m
      �[90m �[39;49;00m     '1/1/0',�[90m�[39;49;00m
      �[91m-     '1/1/1',�[39;49;00m�[90m�[39;49;00m
      �[90m �[39;49;00m }�[90m�[39;49;00m
    
    
  3. d-v-b commented on Aug 22, 2025

    @d-v-b
    Contributor

    Xarray is seeing a regression in nightly tests: pydata/xarray#10640 cc @ianhi

    xarray/tests/test_backends.py::TestZarrWriteEmpty::test_write_empty[3 failing variants]: AssertionError: assert {'0.0.0', '0....1.1', '1.1.0'} == {'0.0.0', '0.... '1.0.1', ...}
      
      Extra items in the right set:
      �[0m�[33m'�[39;49;00m�[33m1.1.1�[39;49;00m�[33m'�[39;49;00m�[90m�[39;49;00m
      �[0m�[33m'�[39;49;00m�[33m1.0.0�[39;49;00m�[33m'�[39;49;00m�[90m�[39;49;00m
      �[0m�[33m'�[39;49;00m�[33m1.0.1�[39;49;00m�[33m'�[39;49;00m�[90m�[39;49;00m
      
      Full diff:
      �[0m�[90m �[39;49;00m {�[90m�[39;49;00m
      �[90m �[39;49;00m     '0.0.0',�[90m�[39;49;00m
      �[90m �[39;49;00m     '0.0.1',�[90m�[39;49;00m
      �[90m �[39;49;00m     '0.1.0',�[90m�[39;49;00m
      �[90m �[39;49;00m     '0.1.1',�[90m�[39;49;00m
      �[91m-     '1.0.0',�[39;49;00m�[90m�[39;49;00m
      �[91m-     '1.0.1',�[39;49;00m�[90m�[39;49;00m
      �[90m �[39;49;00m     '1.1.0',�[90m�[39;49;00m
      �[91m-     '1.1.1',�[39;49;00m�[90m�[39;49;00m
      �[90m �[39;49;00m }�[90m�[39;49;00m
    xarray/tests/test_backends.py::TestZarrWriteEmpty::test_write_empty[3 failing variants]: AssertionError: assert {'0/0/0', '0/...1/1', '1/1/0'} == {'0/0/0', '0/... '1/0/1', ...}
      
      Extra items in the right set:
      �[0m�[33m'�[39;49;00m�[33m1/1/1�[39;49;00m�[33m'�[39;49;00m�[90m�[39;49;00m
      �[0m�[33m'�[39;49;00m�[33m1/0/0�[39;49;00m�[33m'�[39;49;00m�[90m�[39;49;00m
      �[0m�[33m'�[39;49;00m�[33m1/0/1�[39;49;00m�[33m'�[39;49;00m�[90m�[39;49;00m
      
      Full diff:
      �[0m�[90m �[39;49;00m {�[90m�[39;49;00m
      �[90m �[39;49;00m     '0/0/0',�[90m�[39;49;00m
      �[90m �[39;49;00m     '0/0/1',�[90m�[39;49;00m
      �[90m �[39;49;00m     '0/1/0',�[90m�[39;49;00m
      �[90m �[39;49;00m     '0/1/1',�[90m�[39;49;00m
      �[91m-     '1/0/0',�[39;49;00m�[90m�[39;49;00m
      �[91m-     '1/0/1',�[39;49;00m�[90m�[39;49;00m
      �[90m �[39;49;00m     '1/1/0',�[90m�[39;49;00m
      �[91m-     '1/1/1',�[39;49;00m�[90m�[39;49;00m
      �[90m �[39;49;00m }�[90m�[39;49;00m
    

    maybe a side effect of #3378?

  4. ianhi commented on Aug 22, 2025

    @ianhi
    Contributor

    Xarray was testing for the broken behavior with write_empty and append. I've updated the xarray test to account for this and everything passes locally: pydata/xarray#10665

  5. ianhi commented on Aug 22, 2025

    @ianhi
    Contributor

    QUick sidenote for xarray people probably @dcherian and @TomNicholas . To automate the upstream run check, and to confirm that the versions are good and that the workflow ran after the most recent commit to zarr main you can run this gist https://gist.github.com/ianhi/c21e4389f6a5ab71db92d92af92b4bd9

    with

    uv run https://gist.githubusercontent.com/ianhi/c21e4389f6a5ab71db92d92af92b4bd9/raw/3a95dfa58ee462b97c76b8f6383420b47b7effe0/zarr_upstream_checker.py

    giving:

    ╭─ 🔄 Upstream Dev CI Status ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
    │ Workflow Status: success                                                                                                                                                                                   │
    ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
    ┏━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
    ┃ Property    ┃ Value                                                     ┃
    ┡━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩
    │ Workflow ID │ 17160223739                                               │
    │ Run Number  │ 21780                                                     │
    │ Branch      │ main                                                      │
    │ Commit      │ d4fcd2b4                                                  │
    │ Started     │ 2025-08-22T16:08:27Z                                      │
    │ Completed   │ 2025-08-22T16:08:38Z                                      │
    │ URL         │ https://github.com/pydata/xarray/actions/runs/17160223739 │
    └─────────────┴───────────────────────────────────────────────────────────┘
    ╭─ 📋 Upstream-dev Job ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
    │ ✅ Found: success                                                                                                                                                                                          │
    ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
    ╭─ 📦 Version Info ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
    │ Zarr version tested: 3.1.2                                                                                                                                                                                 │
    ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
    ╭─ 🕐 Freshness Check ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
    │ ✅ Workflow is current with latest zarr commits                                                                                                                                                            │
    │ Latest zarr commit: c9eefe66 (2025-08-22T15:20:54Z)                                                                                                                                                        │
    │ Workflow started: 2025-08-22T16:08:27Z                                                                                                                                                                     │
    ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
    ╭─ 📊 Summary ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
    │ 🎉 Upstream-dev ran successfully with Zarr 3.1.2                                                                                                                                                           │
    ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
    
  6. d-v-b commented on Aug 25, 2025

    @d-v-b
    Contributor

    see #3404 for a PR with the release notes, after we get that in I think we are ready to go

  7. dcherian commented on Aug 25, 2025

    @dcherian
    Contributor

    Thanks @ianhi ; I think we should add that gist to this repository

  8. dstansby commented on Aug 26, 2025

    @dstansby
    Contributor

    A quick note that #3406 should block the release (because it's a new bug, uncovered/surfaced by #3307 which has not yet been released)

  9. d-v-b commented on Aug 26, 2025

    @d-v-b
    Contributor

    should have blocked, perhaps -- we released 3.1.2 yesterday. But once this bug is fixed we can issue 3.1.3

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions