Skip to content

Commit a4b9b7b

Browse files
authored
Merge pull request #1104 from xylar/update-releasing-docs
Update the releasing documentation
2 parents d5ea351 + d93a03c commit a4b9b7b

File tree

1 file changed

+59
-47
lines changed

1 file changed

+59
-47
lines changed

docs/developers_guide/releasing.rst

Lines changed: 59 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -12,84 +12,96 @@ Version Bump and Dependency Updates
1212

1313
1. **Update the Version Number**
1414

15-
- Open a pull request (PR) to update the version number in the following
16-
two files:
15+
- Manually update the version number in the following files:
1716

1817
- ``mpas_analysis/version.py``
19-
2018
- ``ci/recipe/meta.yaml``
2119

2220
- Make sure the version follows `semantic versioning <https://semver.org/>`_.
21+
For release candidates, use versions like ``1.3.0rc1``.
2322

2423
2. **Check and Update Dependencies**
2524

2625
- Ensure that dependencies and their constraints are up-to-date and
2726
consistent in:
2827

29-
- ``ci/recipe/meta.yaml`` (dependencies for the conda-forge release)
30-
31-
- ``pyproject.toml`` (dependencies for PyPI; used as a sanity check)
32-
33-
- ``dev-spec.txt`` (development dependencies; should be a superset of
34-
those for the conda-forge release)
28+
- ``ci/recipe/meta.yaml`` (for the conda-forge release)
29+
- ``pyproject.toml`` (for PyPI; used for sanity checks)
30+
- ``dev-spec.txt`` (development dependencies; should be a superset)
3531

36-
- The dependencies in ``meta.yaml`` are the ones that will be used for the
37-
released package on conda-forge. The dependencies in ``pyproject.toml``
38-
are for PyPI and should be kept in sync as much as possible but are only
39-
there as a sanity check when we run ``pip check``. The ``dev-spec.txt``
40-
file should include all dependencies needed for development and testing.
41-
42-
- Review and update dependency versions and constraints as needed.
32+
- Use the GitHub "Compare" feature to check for dependency changes between releases:
33+
https://github.com/MPAS-Dev/MPAS-Analysis/compare
4334

4435
3. **Make a PR and merge it**
4536

37+
- Open a PR for the version bump and dependency changes and merge once
38+
approved.
39+
4640
Tagging and Publishing a Release
4741
================================
4842

4943
4. **Tag the Release on GitHub**
5044

51-
- Go to https://github.com/MPAS-Dev/MPAS-Analysis/releases and click on
52-
"Draft a new release".
45+
- Go to https://github.com/MPAS-Dev/MPAS-Analysis/releases
46+
- Click "Draft a new release"
47+
- Enter a tag:
48+
- For stable releases: ``1.3.0``
49+
- For release candidates: ``1.3.0rc1``
50+
- Set the release title to the version prefixed with ``v`` (e.g.,
51+
``v1.3.0``)
52+
- Generate or manually write release notes
53+
- Mark as a pre-release if applicable
54+
- Click "Publish release"
5355

54-
- Enter the appropriate tag for the release, following semantic versioning
55-
(e.g., ``1.13.0``; **do not** include a ``v`` in front).
56+
Updating the conda-forge Feedstock
57+
==================================
5658

57-
- Enter a release title (typically the release version **with** a ``v`` in
58-
front, e.g., ``v1.13.0``).
59+
5. **Automatic Feedstock Update (Preferred Method)**
5960

60-
- Write a description and/or use the "Generate release notes" button to
61-
auto-generate release notes.
61+
- Wait for the ``regro-cf-autotick-bot`` to open a PR at:
62+
https://github.com/conda-forge/mpas-analysis-feedstock
6263

63-
- If the release is ready, click "Publish release". Otherwise, save it as a
64-
draft.
64+
- This may take several hours to a day.
6565

66-
Updating the conda-forge Feedstock
67-
==================================
66+
- Review the PR:
67+
- Confirm the version bump and dependency changes
68+
- Merge once CI checks pass
6869

69-
5. **Update the conda-forge Feedstock**
70+
6. **Manual Feedstock Update (Fallback Method)**
7071

71-
- After the release is published, update and merge a PR for the new release
72-
at the conda-forge feedstock:
73-
https://github.com/conda-forge/mpas-analysis-feedstock
72+
If the bot PR does not appear or is too slow, update manually:
73+
74+
- Download the release tarball:
75+
76+
::
77+
78+
wget https://github.com/MPAS-Dev/MPAS-Analysis/archive/refs/tags/<version>.tar.gz
79+
80+
- Compute the SHA256 checksum:
81+
82+
::
83+
84+
shasum -a 256 <version>.tar.gz
85+
86+
- In the ``meta.yaml`` of the feedstock recipe:
87+
- Set ``{% set version = "<version>" %}``
88+
- Set the new ``sha256`` value
89+
- Update dependencies if needed
90+
91+
- Commit, push to a new branch, and open a PR against the feedstock
92+
- Follow any instructions in the PR template and merge once approved
7493

75-
- The conda-forge bot should automatically create a pull request for the
76-
new version within a few hours to a day after the release.
94+
Post Release Actions
95+
====================
7796

78-
- Compare the dependencies in the new release to those in the previous
79-
release and update the recipe as needed. To do this:
97+
7. **Verify and Announce**
8098

81-
- Find the most recent release at
82-
https://github.com/MPAS-Dev/MPAS-Analysis/releases
99+
- Install the package in a clean environment to test:
83100

84-
- Use the "Compare" feature to select the previous release.
101+
::
85102

86-
- Under "changed files", locate ``ci/recipe/meta.yaml`` to see
87-
any dependency changes.
103+
conda create -n test-mpas -c conda-forge mpas-analysis=<version>
88104

89-
- Review and update the feedstock PR as needed, then merge it.
105+
- Optionally announce the release on relevant communication channels
90106

91-
- If you are not already a maintainer of the feedstock, you can request to
92-
be added by creating a new issue at
93-
https://github.com/conda-forge/mpas-analysis-feedstock/issues, choosing
94-
"Bot command", and putting
95-
``@conda-forge-admin, please add user @username`` as the subject.
107+
- Update any documentation or release notes as needed

0 commit comments

Comments
 (0)