Skip to content
Merged
Show file tree
Hide file tree
Changes from all 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
56 changes: 56 additions & 0 deletions .github/ISSUE_TEMPLATE/release-checklist.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
---
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).
- [ ] Check that downstream libraries work well (maintainers can make executive decisions about whether all checks are required for this release).
- [ ] Xarray (@jhamman @dcherian @TomNicholas)
- Zarr's upstream compatibility is tested via the [Upstream Dev CI worklow](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.
- 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.
- [ ] Titiler.Xarray (@maxrjones)
- [Modify dependencies](https://github.com/developmentseed/titiler/blob/main/src/titiler/xarray/pyproject.toml) for titiler.xarray.
- Modify triggers for running [the test workflow](https://github.com/developmentseed/titiler/blob/61549f2de07b20cca8fb991cfcdc89b23e18ad05/.github/workflows/ci.yml#L5-L7).
- Push the branch to the repository and check for the actions for any failures.

**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.