-
Change the version and date in
cf/__init__.py(__version__and__date__variables) -
Ensure that the requirements on dependencies & their versions are up-to-date and consistent in both the
requirements.txtand indocs/source/installation.rst; and in the_requireslist andLooseVersionchecks incf/__init__.py. -
Make sure that
README.mdis up to date. -
Make sure that
Changelog.rstis up to date. -
Check that the documentation API coverage is complete:
./check_docs_api_coverage
- If it is not complete, add any undocumented attributes, methods,
functions and keyword arguments (e.g. as listed in the change log)
to the
.rstfiles indocs/source/class/.
- If it is not complete, add any undocumented attributes, methods,
functions and keyword arguments (e.g. as listed in the change log)
to the
-
Check external links to the CF conventions are up to date in
docs/source/tutorial.rstanddocs/source/field_analysis.rst -
Create a link to the new documentation in
docs/source/releases.rst, including the release date. -
Make sure that all the Data tests will run by setting
test_only = []incf/test/test_Data.py(check that none of the individual tests are un-commented so as to override this in the commented listing beneath). -
Test tutorial code:
export PYTHONPATH=$PWD:$PYTHONPATH d=$PWD cd docs/source ./extract_tutorial_code ./reset_test_tutorial cd test_tutorial python ../tutorial.py cd $d
-
Build a development copy of the documentation using to check API pages for any new methods are present & correct, & that the overall formatting has not been adversely affected for comprehension by any updates in the latest Sphinx or theme etc. (Do not manually commit the dev build.)
./release_docs <vn> dev-clean # E.g. ./release_docs 3.3.0 dev-clean
-
Create an archived copy of the documentation:
./release_docs <vn> archive # E.g. ./release_docs 3.3.0 archive
-
Update the latest documentation:
./release_docs <vn> latest # E.g. ./release_docs 3.3.0 latest
-
Create a source tarball:
python setup.py sdist
-
Test the tarball release using
./test_release <vn> # E.g. ./test_release 3.3.0
-
Push recent commits using
git push origin master
-
Tag the release:
./tag <vn> # E.g. ./tag 3.3.0
-
Upload the source tarball to PyPI. Note this requires the
twinelibrary (which can be installed viapip) and relevant project privileges on PyPI../upload_to_pypi <vn> # E.g. ./upload_to_pypi 3.3.0