Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit bb745b7

Browse files
authored
Merge pull request numpy#11009 from numpy/release_walkthrough_1.14.3notes
DOC: release walkthrough updates from 1.14.3
2 parents 2cf2db3 + d68e595 commit bb745b7

1 file changed

Lines changed: 73 additions & 37 deletions

File tree

doc/RELEASE_WALKTHROUGH.rst.txt

Lines changed: 73 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
1-
This file contains a walkthrough of the NumPy 1.12.0 release on Fedora Linux.
1+
This file contains a walkthrough of the NumPy 1.14.3 release on Linux.
22
The commands can be copied into the command line, but be sure to
3-
replace 1.12.0 by the correct version.
3+
replace 1.14.3 by the correct version.
44

55
Release Walkthrough
66
====================
77

8-
Building the release
9-
--------------------
8+
Prepare the release commit
9+
--------------------------
1010

1111
Checkout the branch for the release, make sure it is up to date, and clean the
1212
repository::
@@ -16,44 +16,39 @@ repository::
1616
$ git submodule update
1717
$ git clean -xdf
1818

19-
Look at the git log to get the hash of the last commit in the release, then
20-
check it out::
21-
22-
$ git log
23-
$ git checkout 7849751173fb47a5f17761b3515b42b4d8ce1197
24-
2519
Edit pavement.py and setup.py as detailed in HOWTO_RELEASE::
2620

2721
$ gvim pavement.py setup.py
28-
$ git commit -a -m"REL: NumPy 1.14.1 release."
22+
$ git commit -a -m"REL: NumPy 1.14.3 release."
2923

3024
Sanity check::
3125

3226
$ python runtests.py -m "full"
3327
$ python3 runtests.py -m "full"
3428

35-
Tag it,and build the source distribution archives::
29+
Push this release directly onto the end of the maintenance branch. This
30+
requires write permission to the numpy repository::
3631

37-
$ git tag -s v1.14.1
38-
$ paver sdist # sdist will do a git clean -xdf, so we omit that
32+
$ git push upstream maintenance/1.14.x
3933

40-
Check that the files in ``release/installers`` have the correct versions, then
41-
push the tag upstream; generation of the wheels for PyPI needs it::
34+
As an example, see the 1.14.3 REL commit: `<https://github.com/numpy/numpy/commit/73299826729be58cec179b52c656adfcaefada93>`_.
4235

43-
$ git push upstream v1.14.1
36+
Build wheels
37+
------------
4438

45-
Trigger the wheels build. This can take a while. The numpy-wheels repository is
46-
cloned from `<https://github.com/MacPython/numpy-wheels>`_. Start with a pull
47-
as the repo may have been accessed and changed by someone else and a push will
48-
fail.
39+
Trigger the wheels build by pointing the numpy-wheels repository at this
40+
commit. This can take a while. The numpy-wheels repository is cloned from
41+
`<https://github.com/MacPython/numpy-wheels>`_. Start with a pull as the repo
42+
may have been accessed and changed by someone else and a push will fail::
4943

5044
$ cd ../numpy-wheels
5145
$ git pull origin master
5246
$ 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
47+
$ git checkout v1.14.x # v1.14.x already existed for the 1.14.3 release
5448

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``.
49+
Edit the ``.travis.yml`` and ``appveyor.yml`` files to make sure they have the
50+
correct version, and put in the commit hash for the ``REL`` commit created
51+
above for ``BUILD_COMMIT``. See `<https://github.com/MacPython/numpy-wheels/commit/fed9c04629c155e7804282eb803d81097244598d>`_ for an example::
5752

5853
$ gvim .travis.yml appveyor.yml
5954
$ git commit -a
@@ -66,7 +61,6 @@ and appveyor build status. Check if all the needed wheels have been built and
6661
uploaded before proceeding. There should currently be 22 of them at
6762
`<https://wheels.scipy.org>`_, 4 for Mac, 8 for Windows, and 10 for Linux.
6863

69-
7064
Download wheels
7165
---------------
7266

@@ -75,7 +69,7 @@ in the ``terryfy`` repository. The terryfy repository may be cloned from
7569
`<https://github.com/MacPython/terryfy>`_ if you don't already have it. The
7670
wheels can also be uploaded using the ``wheel-uploader``, but we prefer to
7771
download all the wheels to the ``../numpy/release/installers`` directory and
78-
upload later using ``twine``.
72+
upload later using ``twine``::
7973

8074
$ cd ../terryfy
8175
$ git pull origin master
@@ -88,14 +82,56 @@ upload later using ``twine``.
8882
If you do this often, consider making CDN_URL and NPY_WHLS part of your default
8983
environment.
9084

85+
Tag the release
86+
---------------
87+
88+
Once the wheels have been built and downloaded without errors, go back to your
89+
numpy repository in the maintenance branch and tag the ``REL`` commit, signing
90+
it with your gpg key, and build the source distribution archives::
91+
92+
$ git tag -s v1.14.3
93+
$ paver sdist # sdist will do a git clean -xdf, so we omit that
94+
95+
You should upload your public gpg key to github, so that the tag will appear
96+
"verified" there.
97+
98+
Check that the files in ``release/installers`` have the correct versions, then
99+
push the tag upstream::
100+
101+
$ git push upstream v1.14.3
102+
103+
We wait until this point to push the tag because it is very difficult to change
104+
the tag after it has been pushed.
105+
106+
Reset the maintenance branch into a development state
107+
-----------------------------------------------------
108+
109+
Add another ``REL`` commit to the numpy maintenance branch, which resets the
110+
``ISREALEASED`` flag to ``False`` and increments the version counter::
111+
112+
$ gvim pavement.py setup.py
113+
$ git commit -a -m"REL: prepare 1.14.x for further development"
114+
$ git push upstream maintenance/1.14.x
115+
116+
This strategy is copied from the scipy release procedure and was used in numpy
117+
for the first time in 1.14.3. It needed to be modified a little since numpy
118+
has more strict requirements for the version number. It was acheived in two
119+
commits:
120+
`<https://github.com/numpy/numpy/commit/b8df705bdcce92d3e2c6f050eb4414192cf0df04>`_
121+
`<https://github.com/numpy/numpy/commit/29e175269624493114f77cceff93486271f9efff>`_.
91122

92123
Upload to PyPI
93124
--------------
94125

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::
126+
Upload to PyPI using ``twine``.
127+
128+
In the past, we signed the wheels files, but after 1.14.3 wheels should no
129+
longer support or need signing. The instructions below still sign.
130+
131+
For the 1.14.3 release we signed every file when it was uploaded. On systems
132+
which do not cache the gpg passphrase for a few minutes, keeping the it in the
133+
clipboard and pasting it in will make that easier. We may chose to forgo the
134+
signing in the future::
99135

100136
$ cd ../numpy
101137
$ twine upload -s release/installers/*.whl
@@ -120,15 +156,15 @@ Generate the ``release/README`` files::
120156
$ rm release/installers/*.asc
121157
$ paver write_release_and_log
122158

123-
Go to `<https://github.com/numpy/numpy/releases>`_, there should be a ``v1.14.1
159+
Go to `<https://github.com/numpy/numpy/releases>`_, there should be a ``v1.14.3
124160
tag``, click on it and hit the edit button for that tag. There are two ways to
125161
add files, using an editable text window and as binary uploads.
126162

127163
- Cut and paste the ``release/README.md`` file contents into the text window.
128-
- Upload ``release/installers/numpy-1.12.0.tar.gz`` as a binary file.
129-
- Upload ``release/installers/numpy-1.12.0.zip`` as a binary file.
164+
- Upload ``release/installers/numpy-1.14.3.tar.gz`` as a binary file.
165+
- Upload ``release/installers/numpy-1.14.3.zip`` as a binary file.
130166
- Upload ``release/README`` as a binary file.
131-
- Upload ``doc/changelog/1.14.1-changelog.rst`` as a binary file.
167+
- Upload ``doc/changelog/1.14.3-changelog.rst`` as a binary file.
132168
- Check the pre-release button if this is a pre-releases.
133169
- Hit the ``{Publish,Update} release`` button at the bottom.
134170

@@ -143,7 +179,7 @@ upload the documentation. Otherwise::
143179

144180
$ pushd doc
145181
$ make dist
146-
$ make upload USERNAME=<yourname> RELEASE=v1.14.1
182+
$ make upload USERNAME=<yourname> RELEASE=v1.14.3
147183
$ popd
148184

149185
If the release series is a new one, you will need to rebuild and upload the
@@ -164,7 +200,7 @@ This assumes that you have forked `<https://github.com/scipy/scipy.org>`_::
164200
$ cd ../scipy.org
165201
$ git checkout master
166202
$ git pull upstream master
167-
$ git checkout -b numpy-1.14.1
203+
$ git checkout -b numpy-1.14.3
168204
$ gvim www/index.rst # edit the News section
169205
$ git commit -a
170206
$ git push origin HEAD
@@ -180,7 +216,7 @@ announcements for the basic template. The contributor list can be generated as
180216
follows::
181217

182218
$ cd ../numpy
183-
$ ./tools/changelog.py $GITHUB v1.14.0..v1.14.1 > tmp.rst
219+
$ ./tools/changelog.py $GITHUB v1.14.2..v1.14.3 > tmp.rst
184220

185221
The contents of ``tmp.rst`` can then be cut and pasted into the announcement
186222
email.

0 commit comments

Comments
 (0)