|
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 `DOCUMENTATION.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 | +- [ ] Create an archived copy of the documentation: |
136 | 136 |
|
137 | 137 | ```bash |
138 | 138 | ./release_docs archive |
139 | 139 | ``` |
140 | 140 |
|
141 | | -* Update the latest documentation: |
| 141 | +- [ ] Update the latest documentation: |
142 | 142 |
|
143 | 143 | ```bash |
144 | 144 | ./release_docs latest |
145 | 145 | ``` |
146 | 146 |
|
147 | | -* Create a source tarball: |
| 147 | +- [ ] Create a source tarball: |
148 | 148 |
|
149 | 149 | ```bash |
150 | 150 | python setup.py sdist |
151 | 151 | ``` |
152 | 152 |
|
153 | | -* Test the tarball release using |
| 153 | +- [ ] Test the tarball release using |
154 | 154 |
|
155 | 155 | ```bash |
156 | 156 | ./test_release <vn> # E.g. ./test_release 3.14.0 |
157 | 157 | ``` |
158 | 158 |
|
159 | | -* Push recent commits using |
| 159 | +- [ ] Push recent commits using |
160 | 160 |
|
161 | 161 | ```bash |
162 | 162 | git push origin main |
163 | 163 | ``` |
164 | 164 |
|
165 | | -* Tag the release: |
| 165 | +- [ ] Tag the release: |
166 | 166 |
|
167 | 167 | ```bash |
168 | 168 | ./tag <vn> # E.g. ./tag 3.14.0 |
169 | 169 | ``` |
170 | 170 |
|
171 | | -* Upload the source tarball to PyPI. Note this requires the `twine` |
| 171 | +- [ ] Upload the source tarball to PyPI. Note this requires the `twine` |
172 | 172 | library (which can be installed via `pip`) and relevant project |
173 | 173 | privileges on PyPI. |
174 | 174 |
|
175 | 175 | ```bash |
176 | 176 | ./upload_to_pypi <vn> # E.g. ./upload_to_pypi 3.14.0 |
177 | 177 | ``` |
178 | 178 |
|
179 | | -* Update the GitHub releases page for the new version: |
| 179 | +- [ ] Update the GitHub releases page for the new version: |
180 | 180 | https://github.com/NCAS-CMS/cf-python/releases |
181 | 181 |
|
182 | | -* Upload the new release to Zenodo: https://zenodo.org/record/3961353 |
| 182 | +- [ ] Upload the new release to Zenodo: https://zenodo.org/record/3961353 |
183 | 183 |
|
184 | | -* Copy the archive docs to https://github.com/NCAS-CMS/cf-python-docs |
| 184 | +- [ ] Copy the archive docs to https://github.com/NCAS-CMS/cf-python-docs |
185 | 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 | +- [ ] 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): |
187 | 187 |
|
188 | 188 | ```bash |
189 | 189 | mv docs/<vn>/ ~/cf-python-docs/ |
|
0 commit comments