|
| 1 | +Releasing NumExpr |
1 | 2 | ==================
|
2 |
| -Releasing Numexpr |
3 |
| -================== |
4 |
| - |
5 |
| -:Author: Francesc Alted |
6 |
| - |
7 |
| -:Date: 2009-06-02 |
8 | 3 |
|
| 4 | +* Author: Robert A. McLeod |
| 5 | + |
| 6 | +* Date: 2020-12-28 |
9 | 7 |
|
10 |
| -Following are notes useful for releasing Numexpr. |
| 8 | +Following are notes for releasing NumExpr. |
11 | 9 |
|
12 | 10 | Preliminaries
|
13 | 11 | -------------
|
14 | 12 |
|
15 |
| -- Make sure that ``RELEASE_NOTES.txt`` and ``ANNOUNCE.txt`` are up to |
16 |
| - date with the latest news in the release. |
| 13 | +* Make sure that `RELEASE_NOTES.rst` and `ANNOUNCE.rst` are up to date with the latest news in the release. |
| 14 | +* Remove the `.devN` suffix in `numexpr/version.py`. |
| 15 | +* Do a commit and a push: |
17 | 16 |
|
18 |
| -- Remove the `.devN` suffix in ``numexpr/version.py``. |
| 17 | + `git commit -a -m "Getting ready for release X.Y.Z"` |
19 | 18 |
|
20 |
| -- Do a commit and a push: |
| 19 | +* If the directories `dist` or `artifact` exist delete them. |
21 | 20 |
|
22 |
| - $ git commit -a -m"Getting ready for release X.Y.Z" |
23 |
| - |
24 |
| -Testing |
25 |
| -------- |
26 |
| - |
27 |
| -- Run the test suite in different platforms (at least Linux and |
28 |
| - Windows) and make sure that all tests passes. |
29 |
| - |
30 |
| -- Re-compile with MKL support and see if all tests passes as well. |
| 21 | +Local Testing |
| 22 | +------------- |
31 | 23 |
|
32 |
| -- Run all the benchmarks in ``bench/`` directory and see if the |
| 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 |
33 | 26 | speed-ups are the expected ones.
|
34 | 27 |
|
35 |
| -Packaging |
36 |
| ---------- |
37 |
| - |
38 |
| -- Make the tarball with the command: |
39 |
| - |
40 |
| - $ python setup.py sdist |
41 |
| - |
42 |
| - Do a quick check that the tarball is sane. |
43 |
| - |
44 |
| -Releasing |
45 |
| ---------- |
46 |
| - |
47 |
| -- Create a tag ``vX.Y.Z`` from ``master``. Use the next message: |
| 28 | +Tagging |
| 29 | +------- |
48 | 30 |
|
49 |
| - $ git tag -a vX.Y.Z -m "Tagging version X.Y.Z" |
| 31 | +* Create a tag `vX.Y.Z` from `master` and push the tag to GitHub: |
50 | 32 |
|
51 |
| -- Push the tag to the github repo: |
| 33 | + `git tag -a vX.Y.Z -m "Tagging version X.Y.Z"` |
| 34 | + `git push` |
| 35 | + `git push --tags` |
52 | 36 |
|
53 |
| - $ git push |
54 |
| - $ git push --tags |
| 37 | +* If you happen to have to delete the tag, such as artifacts demonstrates a fault, first delete it locally, |
55 | 38 |
|
56 |
| -- If you happen to have to delete the tag, for example if the `manywheels` builds |
57 |
| - demonstrates a fault, first delete it locally, |
| 39 | + `git tag --delete vX.Y.Z` |
58 | 40 |
|
59 |
| - git tag --delete vX.Y.Z |
60 |
| - |
61 | 41 | and then remotely on Github,
|
62 | 42 |
|
63 |
| - git push --delete origin vX.Y.Z |
| 43 | + `git push --delete origin vX.Y.Z` |
64 | 44 |
|
65 |
| -Build wheels |
| 45 | +Build Wheels |
66 | 46 | ------------
|
67 | 47 |
|
68 |
| -Matthew Brett has a repository for building for hosting wheels at |
69 |
| -http://github.com/MacPython/numexpr-wheels). For the procedure to trigger and |
70 |
| -upload the built wheels, see the README at that repo. |
| 48 | +* Check on GitHub Actions `github.com/robbmcleod/cpufeature/actions` that all the wheels built successfully. |
| 49 | +* Download `artifacts.zip` and unzip. |
| 50 | +* Make the source tarball with the command |
71 | 51 |
|
72 |
| -Build and upload the wheels before uploading the source distribution, to make |
73 |
| -sure that people who do not have compilers do not get breakage while the |
74 |
| -release is being uploaded. |
| 52 | + `python setup.py sdist` |
| 53 | + |
| 54 | +Releasing |
| 55 | +--------- |
75 | 56 |
|
76 |
| -Any problems, feel free to ask @matthew-brett for help - or indeed, pass the |
77 |
| -whole task to him. |
| 57 | +* Upload the built wheels to PyPi via Twine. |
78 | 58 |
|
79 |
| -Uploading the source distribution |
80 |
| ---------------------------------- |
| 59 | + `twine upload artifact/numexpr*.whl` |
81 | 60 |
|
82 |
| -- Upload it in the PyPi repository: |
| 61 | +* Upload the source distribution. |
83 | 62 |
|
84 |
| - $ python setup.py sdist upload |
| 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. |
85 | 66 |
|
86 | 67 |
|
87 | 68 | Announcing
|
88 | 69 | ----------
|
89 | 70 |
|
90 |
| -- Send an announcement to the NumPy list, PyData and python-announce |
91 |
| - list. Use the ``ANNOUNCE.rst`` file as skeleton (or possibly as the |
92 |
| - definitive version). |
93 |
| - |
| 71 | +* Send an announcement to the NumPy list, PyData and python-announce |
| 72 | + list. Use the `ANNOUNCE.rst` file as skeleton (or possibly as the |
| 73 | + definitive version). Email should be addressed to the following lists: |
| 74 | + |
| 75 | + |
| 76 | + |
94 | 77 |
|
95 | 78 | Post-release actions
|
96 | 79 | --------------------
|
97 | 80 |
|
98 |
| -- Edit ``numexpr/version.py`` to bump the version revision |
| 81 | +* Edit `numexpr/version.py` to bump the version revision |
99 | 82 | (i.e. X.Y.Z --> X.Y.(Z+1).dev0).
|
100 |
| - |
101 |
| -- Create new headers for adding new features in ``RELEASE_NOTES.txt`` |
| 83 | +* Create new headers for adding new features in `RELEASE_NOTES.rst` |
102 | 84 | and add this place-holder:
|
103 | 85 |
|
104 |
| - #XXX version-specific blurb XXX# |
| 86 | + `* **Under development.**` |
105 | 87 |
|
106 | 88 | Don't forget to update header to the next version in those files.
|
107 | 89 |
|
108 |
| -- Commit your changes: |
| 90 | +* Commit your changes: |
109 | 91 |
|
110 | 92 | $ git commit -a -m"Post X.Y.Z release actions done"
|
111 | 93 | $ git push
|
112 | 94 |
|
113 |
| - |
114 |
| -That's all folks! |
115 |
| - |
116 |
| - |
117 |
| -.. Local Variables: |
118 |
| -.. mode: rst |
119 |
| -.. coding: utf-8 |
120 |
| -.. fill-column: 70 |
121 |
| -.. End: |
| 95 | +Fin. |
0 commit comments