1Releasing NumExpr 2================== 3 4* Author: Robert A. McLeod 5* Contact: robbmcleod@gmail.com 6* Date: 2020-12-28 7 8Following are notes for releasing NumExpr. 9 10Preliminaries 11------------- 12 13* Make sure that `RELEASE_NOTES.rst` and `ANNOUNCE.rst` are up to date with the latest news in the release. 14* Ensure that `branch = ''` in `setup.py`. 15* Do a commit and a push: 16 17 `git commit -a -m "Getting ready for release X.Y.Z"` 18 19* If the directories `dist` or `artifact` exist delete them. 20 21Local Testing 22------------- 23 24* Re-compile locally with MKL support and see if all tests passes as well. 25* Run all the benchmarks in `bench/` directory and see if the 26 speed-ups are the expected ones. 27 28Tagging 29------- 30 31* Create a tag `vX.Y.Z` from `master` and push the tag to GitHub: 32 33 `git tag -a vX.Y.Z -m "Tagging version X.Y.Z"` 34 `git push` 35 `git push --tags` 36 37* If you happen to have to delete the tag, such as artifacts demonstrates a fault, first delete it locally, 38 39 `git tag --delete vX.Y.Z` 40 41 and then remotely on Github, 42 43 `git push --delete origin vX.Y.Z` 44 45Build Wheels 46------------ 47 48* Check on GitHub Actions `github.com/pydata/numexpr` that all the wheels built successfully. 49* Download `artifacts.zip` and unzip. 50* Make the source tarball with the command 51 52 `python setup.py sdist` 53 54Releasing 55--------- 56 57* Upload the built wheels to PyPi via Twine. 58 59 `twine upload artifact/numexpr*.whl` 60 61* Upload the source distribution. 62 63 `twine upload dist/numexpr-X.Y.Z.tar.gz` 64 65* Check on `pypi.org/project/numexpr/#files` that the wheels and source have uploaded as expected. 66 67Announcing 68---------- 69 70* Send an announcement to the NumPy list, PyData and python-announce 71 list. Use the `ANNOUNCE.rst` file as skeleton (or possibly as the 72 definitive version). Email should be addressed to the following lists: 73 * python-announce-list@python.org 74 * numpy-discussion@python.org 75 * pydata@googlegroups.com 76 77Post-release actions 78-------------------- 79 80* Bump the `nano` version number in `setup.py`, including setting `branch = 'dev0'`. 81* Create new headers for adding new features in `RELEASE_NOTES.rst` 82 and add this place-holder: 83 84 `* **Under development.**` 85 86 Don't forget to update header to the next version in those files. 87 88* Commit your changes: 89 90 `git commit -a -m "Post X.Y.Z release actions done"` 91 `git push` 92 93Fin. 94