Skip to content
Merged
Show file tree
Hide file tree
Changes from 5 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
50 changes: 50 additions & 0 deletions .github/ISSUE_TEMPLATE/release-checklist.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
---
name: Zarr-Python release checklist
about: Checklist for a new Zarr-Python release. [For project maintainers only!]
title: Release Zarr-Python vX.Y.Z
labels: release-checklist
assignees: ''

---

**Release**: [v0.x.x](https://github.com/zarr-developers/zarr-python/milestones/?)
**Scheduled Date**: 20YY/MM/DD

**Priority PRs/issues to complete prior to release**

- [ ] Priority pull request #X

**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](https://github.com/zarr-developers/zarr-python/tree/main/changes).
- [ ] Run ``towncrier build --version x.y.z`` to create the changelog, and commit the result to the main branch.
- [ ] Check [SPEC 0](https://scientific-python.org/specs/spec-0000/#support-window) to see if the minimum supported version of Python or NumPy needs bumping.
- [ ] Check to ensure that:
- [ ] Deprecated workarounds/codes/tests are removed. Run `grep "# TODO" **/*.py` to find all potential TODOs.
- [ ] All tests pass in the ["Tests" workflow](https://github.com/zarr-developers/zarr-python/actions/workflows/test.yml)
- [ ] All tests pass in the ["GPU Tests" workflow](https://github.com/zarr-developers/zarr-python/actions/workflows/gpu_test.yml)
- [ ] All tests pass in the ["Hypothesis" workflow](https://github.com/zarr-developers/zarr-python/actions/workflows/hypothesis.yaml)
- [ ] All tests pass in [Xarray's upstream test](https://github.com/pydata/xarray/actions/workflows/upstream-dev-ci.yaml)
- [ ] Click on the most recent workflow and check that the `upstream-dev` job has run and passed. `upstream-dev` is not run on all all workflow runs.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Would a failing upstream dev test block a release if it was not related to Zarr?

Copy link
Member Author

@maxrjones maxrjones Jul 7, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

e9157f3 (#3210) updates the downstream component of the checklist to follow the structure that's worked pretty well for GMT. The developers of downstream libraries are pinged as part of the release checklist issue. Zarr-Python devs can decide whether to wait for all those downstream checks to be completed and whether any failures should be blocking.

- [ ] Check that the expected version of Zarr-Python was tested using the `Version Info` step of the `upstream-dev` job.
- [ ] If testing on a branch other than `main` is needed, open a PR modifying https://github.com/pydata/xarray/blob/90ee30943aedba66a37856b2332a41264e288c20/ci/install-upstream-wheels.sh#L56 and add the `run-upstream` label.

**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 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](https://pypi.org/project/zarr/)
- [ ] The stable version is correct on [ReadTheDocs](https://zarr.readthedocs.io/en/stable/)

**After release**:

- [ ] Review and merge the pull request on the conda-forge [zarr-feedstock](https://github.com/conda-forge/zarr-feedstock) that will be automatically generated.

---

- [ ] Party :tada:
36 changes: 3 additions & 33 deletions docs/developers/contributing.rst
Original file line number Diff line number Diff line change
Expand Up @@ -339,36 +339,6 @@ breaking changes may be more frequent than usual.
Release procedure
-----------------

Pre-release
~~~~~~~~~~~
1. Make sure that all pull requests which will be included in the release
have been properly documented as changelog files in the :file:`changes/` directory.
2. Run ``towncrier build --version x.y.z`` to create the changelog, and commit the result
to the main branch.

Releasing
~~~~~~~~~
1. Go to https://github.com/zarr-developers/zarr-python/releases
2. Click "Draft a new release".
3. 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`).
4. 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".
5. Click on "Generate release notes" to auto-fill the description.

After creating the release, the documentation will be built on
https://readthedocs.io. Full releases will be available under
`/stable <https://zarr.readthedocs.io/en/stable>`_ while
pre-releases will be available under
`/latest <https://zarr.readthedocs.io/en/latest>`_.

Post-release
~~~~~~~~~~~~

- Review and merge the pull request on the
`conda-forge feedstock <https://github.com/conda-forge/zarr-feedstock>`_ that will be
automatically generated.
Open an issue on GitHub announcing the release using the release checklist template:
`https://github.com/zarr-developers/zarr-python/issues/new?template=release-checklist.md <https://github.com/zarr-developers/zarr-python/issues/new?template=release-checklist.md>`_.
The release checklist includes all steps necessary for the release.