From 155338607a682811d932666842e1e83f7e017ae6 Mon Sep 17 00:00:00 2001 From: Max Jones <14077947+maxrjones@users.noreply.github.com> Date: Sun, 6 Jul 2025 17:51:23 -0400 Subject: [PATCH 1/5] Add a release checklist issue template --- .github/ISSUE_TEMPLATE/release-checklist.md | 51 +++++++++++++++++++++ docs/developers/contributing.rst | 36 ++------------- 2 files changed, 54 insertions(+), 33 deletions(-) create mode 100644 .github/ISSUE_TEMPLATE/release-checklist.md diff --git a/.github/ISSUE_TEMPLATE/release-checklist.md b/.github/ISSUE_TEMPLATE/release-checklist.md new file mode 100644 index 0000000000..3024ee0913 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/release-checklist.md @@ -0,0 +1,51 @@ +--- +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. + - [ ] 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: diff --git a/docs/developers/contributing.rst b/docs/developers/contributing.rst index 03388e1544..a5dd814878 100644 --- a/docs/developers/contributing.rst +++ b/docs/developers/contributing.rst @@ -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 `_ while -pre-releases will be available under -`/latest `_. - -Post-release -~~~~~~~~~~~~ - -- Review and merge the pull request on the - `conda-forge 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 `_. +The release checklist includes all steps necessary for the release. From 61832e1f9e7a2b52751d5a1882ee3d1f5458c3b6 Mon Sep 17 00:00:00 2001 From: Max Jones <14077947+maxrjones@users.noreply.github.com> Date: Mon, 7 Jul 2025 09:28:54 -0400 Subject: [PATCH 2/5] Fix typo --- .github/ISSUE_TEMPLATE/release-checklist.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/release-checklist.md b/.github/ISSUE_TEMPLATE/release-checklist.md index 3024ee0913..76d41758a4 100644 --- a/.github/ISSUE_TEMPLATE/release-checklist.md +++ b/.github/ISSUE_TEMPLATE/release-checklist.md @@ -38,8 +38,8 @@ assignees: '' - [ ] 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/) + - [ ] 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**: From e08dbdb781c5ce1d35e632693320211ec91cfad9 Mon Sep 17 00:00:00 2001 From: Max Jones <14077947+maxrjones@users.noreply.github.com> Date: Mon, 7 Jul 2025 09:32:11 -0400 Subject: [PATCH 3/5] Fix indentation --- .github/ISSUE_TEMPLATE/release-checklist.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/release-checklist.md b/.github/ISSUE_TEMPLATE/release-checklist.md index 76d41758a4..19a4bb0fc9 100644 --- a/.github/ISSUE_TEMPLATE/release-checklist.md +++ b/.github/ISSUE_TEMPLATE/release-checklist.md @@ -43,8 +43,7 @@ assignees: '' **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. +- [ ] Review and merge the pull request on the conda-forge [zarr-feedstock](https://github.com/conda-forge/zarr-feedstock) that will be automatically generated. --- From c2f81dbfa7302c69a7193b87c639fa4df4058a41 Mon Sep 17 00:00:00 2001 From: Max Jones <14077947+maxrjones@users.noreply.github.com> Date: Mon, 7 Jul 2025 14:24:35 -0400 Subject: [PATCH 4/5] Update release-checklist.md Co-authored-by: Joe Hamman --- .github/ISSUE_TEMPLATE/release-checklist.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/ISSUE_TEMPLATE/release-checklist.md b/.github/ISSUE_TEMPLATE/release-checklist.md index 19a4bb0fc9..594349076f 100644 --- a/.github/ISSUE_TEMPLATE/release-checklist.md +++ b/.github/ISSUE_TEMPLATE/release-checklist.md @@ -24,7 +24,7 @@ assignees: '' - [ ] 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) + - [ ] All Zarr 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. - [ ] 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. From e9157f30a8c2d25cebd45f652b90215834fb7dc7 Mon Sep 17 00:00:00 2001 From: Max Jones <14077947+maxrjones@users.noreply.github.com> Date: Mon, 7 Jul 2025 16:19:17 -0400 Subject: [PATCH 5/5] Tag downstream maintainers in checklist --- .github/ISSUE_TEMPLATE/release-checklist.md | 28 +++++++++++++-------- 1 file changed, 17 insertions(+), 11 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/release-checklist.md b/.github/ISSUE_TEMPLATE/release-checklist.md index 594349076f..cfd153b69f 100644 --- a/.github/ISSUE_TEMPLATE/release-checklist.md +++ b/.github/ISSUE_TEMPLATE/release-checklist.md @@ -21,25 +21,31 @@ assignees: '' - [ ] 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 Zarr 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. - - [ ] 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. + - [ ] 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" +- [ ] 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/) + - [ ] 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**: