@@ -11,21 +11,21 @@ Building the release
11
11
Checkout the branch for the release, make sure it is up to date, and clean the
12
12
repository::
13
13
14
- $ git checkout maintenance/1.12 .x
15
- $ git pull upstream maintenance/1.12 .x
14
+ $ git checkout maintenance/1.14 .x
15
+ $ git pull upstream maintenance/1.14 .x
16
16
$ git submodule update
17
17
$ git clean -xdf
18
18
19
19
Look at the git log to get the hash of the last commit in the release, then
20
20
check it out::
21
21
22
22
$ git log
23
- $ git checkout f59a2fbbd497dbaf3a2e405a41e52dc5e331bfa7
23
+ $ git checkout 7849751173fb47a5f17761b3515b42b4d8ce1197
24
24
25
25
Edit pavement.py and setup.py as detailed in HOWTO_RELEASE::
26
26
27
27
$ gvim pavement.py setup.py
28
- $ git commit -a -m"REL: NumPy 1.12.0 release."
28
+ $ git commit -a -m"REL: NumPy 1.14.1 release."
29
29
30
30
Sanity check::
31
31
@@ -34,86 +34,102 @@ Sanity check::
34
34
35
35
Tag it,and build the source distribution archives::
36
36
37
- $ git tag -s v1.12.0
37
+ $ git tag -s v1.14.1
38
38
$ paver sdist # sdist will do a git clean -xdf, so we omit that
39
39
40
40
Check that the files in ``release/installers `` have the correct versions, then
41
41
push the tag upstream; generation of the wheels for PyPI needs it::
42
42
43
- $ git push upstream v1.12.0
43
+ $ git push upstream v1.14.1
44
44
45
45
Trigger the wheels build. This can take a while. The numpy-wheels repository is
46
46
cloned from `<https://github.com/MacPython/numpy-wheels >`_. Start with a pull
47
47
as the repo may have been accessed and changed by someone else and a push will
48
- fail. The ``.travis.yml `` and ``appveyor.yml `` files need to be edited to make
49
- sure they have the correct version, search for ``BUILD_COMMIT ``. If you get
50
- nervous at the amount of time taken -- the builds can take several hours-- you
51
- can check the build progress by following the links provided at
52
- `<https://github.com/MacPython/numpy-wheels >`_ to check the travis and appveyor
53
- build status.
48
+ fail.
54
49
55
50
$ cd ../numpy-wheels
56
51
$ git pull origin master
52
+ $ git branch <new version> # only when starting new numpy version
53
+ $ git checkout v1.14.x # v1.14.x already existed for the 1.14.1 release
54
+
55
+ The ``.travis.yml `` and ``appveyor.yml `` files need to be edited to make
56
+ sure they have the correct version, search for ``BUILD_COMMIT ``.
57
+
57
58
$ gvim .travis.yml appveyor.yml
58
59
$ git commit -a
59
60
$ git push origin HEAD
60
61
61
- Upload to PyPI
62
- --------------
62
+ Now wait. If you get nervous at the amount of time taken -- the builds can take
63
+ several hours-- you can check the build progress by following the links
64
+ provided at `<https://github.com/MacPython/numpy-wheels >`_ to check the travis
65
+ and appveyor build status. Check if all the needed wheels have been built and
66
+ uploaded before proceeding. There should currently be 22 of them at
67
+ `<https://wheels.scipy.org >`_, 4 for Mac, 8 for Windows, and 10 for Linux.
63
68
64
- Upload to PyPI using the ``wheel-uploader ``. The terryfy repository is
65
- cloned from `<https://github.com/MacPython/terryfy >`_. Uploading can be a
66
- hassle due to the site itself having problems. If you get strange messages, put
67
- it off for the next day. To begin, check if all the needed wheels have been
68
- built. There should be 22 of them at `<https://wheels.scipy.org >`_, 4 for Mac,
69
- 8 for Windows, and 10 for Linux. Here the wheelhouse directory is in the home
70
- directory. Then upload the wheels. You will need to sign every file separately
71
- in the process, keeping the pass phrase in the clipboard and pasting it in will
72
- make that easier::
69
+
70
+ Download wheels
71
+ ---------------
72
+
73
+ When the wheels have all been built, download them using the ``wheel-uploader ``
74
+ in the ``terryfy `` repository. The terryfy repository may be cloned from
75
+ `<https://github.com/MacPython/terryfy >`_ if you don't already have it. The
76
+ wheels can also be uploaded using the ``wheel-uploader ``, but we prefer to
77
+ download all the wheels to the ``../numpy/release/installers `` directory and
78
+ upload later using ``twine ``.
73
79
74
80
$ cd ../terryfy
75
81
$ git pull origin master
76
82
$ CDN_URL=https://3f23b170c54c2533c070-1c8a9b3114517dc5fe17b7c3f8c63a43.ssl.cf2.rackcdn.com
77
- $ ./wheel-uploader -r warehouse -u $CDN_URL -s -v -w ~/wheelhouse -t win numpy 1.12.0
78
- $ ./wheel-uploader -r warehouse -u $CDN_URL -s -v -w ~/wheelhouse -t manylinux1 numpy 1.12.0
79
- $ ./wheel-uploader -r warehouse -u $CDN_URL -s -v -w ~/wheelhouse -t macosx numpy 1.12.0
83
+ $ NPY_WHLS=../numpy/release/installers
84
+ $ ./wheel-uploader -u $CDN_URL -n -v -w $NPY_WHLS -t win numpy 1.14.1
85
+ $ ./wheel-uploader -u $CDN_URL -n -v -w $NPY_WHLS -t manylinux1 numpy 1.14.1
86
+ $ ./wheel-uploader -u $CDN_URL -n -v -w $NPY_WHLS -t macosx numpy 1.14.1
87
+
88
+ If you do this often, consider making CDN_URL and NPY_WHLS part of your default
89
+ environment.
80
90
81
- If one of the commands breaks in the middle, you may need to manually upload
82
- the rest of the files using twine because wheel-uploader always starts from the
83
- beginning and PyPI does not allow the same file to be uploaded twice.
84
91
85
- The source files should be uploaded last to avoid problems. PyPI will only allow
86
- a single source distribution, here it is the zip archive::
92
+ Upload to PyPI
93
+ --------------
94
+
95
+ Upload to PyPI using ``twine ``. The choice here is to sign the files, so will
96
+ need to sign every file separately when they are uploaded, keeping the gpg pass
97
+ phrase in the clipboard and pasting it in will make that easier. We may chose
98
+ to forgo the signing in the future::
87
99
88
100
$ cd ../numpy
89
- $ twine upload -s release/installers/numpy-1.12.0.zip
101
+ $ twine upload -s release/installers/*.whl
102
+ $ twine upload -s release/installers/numpy-1.14.1.zip # Upload last.
103
+
104
+ If one of the commands breaks in the middle, which is not uncommon, you may
105
+ need to selectively upload the remaining files becuase PyPI does not allow the
106
+ same file to be uploaded twice. The source file should be uploaded last to
107
+ avoid synchronization problems if pip users access the files while this is in
108
+ process. Note that PyPI only allows a single source distribution, here we have
109
+ chosen the zip archive.
90
110
91
111
If this is not a final release, log into PyPI and hide the new directory while
92
- making sure the last final release is visible.
112
+ making sure the last stable release is visible.
93
113
94
- Upload tarballs to github
95
- -------------------------
96
- We want to post the hash values for the files uploaded to PyPI in the release
97
- generated README file, so first copy the wheels into the installers directory
98
- and remove the now unneeded signature files::
99
114
100
- $ cp ~/wheelhouse/numpy-1.12.0* release/installers
101
- $ rm release/installers/*.asc
115
+ Upload files to github
116
+ ----------------------
102
117
103
- Generate the ``release/Changelog `` and `` release/ README `` files::
118
+ Generate the ``release/README `` files::
104
119
120
+ $ rm release/installers/*.asc
105
121
$ paver write_release_and_log
106
122
107
- Go to `<https://github.com/numpy/numpy/releases >`_, there should be a
108
- `` v1.12.0 tag ``, hit the edit button for that tag. There are two ways to add
109
- files, using an editable text window and as binary uploads.
123
+ Go to `<https://github.com/numpy/numpy/releases >`_, there should be a `` v1.14.1
124
+ tag ``, click on it and hit the edit button for that tag. There are two ways to
125
+ add files, using an editable text window and as binary uploads.
110
126
111
- - Cut- and- paste the ``release/README.md `` file contents into the text window.
127
+ - Cut and paste the ``release/README.md `` file contents into the text window.
112
128
- Upload ``release/installers/numpy-1.12.0.tar.gz `` as a binary file.
113
129
- Upload ``release/installers/numpy-1.12.0.zip `` as a binary file.
114
130
- Upload ``release/README `` as a binary file.
115
- - Upload ``release/Changelog `` as a binary file (maybe) .
116
- - Check the pre-release button for pre-releases.
131
+ - Upload ``doc/changelog/1.14.1-changelog.rst `` as a binary file.
132
+ - Check the pre-release button if this is a pre-releases.
117
133
- Hit the ``{Publish,Update} release `` button at the bottom.
118
134
119
135
@@ -127,7 +143,7 @@ upload the documentation. Otherwise::
127
143
128
144
$ pushd doc
129
145
$ make dist
130
- $ make upload USERNAME=<yourname> RELEASE=v1.12.0
146
+ $ make upload USERNAME=<yourname> RELEASE=v1.14.1
131
147
$ popd
132
148
133
149
If the release series is a new one, you will need to rebuild and upload the
@@ -148,7 +164,7 @@ This assumes that you have forked `<https://github.com/scipy/scipy.org>`_::
148
164
$ cd ../scipy.org
149
165
$ git checkout master
150
166
$ git pull upstream master
151
- $ git checkout -b numpy-1.12.0
167
+ $ git checkout -b numpy-1.14.1
152
168
$ gvim www/index.rst # edit the News section
153
169
$ git commit -a
154
170
$ git push origin HEAD
@@ -164,7 +180,7 @@ announcements for the basic template. The contributor list can be generated as
164
180
follows::
165
181
166
182
$ cd ../numpy
167
- $ ./tools/announce .py $GITHUB v1.11 .0..v1.12.0 > tmp.rst
183
+ $ ./tools/changelog .py $GITHUB v1.14 .0..v1.14.1 > tmp.rst
168
184
169
185
The contents of ``tmp.rst `` can then be cut and pasted into the announcement
170
186
email.
0 commit comments