Skip to content

Commit

Permalink
Merge pull request numpy#10641 from charris/post-1.14.1-update
Browse files Browse the repository at this point in the history
MAINT: Post 1.14.1 release updates for master branch
  • Loading branch information
charris authored Feb 22, 2018
2 parents 8db6698 + b5ead18 commit 2748d2e
Show file tree
Hide file tree
Showing 4 changed files with 209 additions and 58 deletions.
116 changes: 66 additions & 50 deletions doc/RELEASE_WALKTHROUGH.rst.txt
Original file line number Diff line number Diff line change
Expand Up @@ -11,21 +11,21 @@ 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

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::

Expand All @@ -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.


Expand All @@ -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
Expand All @@ -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
Expand All @@ -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.
63 changes: 63 additions & 0 deletions doc/changelog/1.14.1-changelog.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@

Contributors
============

A total of 14 people contributed to this release. People with a "+" by their
names contributed a patch for the first time.

* Allan Haldane
* Charles Harris
* Daniel Smith
* Dennis Weyland +
* Eric Larson
* Eric Wieser
* Jarrod Millman
* Kenichi Maehashi +
* Marten van Kerkwijk
* Mathieu Lamarre
* Sebastian Berg
* Simon Conseil
* Simon Gibbons
* xoviat

Pull requests merged
====================

A total of 36 pull requests were merged for this release.

* `#10339 <https://github.com/numpy/numpy/pull/10339>`__: BUG: restrict the __config__ modifications to win32
* `#10368 <https://github.com/numpy/numpy/pull/10368>`__: MAINT: Adjust type promotion in linalg.norm
* `#10375 <https://github.com/numpy/numpy/pull/10375>`__: BUG: add missing paren and remove quotes from repr of fieldless...
* `#10395 <https://github.com/numpy/numpy/pull/10395>`__: MAINT: Update download URL in setup.py.
* `#10396 <https://github.com/numpy/numpy/pull/10396>`__: BUG: fix einsum issue with unicode input and py2
* `#10397 <https://github.com/numpy/numpy/pull/10397>`__: BUG: fix error message not formatted in einsum
* `#10398 <https://github.com/numpy/numpy/pull/10398>`__: DOC: add documentation about how to handle new array printing
* `#10403 <https://github.com/numpy/numpy/pull/10403>`__: BUG: Set einsum optimize parameter default to `False`.
* `#10424 <https://github.com/numpy/numpy/pull/10424>`__: ENH: Fix repr of np.record objects to match np.void types #10412
* `#10425 <https://github.com/numpy/numpy/pull/10425>`__: MAINT: Update zesty to artful for i386 testing
* `#10431 <https://github.com/numpy/numpy/pull/10431>`__: REL: Add 1.14.1 release notes template
* `#10435 <https://github.com/numpy/numpy/pull/10435>`__: MAINT: Use ValueError for duplicate field names in lookup (backport)
* `#10534 <https://github.com/numpy/numpy/pull/10534>`__: BUG: Provide a better error message for out-of-order fields
* `#10536 <https://github.com/numpy/numpy/pull/10536>`__: BUG: Resize bytes_ columns in genfromtxt (backport of #10401)
* `#10537 <https://github.com/numpy/numpy/pull/10537>`__: BUG: multifield-indexing adds padding bytes: revert for 1.14.1
* `#10539 <https://github.com/numpy/numpy/pull/10539>`__: BUG: fix np.save issue with python 2.7.5
* `#10540 <https://github.com/numpy/numpy/pull/10540>`__: BUG: Add missing DECREF in Py2 int() cast
* `#10541 <https://github.com/numpy/numpy/pull/10541>`__: TST: Add circleci document testing to maintenance/1.14.x
* `#10542 <https://github.com/numpy/numpy/pull/10542>`__: BUG: complex repr has extra spaces, missing + (1.14 backport)
* `#10550 <https://github.com/numpy/numpy/pull/10550>`__: BUG: Set missing exception after malloc
* `#10557 <https://github.com/numpy/numpy/pull/10557>`__: BUG: In numpy.i, clear CARRAY flag if wrapped buffer is not C_CONTIGUOUS.
* `#10558 <https://github.com/numpy/numpy/pull/10558>`__: DEP: Issue FutureWarning when malformed records detected.
* `#10559 <https://github.com/numpy/numpy/pull/10559>`__: BUG: Fix einsum optimize logic for singleton dimensions
* `#10560 <https://github.com/numpy/numpy/pull/10560>`__: BUG: Fix calling ufuncs with a positional output argument.
* `#10561 <https://github.com/numpy/numpy/pull/10561>`__: BUG: Fix various Big-Endian test failures (ppc64)
* `#10562 <https://github.com/numpy/numpy/pull/10562>`__: BUG: Make dtype.descr error for out-of-order fields.
* `#10563 <https://github.com/numpy/numpy/pull/10563>`__: BUG: arrays not being flattened in `union1d`
* `#10607 <https://github.com/numpy/numpy/pull/10607>`__: MAINT: Update sphinxext submodule hash.
* `#10608 <https://github.com/numpy/numpy/pull/10608>`__: BUG: Revert sort optimization in np.unique.
* `#10609 <https://github.com/numpy/numpy/pull/10609>`__: BUG: infinite recursion in str of 0d subclasses
* `#10610 <https://github.com/numpy/numpy/pull/10610>`__: BUG: Align type definition with generated lapack
* `#10612 <https://github.com/numpy/numpy/pull/10612>`__: BUG/ENH: Improve output for structured non-void types
* `#10622 <https://github.com/numpy/numpy/pull/10622>`__: BUG: deallocate recursive closure in arrayprint.py (1.14 backport)
* `#10624 <https://github.com/numpy/numpy/pull/10624>`__: BUG: Correctly identify comma seperated dtype strings
* `#10629 <https://github.com/numpy/numpy/pull/10629>`__: BUG: deallocate recursive closure in arrayprint.py (backport...
* `#10630 <https://github.com/numpy/numpy/pull/10630>`__: REL: Prepare for 1.14.1 release.
87 changes: 79 additions & 8 deletions doc/release/1.14.1-notes.rst
Original file line number Diff line number Diff line change
Expand Up @@ -2,20 +2,91 @@
NumPy 1.14.1 Release Notes
==========================

This is a bugfix release for some problems found since 1.14.0. This release
includes fixes to the spacing in the str and repr of complex values.
This is a bugfix release for some problems reported following the 1.14.0 release. The major
problems fixed are the following.

The Python versions supported are 2.7 and 3.4 - 3.6. The Python 3.6 wheels
available from PIP are built with Python 3.6.2 and should be compatible with
all previous versions of Python 3.6. It was cythonized with Cython 0.26.1,
which should be free of the bugs found in 0.27 while also being compatible with
Python 3.7-dev.
* Problems with the new array printing, particularly the printing of complex
values, Please report any additional problems that may turn up.
* Problems with ``np.einsum`` due to the new ``optimized=True`` default. Some
fixes for optimization have been applied and ``optimize=False`` is now the
default.
* The sort order in ``np.unique`` when ``axis=<some-number>`` will now always
be lexicographic in the subarray elements. In previous NumPy versions there
was an optimization that could result in sorting the subarrays as unsigned
byte strings.
* The change in 1.14.0 that multi-field indexing of structured arrays returns a
view instead of a copy has been reverted but remains on track for NumPy 1.15.
Affected users should read the 1.14.1 Numpy User Guide section
"basics/structured arrays/accessing multiple fields" for advice on how to
manage this transition.

The Python versions supported in this release are 2.7 and 3.4 - 3.6. The Python
3.6 wheels available from PIP are built with Python 3.6.2 and should be
compatible with all previous versions of Python 3.6. The source releases were
cythonized with Cython 0.26.1, which is known to **not** support the upcoming
Python 3.7 release. People who wish to run Python 3.7 should check out the
NumPy repo and try building with the, as yet, unreleased master branch of
Cython.

Contributors
============

A total of xx people contributed to this release. People with a "+" by their
A total of 14 people contributed to this release. People with a "+" by their
names contributed a patch for the first time.

* Allan Haldane
* Charles Harris
* Daniel Smith
* Dennis Weyland +
* Eric Larson
* Eric Wieser
* Jarrod Millman
* Kenichi Maehashi +
* Marten van Kerkwijk
* Mathieu Lamarre
* Sebastian Berg
* Simon Conseil
* Simon Gibbons
* xoviat

Pull requests merged
====================

A total of 36 pull requests were merged for this release.

* `#10339 <https://github.com/numpy/numpy/pull/10339>`__: BUG: restrict the __config__ modifications to win32
* `#10368 <https://github.com/numpy/numpy/pull/10368>`__: MAINT: Adjust type promotion in linalg.norm
* `#10375 <https://github.com/numpy/numpy/pull/10375>`__: BUG: add missing paren and remove quotes from repr of fieldless...
* `#10395 <https://github.com/numpy/numpy/pull/10395>`__: MAINT: Update download URL in setup.py.
* `#10396 <https://github.com/numpy/numpy/pull/10396>`__: BUG: fix einsum issue with unicode input and py2
* `#10397 <https://github.com/numpy/numpy/pull/10397>`__: BUG: fix error message not formatted in einsum
* `#10398 <https://github.com/numpy/numpy/pull/10398>`__: DOC: add documentation about how to handle new array printing
* `#10403 <https://github.com/numpy/numpy/pull/10403>`__: BUG: Set einsum optimize parameter default to `False`.
* `#10424 <https://github.com/numpy/numpy/pull/10424>`__: ENH: Fix repr of np.record objects to match np.void types #10412
* `#10425 <https://github.com/numpy/numpy/pull/10425>`__: MAINT: Update zesty to artful for i386 testing
* `#10431 <https://github.com/numpy/numpy/pull/10431>`__: REL: Add 1.14.1 release notes template
* `#10435 <https://github.com/numpy/numpy/pull/10435>`__: MAINT: Use ValueError for duplicate field names in lookup (backport)
* `#10534 <https://github.com/numpy/numpy/pull/10534>`__: BUG: Provide a better error message for out-of-order fields
* `#10536 <https://github.com/numpy/numpy/pull/10536>`__: BUG: Resize bytes_ columns in genfromtxt (backport of #10401)
* `#10537 <https://github.com/numpy/numpy/pull/10537>`__: BUG: multifield-indexing adds padding bytes: revert for 1.14.1
* `#10539 <https://github.com/numpy/numpy/pull/10539>`__: BUG: fix np.save issue with python 2.7.5
* `#10540 <https://github.com/numpy/numpy/pull/10540>`__: BUG: Add missing DECREF in Py2 int() cast
* `#10541 <https://github.com/numpy/numpy/pull/10541>`__: TST: Add circleci document testing to maintenance/1.14.x
* `#10542 <https://github.com/numpy/numpy/pull/10542>`__: BUG: complex repr has extra spaces, missing + (1.14 backport)
* `#10550 <https://github.com/numpy/numpy/pull/10550>`__: BUG: Set missing exception after malloc
* `#10557 <https://github.com/numpy/numpy/pull/10557>`__: BUG: In numpy.i, clear CARRAY flag if wrapped buffer is not C_CONTIGUOUS.
* `#10558 <https://github.com/numpy/numpy/pull/10558>`__: DEP: Issue FutureWarning when malformed records detected.
* `#10559 <https://github.com/numpy/numpy/pull/10559>`__: BUG: Fix einsum optimize logic for singleton dimensions
* `#10560 <https://github.com/numpy/numpy/pull/10560>`__: BUG: Fix calling ufuncs with a positional output argument.
* `#10561 <https://github.com/numpy/numpy/pull/10561>`__: BUG: Fix various Big-Endian test failures (ppc64)
* `#10562 <https://github.com/numpy/numpy/pull/10562>`__: BUG: Make dtype.descr error for out-of-order fields.
* `#10563 <https://github.com/numpy/numpy/pull/10563>`__: BUG: arrays not being flattened in `union1d`
* `#10607 <https://github.com/numpy/numpy/pull/10607>`__: MAINT: Update sphinxext submodule hash.
* `#10608 <https://github.com/numpy/numpy/pull/10608>`__: BUG: Revert sort optimization in np.unique.
* `#10609 <https://github.com/numpy/numpy/pull/10609>`__: BUG: infinite recursion in str of 0d subclasses
* `#10610 <https://github.com/numpy/numpy/pull/10610>`__: BUG: Align type definition with generated lapack
* `#10612 <https://github.com/numpy/numpy/pull/10612>`__: BUG/ENH: Improve output for structured non-void types
* `#10622 <https://github.com/numpy/numpy/pull/10622>`__: BUG: deallocate recursive closure in arrayprint.py (1.14 backport)
* `#10624 <https://github.com/numpy/numpy/pull/10624>`__: BUG: Correctly identify comma seperated dtype strings
* `#10629 <https://github.com/numpy/numpy/pull/10629>`__: BUG: deallocate recursive closure in arrayprint.py (backport...
* `#10630 <https://github.com/numpy/numpy/pull/10630>`__: REL: Prepare for 1.14.1 release.
1 change: 1 addition & 0 deletions doc/source/release.rst
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ Release Notes
*************

.. include:: ../release/1.15.0-notes.rst
.. include:: ../release/1.14.1-notes.rst
.. include:: ../release/1.14.0-notes.rst
.. include:: ../release/1.13.3-notes.rst
.. include:: ../release/1.13.2-notes.rst
Expand Down

0 comments on commit 2748d2e

Please sign in to comment.