diff options
author | Charles Harris <charlesr.harris@gmail.com> | 2018-02-21 11:53:32 -0700 |
---|---|---|
committer | Charles Harris <charlesr.harris@gmail.com> | 2018-02-22 08:31:46 -0700 |
commit | b5ead184123325c6e959bf9745142cdaa978e101 (patch) | |
tree | d1dd31240a1e738d003666e6d64a78aaaca504fe | |
parent | 875b0e536617037dec54fdb618ff37d99a6c687b (diff) | |
download | numpy-b5ead184123325c6e959bf9745142cdaa978e101.tar.gz |
DOC: Update RELEASE_WALKTHROUGH.rst.txt.
[ci skip]
-rw-r--r-- | doc/RELEASE_WALKTHROUGH.rst.txt | 116 |
1 files changed, 66 insertions, 50 deletions
diff --git a/doc/RELEASE_WALKTHROUGH.rst.txt b/doc/RELEASE_WALKTHROUGH.rst.txt index 9d69eb2db..df8c9c45a 100644 --- a/doc/RELEASE_WALKTHROUGH.rst.txt +++ b/doc/RELEASE_WALKTHROUGH.rst.txt @@ -11,8 +11,8 @@ Building the release Checkout the branch for the release, make sure it is up to date, and clean the repository:: - $ git checkout maintenance/1.12.x - $ git pull upstream maintenance/1.12.x + $ git checkout maintenance/1.14.x + $ git pull upstream maintenance/1.14.x $ git submodule update $ git clean -xdf @@ -20,12 +20,12 @@ Look at the git log to get the hash of the last commit in the release, then check it out:: $ git log - $ git checkout f59a2fbbd497dbaf3a2e405a41e52dc5e331bfa7 + $ git checkout 7849751173fb47a5f17761b3515b42b4d8ce1197 Edit pavement.py and setup.py as detailed in HOWTO_RELEASE:: $ gvim pavement.py setup.py - $ git commit -a -m"REL: NumPy 1.12.0 release." + $ git commit -a -m"REL: NumPy 1.14.1 release." Sanity check:: @@ -34,86 +34,102 @@ Sanity check:: Tag it,and build the source distribution archives:: - $ git tag -s v1.12.0 + $ git tag -s v1.14.1 $ paver sdist # sdist will do a git clean -xdf, so we omit that Check that the files in ``release/installers`` have the correct versions, then push the tag upstream; generation of the wheels for PyPI needs it:: - $ git push upstream v1.12.0 + $ git push upstream v1.14.1 Trigger the wheels build. This can take a while. The numpy-wheels repository is cloned from `<https://github.com/MacPython/numpy-wheels>`_. Start with a pull as the repo may have been accessed and changed by someone else and a push will -fail. The ``.travis.yml`` and ``appveyor.yml`` files need to be edited to make -sure they have the correct version, search for ``BUILD_COMMIT``. If you get -nervous at the amount of time taken -- the builds can take several hours-- you -can check the build progress by following the links provided at -`<https://github.com/MacPython/numpy-wheels>`_ to check the travis and appveyor -build status. +fail. $ cd ../numpy-wheels $ git pull origin master + $ git branch <new version> # only when starting new numpy version + $ git checkout v1.14.x # v1.14.x already existed for the 1.14.1 release + +The ``.travis.yml`` and ``appveyor.yml`` files need to be edited to make +sure they have the correct version, search for ``BUILD_COMMIT``. + $ gvim .travis.yml appveyor.yml $ git commit -a $ git push origin HEAD -Upload to PyPI --------------- +Now wait. If you get nervous at the amount of time taken -- the builds can take +several hours-- you can check the build progress by following the links +provided at `<https://github.com/MacPython/numpy-wheels>`_ to check the travis +and appveyor build status. Check if all the needed wheels have been built and +uploaded before proceeding. There should currently be 22 of them at +`<https://wheels.scipy.org>`_, 4 for Mac, 8 for Windows, and 10 for Linux. -Upload to PyPI using the ``wheel-uploader``. The terryfy repository is -cloned from `<https://github.com/MacPython/terryfy>`_. Uploading can be a -hassle due to the site itself having problems. If you get strange messages, put -it off for the next day. To begin, check if all the needed wheels have been -built. There should be 22 of them at `<https://wheels.scipy.org>`_, 4 for Mac, -8 for Windows, and 10 for Linux. Here the wheelhouse directory is in the home -directory. Then upload the wheels. You will need to sign every file separately -in the process, keeping the pass phrase in the clipboard and pasting it in will -make that easier:: + +Download wheels +--------------- + +When the wheels have all been built, download them using the ``wheel-uploader`` +in the ``terryfy`` repository. The terryfy repository may be cloned from +`<https://github.com/MacPython/terryfy>`_ if you don't already have it. The +wheels can also be uploaded using the ``wheel-uploader``, but we prefer to +download all the wheels to the ``../numpy/release/installers`` directory and +upload later using ``twine``. $ cd ../terryfy $ git pull origin master $ CDN_URL=https://3f23b170c54c2533c070-1c8a9b3114517dc5fe17b7c3f8c63a43.ssl.cf2.rackcdn.com - $ ./wheel-uploader -r warehouse -u $CDN_URL -s -v -w ~/wheelhouse -t win numpy 1.12.0 - $ ./wheel-uploader -r warehouse -u $CDN_URL -s -v -w ~/wheelhouse -t manylinux1 numpy 1.12.0 - $ ./wheel-uploader -r warehouse -u $CDN_URL -s -v -w ~/wheelhouse -t macosx numpy 1.12.0 + $ NPY_WHLS=../numpy/release/installers + $ ./wheel-uploader -u $CDN_URL -n -v -w $NPY_WHLS -t win numpy 1.14.1 + $ ./wheel-uploader -u $CDN_URL -n -v -w $NPY_WHLS -t manylinux1 numpy 1.14.1 + $ ./wheel-uploader -u $CDN_URL -n -v -w $NPY_WHLS -t macosx numpy 1.14.1 + +If you do this often, consider making CDN_URL and NPY_WHLS part of your default +environment. -If one of the commands breaks in the middle, you may need to manually upload -the rest of the files using twine because wheel-uploader always starts from the -beginning and PyPI does not allow the same file to be uploaded twice. -The source files should be uploaded last to avoid problems. PyPI will only allow -a single source distribution, here it is the zip archive:: +Upload to PyPI +-------------- + +Upload to PyPI using ``twine``. The choice here is to sign the files, so will +need to sign every file separately when they are uploaded, keeping the gpg pass +phrase in the clipboard and pasting it in will make that easier. We may chose +to forgo the signing in the future:: $ cd ../numpy - $ twine upload -s release/installers/numpy-1.12.0.zip + $ twine upload -s release/installers/*.whl + $ twine upload -s release/installers/numpy-1.14.1.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 becuase PyPI does not allow the +same file to be uploaded twice. The source file should be uploaded last to +avoid synchronization problems if pip users access the files while this is in +process. Note that PyPI only allows a single source distribution, here we have +chosen the zip archive. If this is not a final release, log into PyPI and hide the new directory while -making sure the last final release is visible. +making sure the last stable release is visible. -Upload tarballs to github -------------------------- -We want to post the hash values for the files uploaded to PyPI in the release -generated README file, so first copy the wheels into the installers directory -and remove the now unneeded signature files:: - $ cp ~/wheelhouse/numpy-1.12.0* release/installers - $ rm release/installers/*.asc +Upload files to github +---------------------- -Generate the ``release/Changelog`` and ``release/README`` files:: +Generate the ``release/README`` files:: + $ rm release/installers/*.asc $ paver write_release_and_log -Go to `<https://github.com/numpy/numpy/releases>`_, there should be a -``v1.12.0 tag``, hit the edit button for that tag. There are two ways to add -files, using an editable text window and as binary uploads. +Go to `<https://github.com/numpy/numpy/releases>`_, there should be a ``v1.14.1 +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. +- Cut and paste the ``release/README.md`` file contents into the text window. - Upload ``release/installers/numpy-1.12.0.tar.gz`` as a binary file. - Upload ``release/installers/numpy-1.12.0.zip`` as a binary file. - Upload ``release/README`` as a binary file. -- Upload ``release/Changelog`` as a binary file (maybe). -- Check the pre-release button for pre-releases. +- Upload ``doc/changelog/1.14.1-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. @@ -127,7 +143,7 @@ upload the documentation. Otherwise:: $ pushd doc $ make dist - $ make upload USERNAME=<yourname> RELEASE=v1.12.0 + $ make upload USERNAME=<yourname> RELEASE=v1.14.1 $ popd 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>`_:: $ cd ../scipy.org $ git checkout master $ git pull upstream master - $ git checkout -b numpy-1.12.0 + $ git checkout -b numpy-1.14.1 $ gvim www/index.rst # edit the News section $ git commit -a $ git push origin HEAD @@ -164,7 +180,7 @@ announcements for the basic template. The contributor list can be generated as follows:: $ cd ../numpy - $ ./tools/announce.py $GITHUB v1.11.0..v1.12.0 > tmp.rst + $ ./tools/changelog.py $GITHUB v1.14.0..v1.14.1 > tmp.rst The contents of ``tmp.rst`` can then be cut and pasted into the announcement email. |