@@ -12,84 +12,96 @@ Version Bump and Dependency Updates
1212
13131. **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
24232. **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
44353. **Make a PR and merge it **
4536
37+ - Open a PR for the version bump and dependency changes and merge once
38+ approved.
39+
4640Tagging and Publishing a Release
4741================================
4842
49434. **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