diff options
-rw-r--r-- | doc/HOWTO_RELEASE.rst.txt | 38 | ||||
-rw-r--r-- | doc/RELEASE_WALKTHROUGH.rst.txt | 66 | ||||
-rw-r--r-- | doc/source/dev/index.rst | 1 | ||||
-rw-r--r-- | doc/source/dev/releasing.rst | 16 |
4 files changed, 65 insertions, 56 deletions
diff --git a/doc/HOWTO_RELEASE.rst.txt b/doc/HOWTO_RELEASE.rst.txt index f849effa1..a6a8fe8ab 100644 --- a/doc/HOWTO_RELEASE.rst.txt +++ b/doc/HOWTO_RELEASE.rst.txt @@ -403,44 +403,18 @@ expecting a binary wheel. You can do this automatically using the ``wheel-uploader`` script from https://github.com/MacPython/terryfy. Here is the recommended incantation for -downloading all the Windows, Manylinux, OSX wheels and uploading to PyPI. +downloading all the Windows, Manylinux, OSX wheels and uploading to PyPI. :: -:: - - cd ~/wheelhouse # local directory to cache wheel downloads + NPY_WHLS=~/wheelhouse # local directory to cache wheel downloads CDN_URL=https://3f23b170c54c2533c070-1c8a9b3114517dc5fe17b7c3f8c63a43.ssl.cf2.rackcdn.com - wheel-uploader -u $CDN_URL -w warehouse -v -s -t win numpy 1.11.1rc1 + wheel-uploader -u $CDN_URL -w $NPY_WHLS -v -s -t win numpy 1.11.1rc1 wheel-uploader -u $CDN_URL -w warehouse -v -s -t macosx numpy 1.11.1rc1 wheel-uploader -u $CDN_URL -w warehouse -v -s -t manylinux1 numpy 1.11.1rc1 The ``-v`` flag gives verbose feedback, ``-s`` causes the script to sign the -wheels with your GPG key before upload. ``-r warehouse`` causes the upload to -use the Warehouse PyPI server. This is a good idea because the Warehouse -server seems to be a lot more reliable in receiving automated wheel uploads. -For this flag to work, you will need a ``warehouse`` section in your -``~/.pypirc`` file, of form: - - [distutils] - index-servers = - pypi - warehouse - - [pypi] - username:your_user_name - password:your_password - - [warehouse] - repository: https://upload.pypi.io/legacy/ - username: your_user_name - password: your_password - - [server-login] - username:your_user_name - password:your_password - -Don't forget to upload the wheels before the source tarball, so there is no -period for which people switch from an expected binary install to a source -install from PyPI. +wheels with your GPG key before upload. Don't forget to upload the wheels +before the source tarball, so there is no period for which people switch from +an expected binary install to a source install from PyPI. There are two ways to update the source release on PyPI, the first one is:: diff --git a/doc/RELEASE_WALKTHROUGH.rst.txt b/doc/RELEASE_WALKTHROUGH.rst.txt index ad14c16c1..260e0c1b7 100644 --- a/doc/RELEASE_WALKTHROUGH.rst.txt +++ b/doc/RELEASE_WALKTHROUGH.rst.txt @@ -1,23 +1,36 @@ -This file contains a walkthrough of the NumPy 1.14.4 release on Linux. +This file contains a walkthrough of the NumPy 1.14.5 release on Linux. The commands can be copied into the command line, but be sure to -replace 1.14.4 by the correct version. +replace 1.14.5 by the correct version. Release Walkthrough ==================== +Backport Pull Requests +---------------------- + +Changes that have been marked for this release must be backported to the +maintenance/1.14.x branch. + Update Release documentation ---------------------------- -The file ``doc/changelog/1.14.4-changelog.rst`` should be updated to reflect +The file ``doc/changelog/1.14.5-changelog.rst`` should be updated to reflect the final list of changes and contributors. This text can be generated by:: - $ python tools/changelog.py $GITHUB v1.14.3..maintenance/1.14.x > doc/changelog/1.14.4-changelog.rst + $ python tools/changelog.py $GITHUB v1.14.4..maintenance/1.14.x > doc/changelog/1.14.5-changelog.rst where ``GITHUB`` contains your github access token. This text may also be -appended to ``doc/release/1.14.4-notes.rst`` for release updates, though not +appended to ``doc/release/1.14.5-notes.rst`` for release updates, though not for new releases like ``1.14.0``, as the changelogs for latter tend to be excessively long. The ``doc/source/release.rst`` file should also be -updated with a link to the new release notes. +updated with a link to the new release notes. These changes should be committed +to the maintenance branch, and later will be forward ported to master. + +Finish the Release Note +----------------------- + +Fill out the release note ``doc/release/1.14.5-notes.rst`` calling out +significant changes. Prepare the release commit -------------------------- @@ -33,7 +46,7 @@ repository:: Edit pavement.py and setup.py as detailed in HOWTO_RELEASE:: $ gvim pavement.py setup.py - $ git commit -a -m"REL: NumPy 1.14.4 release." + $ git commit -a -m"REL: NumPy 1.14.5 release." Sanity check:: @@ -52,9 +65,10 @@ Build source releases Paver is used to build the source releases. It will create the ``release`` and ``release/installers`` directories and put the ``*.zip`` and ``*.tar.gz`` -source releases in the latter. +source releases in the latter. :: - $ paver sdist # sdist will do a git clean -xdf, so we omit that + $ cython --version # check that you have the correct cython version + $ paver sdist # sdist will do a git clean -xdf, so we omit that Build wheels ------------ @@ -102,9 +116,9 @@ upload later using ``twine``:: $ git pull origin master $ CDN_URL=https://3f23b170c54c2533c070-1c8a9b3114517dc5fe17b7c3f8c63a43.ssl.cf2.rackcdn.com $ NPY_WHLS=../numpy/release/installers - $ ./wheel-uploader -u $CDN_URL -n -v -w $NPY_WHLS -t win numpy 1.14.4 - $ ./wheel-uploader -u $CDN_URL -n -v -w $NPY_WHLS -t manylinux1 numpy 1.14.4 - $ ./wheel-uploader -u $CDN_URL -n -v -w $NPY_WHLS -t macosx numpy 1.14.4 + $ ./wheel-uploader -u $CDN_URL -n -v -w $NPY_WHLS -t win numpy 1.14.5 + $ ./wheel-uploader -u $CDN_URL -n -v -w $NPY_WHLS -t manylinux1 numpy 1.14.5 + $ ./wheel-uploader -u $CDN_URL -n -v -w $NPY_WHLS -t macosx numpy 1.14.5 If you do this often, consider making CDN_URL and NPY_WHLS part of your default environment. Note that we need local copies of the files in order to generate @@ -117,7 +131,7 @@ Once the wheels have been built and downloaded without errors, go back to your numpy repository in the maintenance branch and tag the ``REL`` commit, signing it with your gpg key, and build the source distribution archives:: - $ git tag -s v1.14.4 + $ git tag -s v1.14.5 You should upload your public gpg key to github, so that the tag will appear "verified" there. @@ -125,7 +139,7 @@ You should upload your public gpg key to github, so that the tag will appear Check that the files in ``release/installers`` have the correct versions, then push the tag upstream:: - $ git push upstream v1.14.4 + $ git push upstream v1.14.5 We wait until this point to push the tag because it is very difficult to change the tag after it has been pushed. @@ -140,9 +154,6 @@ Add another ``REL`` commit to the numpy maintenance branch, which resets the $ git commit -a -m"REL: prepare 1.14.x for further development" $ git push upstream maintenance/1.14.x -This strategy is copied from the scipy release procedure and was used in numpy -for the first time in 1.14.3. It needed to be modified a little since numpy -has more strict requirements for the version number. Upload to PyPI -------------- @@ -152,7 +163,7 @@ after recent PyPI changes, version ``1.11.0`` was used here. :: $ cd ../numpy $ twine upload release/installers/*.whl - $ twine upload release/installers/numpy-1.14.4.zip # Upload last. + $ twine upload release/installers/numpy-1.14.5.zip # Upload last. If one of the commands breaks in the middle, which is not uncommon, you may need to selectively upload the remaining files because PyPI does not allow the @@ -168,15 +179,15 @@ Generate the ``release/README.*`` files:: $ paver write_release_and_log -Go to `<https://github.com/numpy/numpy/releases>`_, there should be a ``v1.14.4 +Go to `<https://github.com/numpy/numpy/releases>`_, there should be a ``v1.14.5 tag``, click on it and hit the edit button for that tag. There are two ways to add files, using an editable text window and as binary uploads. - Cut and paste the ``release/README.md`` file contents into the text window. -- Upload ``release/installers/numpy-1.14.4.tar.gz`` as a binary file. -- Upload ``release/installers/numpy-1.14.4.zip`` as a binary file. +- Upload ``release/installers/numpy-1.14.5.tar.gz`` as a binary file. +- Upload ``release/installers/numpy-1.14.5.zip`` as a binary file. - Upload ``release/README.rst`` as a binary file. -- Upload ``doc/changelog/1.14.4-changelog.rst`` as a binary file. +- Upload ``doc/changelog/1.14.5-changelog.rst`` as a binary file. - Check the pre-release button if this is a pre-releases. - Hit the ``{Publish,Update} release`` button at the bottom. @@ -191,7 +202,7 @@ upload the documentation. Otherwise:: $ pushd doc $ make dist - $ make upload USERNAME=<yourname> RELEASE=v1.14.4 + $ make upload USERNAME=<yourname> RELEASE=v1.14.5 $ popd If the release series is a new one, you will need to rebuild and upload the @@ -212,7 +223,7 @@ This assumes that you have forked `<https://github.com/scipy/scipy.org>`_:: $ cd ../scipy.org $ git checkout master $ git pull upstream master - $ git checkout -b numpy-1.14.4 + $ git checkout -b numpy-1.14.5 $ gvim www/index.rst # edit the News section $ git commit -a $ git push origin HEAD @@ -226,3 +237,10 @@ The release should be announced on the numpy-discussion, scipy-devel, scipy-user, and python-announce-list mailing lists. Look at previous announcements for the basic template. The contributor and PR lists are the same as generated for the release notes above. + +Post-Release Tasks +------------------ + +Forward port the documentation changes ``doc/release/1.14.5-notes.rst``, +``doc/changelog/1.14.5-changelog.rst`` and add the release note to +``doc/source/release.rst``. diff --git a/doc/source/dev/index.rst b/doc/source/dev/index.rst index 543194119..04c84eb61 100644 --- a/doc/source/dev/index.rst +++ b/doc/source/dev/index.rst @@ -7,6 +7,7 @@ Contributing to NumPy gitwash/index development_environment + releasing governance/index For core developers: see :ref:`development-workflow`. diff --git a/doc/source/dev/releasing.rst b/doc/source/dev/releasing.rst new file mode 100644 index 000000000..61fa19514 --- /dev/null +++ b/doc/source/dev/releasing.rst @@ -0,0 +1,16 @@ +=================== +Releasing a Version +=================== + +------------------------ +How to Prepare a Release +------------------------ + +.. include:: ../../HOWTO_RELEASE.rst.txt + +----------------------- +Step-by-Step Directions +----------------------- + +.. include:: ../../RELEASE_WALKTHROUGH.rst.txt + |