summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCharles Harris <charlesr.harris@gmail.com>2018-06-07 10:46:05 -0600
committerGitHub <noreply@github.com>2018-06-07 10:46:05 -0600
commit48fd5a0b659af50e0b6fa68d73a8dad504df4ea0 (patch)
tree2d8589daaeef0659913e3d422f6e09d9566dcb5d
parent9a4d75dce2442b81859152048c299c57e6610667 (diff)
parentafb3dd86a9f248321013fda561bd47c67ae22c42 (diff)
downloadnumpy-48fd5a0b659af50e0b6fa68d73a8dad504df4ea0.tar.gz
Merge pull request #11263 from charris/update-after-1.14.4
DOC: Update master after NumPy 1.14.4 release.
-rw-r--r--doc/RELEASE_WALKTHROUGH.rst.txt96
-rw-r--r--doc/changelog/1.14.4-changelog.rst31
-rw-r--r--doc/release/1.14.4-notes.rst60
-rw-r--r--doc/source/release.rst2
-rw-r--r--pavement.py4
5 files changed, 142 insertions, 51 deletions
diff --git a/doc/RELEASE_WALKTHROUGH.rst.txt b/doc/RELEASE_WALKTHROUGH.rst.txt
index 91c5954bc..ad14c16c1 100644
--- a/doc/RELEASE_WALKTHROUGH.rst.txt
+++ b/doc/RELEASE_WALKTHROUGH.rst.txt
@@ -1,6 +1,6 @@
-This file contains a walkthrough of the NumPy 1.14.3 release on Linux.
+This file contains a walkthrough of the NumPy 1.14.4 release on Linux.
The commands can be copied into the command line, but be sure to
-replace 1.14.3 by the correct version.
+replace 1.14.4 by the correct version.
Release Walkthrough
====================
@@ -8,16 +8,16 @@ Release Walkthrough
Update Release documentation
----------------------------
-The file ``doc/changelog/1.14.3-changelog.rst`` should be updated to reflect
+The file ``doc/changelog/1.14.4-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.2..maintenance/1.14.x > doc/changelog/1.14.3-changelog.rst
+ $ python tools/changelog.py $GITHUB v1.14.3..maintenance/1.14.x > doc/changelog/1.14.4-changelog.rst
-where ``GITHUB`` contains your github access token. This text should also be
-appended to ``doc/release/1.14.3-notes.rst`` for release updates, though not
-for new releases like ``1.14.0`` to keep those notes short. The file
-``doc/source/release.rst`` should also be updated with a link to the new
-release notes.
+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
+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.
Prepare the release commit
--------------------------
@@ -33,7 +33,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.3 release."
+ $ git commit -a -m"REL: NumPy 1.14.4 release."
Sanity check::
@@ -47,6 +47,15 @@ requires write permission to the numpy repository::
As an example, see the 1.14.3 REL commit: `<https://github.com/numpy/numpy/commit/73299826729be58cec179b52c656adfcaefada93>`_.
+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.
+
+ $ paver sdist # sdist will do a git clean -xdf, so we omit that
+
Build wheels
------------
@@ -58,11 +67,11 @@ may have been accessed and changed by someone else and a push will 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.3 release
+ $ git checkout v1.14.x # v1.14.x already existed for the 1.14.4 release
-Edit the ``.travis.yml`` and ``appveyor.yml`` files to make sure they have the
+Edit the ``.travis.yml`` and ``.appveyor.yml`` files to make sure they have the
correct version, and put in the commit hash for the ``REL`` commit created
-above for ``BUILD_COMMIT``. See `<https://github.com/MacPython/numpy-wheels/commit/fed9c04629c155e7804282eb803d81097244598d>`_ for an example::
+above for ``BUILD_COMMIT``, see the _example from `v1.14.3`::
$ gvim .travis.yml appveyor.yml
$ git commit -a
@@ -74,11 +83,15 @@ 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.
+Note that sometimes builds, like tests, fail for unrelated reasons and you will
+need to restart them.
+
+.. example_: https://github.com/MacPython/numpy-wheels/commit/fed9c04629c155e7804282eb803d81097244598d
Download wheels
---------------
-When the wheels have all been built, download them using the ``wheel-uploader``
+When the wheels have all been successfully 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
@@ -89,12 +102,13 @@ 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.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
+ $ ./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
If you do this often, consider making CDN_URL and NPY_WHLS part of your default
-environment.
+environment. Note that we need local copies of the files in order to generate
+hashes to include in the README files generated later.
Tag the release
---------------
@@ -103,8 +117,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.3
- $ paver sdist # sdist will do a git clean -xdf, so we omit that
+ $ git tag -s v1.14.4
You should upload your public gpg key to github, so that the tag will appear
"verified" there.
@@ -112,7 +125,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.3
+ $ git push upstream v1.14.4
We wait until this point to push the tag because it is very difficult to change
the tag after it has been pushed.
@@ -129,27 +142,17 @@ Add another ``REL`` commit to the numpy maintenance branch, which resets the
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. It was acheived in two
-commits:
-`<https://github.com/numpy/numpy/commit/b8df705bdcce92d3e2c6f050eb4414192cf0df04>`_
-`<https://github.com/numpy/numpy/commit/29e175269624493114f77cceff93486271f9efff>`_.
+has more strict requirements for the version number.
Upload to PyPI
--------------
-Upload to PyPI using ``twine``.
-
-In the past, we signed the wheels files, but after 1.14.3 wheels should no
-longer support or need signing. The instructions below still sign.
-
-For the 1.14.3 release we signed every file when it was uploaded. On systems
-which do not cache the gpg passphrase for a few minutes, keeping the it in the
-clipboard and pasting it in will make that easier. We may chose to forgo the
-signing in the future::
+Upload to PyPI using ``twine``. A recent version of ``twine`` of is needed
+after recent PyPI changes, version ``1.11.0`` was used here. ::
$ cd ../numpy
- $ twine upload -s release/installers/*.whl
- $ twine upload -s release/installers/numpy-1.14.1.zip # Upload last.
+ $ twine upload release/installers/*.whl
+ $ twine upload release/installers/numpy-1.14.4.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
@@ -158,27 +161,22 @@ 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 stable release is visible.
-
-
Upload files to github
----------------------
-Generate the ``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.14.3
+Go to `<https://github.com/numpy/numpy/releases>`_, there should be a ``v1.14.4
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.3.tar.gz`` as a binary file.
-- Upload ``release/installers/numpy-1.14.3.zip`` as a binary file.
-- Upload ``release/README`` as a binary file.
-- Upload ``doc/changelog/1.14.3-changelog.rst`` as a binary file.
+- 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/README.rst`` as a binary file.
+- Upload ``doc/changelog/1.14.4-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.
@@ -193,7 +191,7 @@ upload the documentation. Otherwise::
$ pushd doc
$ make dist
- $ make upload USERNAME=<yourname> RELEASE=v1.14.3
+ $ make upload USERNAME=<yourname> RELEASE=v1.14.4
$ popd
If the release series is a new one, you will need to rebuild and upload the
@@ -214,7 +212,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.3
+ $ git checkout -b numpy-1.14.4
$ gvim www/index.rst # edit the News section
$ git commit -a
$ git push origin HEAD
diff --git a/doc/changelog/1.14.4-changelog.rst b/doc/changelog/1.14.4-changelog.rst
new file mode 100644
index 000000000..0bda55cf1
--- /dev/null
+++ b/doc/changelog/1.14.4-changelog.rst
@@ -0,0 +1,31 @@
+
+Contributors
+============
+
+A total of 7 people contributed to this release. People with a "+" by their
+names contributed a patch for the first time.
+
+* Allan Haldane
+* Charles Harris
+* Marten van Kerkwijk
+* Matti Picus
+* Pauli Virtanen
+* Ryan Soklaski +
+* Sebastian Berg
+
+Pull requests merged
+====================
+
+A total of 11 pull requests were merged for this release.
+
+* `#11104 <https://github.com/numpy/numpy/pull/11104>`__: BUG: str of DOUBLE_DOUBLE format wrong on ppc64
+* `#11170 <https://github.com/numpy/numpy/pull/11170>`__: TST: linalg: add regression test for gh-8577
+* `#11174 <https://github.com/numpy/numpy/pull/11174>`__: MAINT: add sanity-checks to be run at import time
+* `#11181 <https://github.com/numpy/numpy/pull/11181>`__: BUG: void dtype setup checked offset not actual pointer for alignment
+* `#11194 <https://github.com/numpy/numpy/pull/11194>`__: BUG: Python2 doubles don't print correctly in interactive shell.
+* `#11198 <https://github.com/numpy/numpy/pull/11198>`__: BUG: optimizing compilers can reorder call to npy_get_floatstatus
+* `#11199 <https://github.com/numpy/numpy/pull/11199>`__: BUG: reduce using SSE only warns if inside SSE loop
+* `#11203 <https://github.com/numpy/numpy/pull/11203>`__: BUG: Bytes delimiter/comments in genfromtxt should be decoded
+* `#11211 <https://github.com/numpy/numpy/pull/11211>`__: BUG: Fix reference count/memory leak exposed by better testing
+* `#11219 <https://github.com/numpy/numpy/pull/11219>`__: BUG: Fixes einsum broadcasting bug when optimize=True
+* `#11251 <https://github.com/numpy/numpy/pull/11251>`__: DOC: Document 1.14.4 release.
diff --git a/doc/release/1.14.4-notes.rst b/doc/release/1.14.4-notes.rst
new file mode 100644
index 000000000..174094c1c
--- /dev/null
+++ b/doc/release/1.14.4-notes.rst
@@ -0,0 +1,60 @@
+==========================
+NumPy 1.14.4 Release Notes
+==========================
+
+This is a bugfix release for bugs reported following the 1.14.3 release. The
+most significant fixes are:
+
+* fixes for compiler instruction reordering that resulted in NaN's not being
+ properly propagated in `np.max` and `np.min`,
+
+* fixes for bus faults on SPARC and older ARM due to incorrect alignment
+ checks.
+
+There are also improvements to printing of long doubles on PPC platforms. All
+is not yet perfect on that platform, the whitespace padding is still incorrect
+and is to be fixed in numpy 1.15, consequently NumPy still fails some
+printing-related (and other) unit tests on ppc systems. However, the printed
+values are now correct.
+
+Note that NumPy will error on import if it detects incorrect float32 `dot`
+results. This problem has been seen on the Mac when working in the Anaconda
+enviroment and is due to a subtle interaction between MKL and PyQt5. It is not
+strictly a NumPy problem, but it is best that users be aware of it. See the
+gh-8577 NumPy issue for more information.
+
+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.28.2 and should work for the upcoming Python 3.7.
+
+Contributors
+============
+
+A total of 7 people contributed to this release. People with a "+" by their
+names contributed a patch for the first time.
+
+* Allan Haldane
+* Charles Harris
+* Marten van Kerkwijk
+* Matti Picus
+* Pauli Virtanen
+* Ryan Soklaski +
+* Sebastian Berg
+
+Pull requests merged
+====================
+
+A total of 11 pull requests were merged for this release.
+
+* `#11104 <https://github.com/numpy/numpy/pull/11104>`__: BUG: str of DOUBLE_DOUBLE format wrong on ppc64
+* `#11170 <https://github.com/numpy/numpy/pull/11170>`__: TST: linalg: add regression test for gh-8577
+* `#11174 <https://github.com/numpy/numpy/pull/11174>`__: MAINT: add sanity-checks to be run at import time
+* `#11181 <https://github.com/numpy/numpy/pull/11181>`__: BUG: void dtype setup checked offset not actual pointer for alignment
+* `#11194 <https://github.com/numpy/numpy/pull/11194>`__: BUG: Python2 doubles don't print correctly in interactive shell.
+* `#11198 <https://github.com/numpy/numpy/pull/11198>`__: BUG: optimizing compilers can reorder call to npy_get_floatstatus
+* `#11199 <https://github.com/numpy/numpy/pull/11199>`__: BUG: reduce using SSE only warns if inside SSE loop
+* `#11203 <https://github.com/numpy/numpy/pull/11203>`__: BUG: Bytes delimiter/comments in genfromtxt should be decoded
+* `#11211 <https://github.com/numpy/numpy/pull/11211>`__: BUG: Fix reference count/memory leak exposed by better testing
+* `#11219 <https://github.com/numpy/numpy/pull/11219>`__: BUG: Fixes einsum broadcasting bug when optimize=True
+* `#11251 <https://github.com/numpy/numpy/pull/11251>`__: DOC: Document 1.14.4 release.
diff --git a/doc/source/release.rst b/doc/source/release.rst
index 224436b82..913db1fab 100644
--- a/doc/source/release.rst
+++ b/doc/source/release.rst
@@ -3,6 +3,8 @@ Release Notes
*************
.. include:: ../release/1.15.0-notes.rst
+.. include:: ../release/1.14.4-notes.rst
+.. include:: ../release/1.14.3-notes.rst
.. include:: ../release/1.14.2-notes.rst
.. include:: ../release/1.14.1-notes.rst
.. include:: ../release/1.14.0-notes.rst
diff --git a/pavement.py b/pavement.py
index 0065c142b..3484e8029 100644
--- a/pavement.py
+++ b/pavement.py
@@ -571,14 +571,14 @@ def compute_md5(idirs):
return _compute_hash(idirs, hashlib.md5)
def compute_sha256(idirs):
- # better checksum so gpg signed README.txt containing the sums can be used
+ # better checksum so gpg signed README.rst containing the sums can be used
# to verify the binaries instead of signing all binaries
return _compute_hash(idirs, hashlib.sha256)
def write_release_task(options, filename='README'):
idirs = options.installers.installersdir
source = paver.path.path(RELEASE_NOTES)
- target = paver.path.path(filename)
+ target = paver.path.path(filename + '.rst')
if target.exists():
target.remove()