|
1 |
| -* Decide the version name to set for the new release, by |
| 1 | +- [ ] Decide the version name to set for the new release, by |
2 | 2 | heeding the Versioning Strategy (see
|
3 | 3 | https://ncas-cms.github.io/cf-python/releases.html#versioning-strategy).
|
4 | 4 |
|
5 |
| -* Set the `NEXTVERSION` version marker across the codebase (added in PRs |
| 5 | +- [ ] Set the `NEXTVERSION` version marker across the codebase (added in PRs |
6 | 6 | to mark the next version where the exact number/name is not yet decided)
|
7 | 7 | by recursively finding all occurences within the `cf` directory and replacing
|
8 | 8 | them with the upcoming version name `X.Y.Z` (replace `X`, `Y` and `Z`
|
|
14 | 14 | $ find cf/ -type f | xargs sed -i 's/NEXTVERSION/X.Y.Z/g'
|
15 | 15 | ```
|
16 | 16 |
|
17 |
| -* Change the version and date in `cf/__init__.py` (`__version__` and |
| 17 | +- [ ] Change the version and date in `cf/__init__.py` (`__version__` and |
18 | 18 | `__date__` variables)
|
19 | 19 |
|
20 |
| -* Ensure that the requirements on dependencies & their versions are |
| 20 | +- [ ] Ensure that the requirements on dependencies & their versions are |
21 | 21 | up-to-date and consistent in both the `requirements.txt` and in
|
22 | 22 | `docs/source/installation.rst`; and in the `_requires` list and
|
23 | 23 | `Version` checks in `cf/__init__.py`.
|
24 | 24 |
|
25 |
| -* Make sure that `README.md` is up to date. |
| 25 | +- [ ] Make sure that `README.md` is up to date. |
26 | 26 |
|
27 |
| -* Make sure that the `long_description` in `setup.py` is up to date. |
| 27 | +- [ ] Make sure that the `long_description` in `setup.py` is up to date. |
28 | 28 |
|
29 |
| -* Make sure that `Changelog.rst` is up to date (version, date and |
| 29 | +- [ ] Make sure that `Changelog.rst` is up to date (version, date and |
30 | 30 | changes).
|
31 | 31 |
|
32 |
| -* Deprecated methods and keyword arguments: Check the code for |
| 32 | +- [ ] Deprecated methods and keyword arguments: Check the code for |
33 | 33 | deprecated methods and keyword arguments that can be completely
|
34 | 34 | removed, i.e. those with a ``removed_at`` version that is at or
|
35 | 35 | before the version being released. Remove any reference to them in
|
36 | 36 | the method, class, or fucntion (including, if appropriate, the
|
37 | 37 | ``@_deprecated_kwarg_check`` decorator), and remove them from the
|
38 | 38 | relevant documentation ``.rst`` files.
|
39 | 39 |
|
40 |
| -* Check that the documentation API coverage is complete: |
| 40 | +- [ ] Check that the documentation API coverage is complete: |
41 | 41 |
|
42 | 42 | ```bash
|
43 | 43 | ./check_docs_api_coverage
|
44 | 44 | ```
|
45 | 45 |
|
46 |
| - * If it is not complete, add any undocumented attributes, methods, |
| 46 | + - [ ] If it is not complete, add any undocumented attributes, methods, |
47 | 47 | functions and keyword arguments (e.g. as listed in the change log)
|
48 | 48 | to the `.rst` files in `docs/source/class/`.
|
49 | 49 |
|
50 |
| -* Check external links to the CF conventions are up to date in |
| 50 | +- [ ] Check external links to the CF conventions are up to date in |
51 | 51 | `docs/source/tutorial.rst` and `docs/source/field_analysis.rst`
|
52 | 52 |
|
53 |
| -* Create a link to the new documentation in |
| 53 | +- [ ] Create a link to the new documentation in |
54 | 54 | `docs/source/releases.rst`, including the release date.
|
55 | 55 |
|
56 |
| -* Test tutorial code: |
| 56 | +- [ ] Test tutorial code: |
57 | 57 |
|
58 | 58 | ```bash
|
59 | 59 | export PYTHONPATH=$PWD:$PYTHONPATH
|
60 | 60 | ./test_tutorial_code
|
61 | 61 | ```
|
62 | 62 |
|
63 |
| -* **Follow all of the steps outlined externally in `DOCUMENTATION.md`**, |
| 63 | +- [ ] **Follow all of the steps outlined externally in [`RECIPES.md`](./RECIPES.md)**, |
64 | 64 | notably so that the correct Sphinx-related environment is prepared for
|
65 | 65 | documentation building.
|
66 | 66 |
|
67 |
| -* Ensure that the [PDF for Cheat Sheet](docs/_downloads/cheatsheet.pdf) |
| 67 | +- [ ] Ensure that the [PDF for Cheat Sheet](docs/_downloads/cheatsheet.pdf) |
68 | 68 | is updated to include any API changes. The PDF is created using Canva
|
69 | 69 | keeping in mind the colours and fonts of the website. The same could
|
70 | 70 | be edited using this
|
71 | 71 | [link](https://www.canva.com/design/DAFk9_BVfNY/gmQHycBiV_YbTIWMqYxK1g/edit).
|
72 | 72 |
|
73 |
| -* Build a development copy of the documentation using to check API |
| 73 | +- [ ] Build a development copy of the documentation using to check API |
74 | 74 | pages for any new methods are present & correct, & that the overall
|
75 | 75 | formatting has not been adversely affected for comprehension by any
|
76 | 76 | updates in the latest Sphinx or theme etc. (Do not manually commit
|
|
80 | 80 | ./release_docs dev-scrub
|
81 | 81 | ```
|
82 | 82 |
|
83 |
| -* Check that no typos or spelling mistakes have been introduced to the |
| 83 | +- [ ] Check that no typos or spelling mistakes have been introduced to the |
84 | 84 | documentation:
|
85 | 85 |
|
86 |
| - * Run a dummy build of the documentation to detect invalid words: |
| 86 | + - [ ] Run a dummy build of the documentation to detect invalid words: |
87 | 87 |
|
88 | 88 | ```console
|
89 | 89 | $ cd docs
|
90 | 90 | $ make spelling build
|
91 | 91 | ```
|
92 | 92 |
|
93 |
| - * If there are words raised with 'Spell check' warnings for the dummy |
| 93 | + - [ ] If there are words raised with 'Spell check' warnings for the dummy |
94 | 94 | build, such as:
|
95 | 95 |
|
96 | 96 | ```bash
|
|
104 | 104 | `/attribute` or `/function` which will be fixed along with the origin
|
105 | 105 | docstrings after a 'latest' build) as follows:
|
106 | 106 |
|
107 |
| - * If there are words that are in fact valid, add the valid words to |
| 107 | + - [ ] If there are words that are in fact valid, add the valid words to |
108 | 108 | the list of false positives for the spelling checker extension,
|
109 | 109 | `docs/source/spelling_false_positives.txt`.
|
110 |
| - * Correct any words that are not valid in the codebase under `cf` or |
| 110 | + - [ ] Correct any words that are not valid in the codebase under `cf` or |
111 | 111 | in the `docs/source` content files.
|
112 | 112 |
|
113 |
| - * Note that, in the case there are many words raised as warnings, it |
| 113 | + - [ ] Note that, in the case there are many words raised as warnings, it |
114 | 114 | helps to automate the above steps. The following commands are a means
|
115 | 115 | to do this processing:
|
116 | 116 |
|
|
132 | 132 | 5. Remove duplicate words and sort alphabetically via:
|
133 | 133 | `sort -u -o docs/source/spelling_false_positives.txt docs/source/spelling_false_positives.txt`
|
134 | 134 |
|
135 |
| -* Create an archived copy of the documentation: |
| 135 | +- [ ] For major or epoch releases *only* (i.e. not minor, see the versioning strategy at |
| 136 | + https://ncas-cms.github.io/cf-python/releases.html#versioning-strategy) |
| 137 | + create an archived copy of the documentation: |
136 | 138 |
|
137 | 139 | ```bash
|
138 | 140 | ./release_docs archive
|
139 | 141 | ```
|
140 | 142 |
|
141 |
| -* Update the latest documentation: |
| 143 | +- [ ] Update the latest documentation: |
142 | 144 |
|
143 | 145 | ```bash
|
144 | 146 | ./release_docs latest
|
145 | 147 | ```
|
146 | 148 |
|
147 |
| -* Create a source tarball: |
| 149 | +- [ ] Create a source tarball: |
148 | 150 |
|
149 | 151 | ```bash
|
150 | 152 | python setup.py sdist
|
151 | 153 | ```
|
152 | 154 |
|
153 |
| -* Test the tarball release using |
| 155 | +- [ ] Test the tarball release using |
154 | 156 |
|
155 | 157 | ```bash
|
156 | 158 | ./test_release <vn> # E.g. ./test_release 3.14.0
|
157 | 159 | ```
|
158 | 160 |
|
159 |
| -* Push recent commits using |
| 161 | +- [ ] Push recent commits using |
160 | 162 |
|
161 | 163 | ```bash
|
162 | 164 | git push origin main
|
163 | 165 | ```
|
164 | 166 |
|
165 |
| -* Tag the release: |
| 167 | +- [ ] Tag the release: |
166 | 168 |
|
167 | 169 | ```bash
|
168 | 170 | ./tag <vn> # E.g. ./tag 3.14.0
|
169 | 171 | ```
|
170 | 172 |
|
171 |
| -* Upload the source tarball to PyPI. Note this requires the `twine` |
| 173 | +- [ ] Upload the source tarball to PyPI. Note this requires the `twine` |
172 | 174 | library (which can be installed via `pip`) and relevant project
|
173 | 175 | privileges on PyPI.
|
174 | 176 |
|
175 | 177 | ```bash
|
176 | 178 | ./upload_to_pypi <vn> # E.g. ./upload_to_pypi 3.14.0
|
177 | 179 | ```
|
178 | 180 |
|
179 |
| -* Update the GitHub releases page for the new version: |
| 181 | +- [ ] Update the GitHub releases page for the new version: |
180 | 182 | https://github.com/NCAS-CMS/cf-python/releases
|
181 | 183 |
|
182 |
| -* Upload the new release to Zenodo: https://zenodo.org/record/3961353 |
| 184 | +- [ ] Upload the new release to Zenodo: https://zenodo.org/record/3961353 |
183 | 185 |
|
184 |
| -* Copy the archive docs to https://github.com/NCAS-CMS/cf-python-docs |
185 |
| - |
186 |
| -* Move and commit the previously-generated archived copy of the documentation to https://github.com/NCAS-CMS/cf-python-docs (fork or clone that repo first): |
| 186 | +- [ ] For major or epoch releases *only*, move the archive docs generated earlier to |
| 187 | + https://github.com/NCAS-CMS/cf-python-docs and commit them (you may have to |
| 188 | + fork or clone that repo first): |
187 | 189 |
|
188 | 190 | ```bash
|
189 | 191 | mv docs/<vn>/ ~/cf-python-docs/
|
|
0 commit comments