summaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
authorCharles Harris <charlesr.harris@gmail.com>2020-11-27 07:55:36 -0700
committerCharles Harris <charlesr.harris@gmail.com>2020-11-27 08:12:20 -0700
commita37b3a82f1abc3e73287883acfd2b06f88a09f13 (patch)
tree20cc1acf844546c4fa72aa8dfe11c78a504bc2af /doc
parent4635c9966f9f9a1bbb775fafc4096fddee8160dd (diff)
downloadnumpy-a37b3a82f1abc3e73287883acfd2b06f88a09f13.tar.gz
MAINT: Update master after 1.20.x branch.v1.21.0.dev0
- Update setup.py - Update pavement.py - Add 1.21.0-note.rst - Update npyconfig.h - Clear release/upcoming_changes
Diffstat (limited to 'doc')
-rw-r--r--doc/release/upcoming_changes/13516.performance.rst47
-rw-r--r--doc/release/upcoming_changes/14882.deprecation.rst30
-rw-r--r--doc/release/upcoming_changes/15121.new_function.rst6
-rw-r--r--doc/release/upcoming_changes/15666.improvement.rst8
-rw-r--r--doc/release/upcoming_changes/15759.improvement.rst4
-rw-r--r--doc/release/upcoming_changes/15852.new_feature.rst24
-rw-r--r--doc/release/upcoming_changes/15886.deprecation.rst7
-rw-r--r--doc/release/upcoming_changes/15900.deprecation.rst16
-rw-r--r--doc/release/upcoming_changes/15997.improvement.rst12
-rw-r--r--doc/release/upcoming_changes/16056.deprecation.rst13
-rw-r--r--doc/release/upcoming_changes/16134.compatibility.rst8
-rw-r--r--doc/release/upcoming_changes/16134.improvement.rst6
-rw-r--r--doc/release/upcoming_changes/16156.deprecation.rst5
-rw-r--r--doc/release/upcoming_changes/16161.change.rst44
-rw-r--r--doc/release/upcoming_changes/16200.compatibility.rst76
-rw-r--r--doc/release/upcoming_changes/16232.deprecation.rst6
-rw-r--r--doc/release/upcoming_changes/16350.compatibility.rst8
-rw-r--r--doc/release/upcoming_changes/16476.new_feature.rst9
-rw-r--r--doc/release/upcoming_changes/16515.new_feature.rst8
-rw-r--r--doc/release/upcoming_changes/16519.improvement.rst4
-rw-r--r--doc/release/upcoming_changes/16554.compatibility.rst10
-rw-r--r--doc/release/upcoming_changes/16554.deprecation.rst8
-rw-r--r--doc/release/upcoming_changes/16554.expired.rst5
-rw-r--r--doc/release/upcoming_changes/16558.new_feature.rst9
-rw-r--r--doc/release/upcoming_changes/16570.compatibility.rst4
-rw-r--r--doc/release/upcoming_changes/16589.compatibility.rst8
-rw-r--r--doc/release/upcoming_changes/16592.compatibility.rst13
-rw-r--r--doc/release/upcoming_changes/16594.new_feature.rst4
-rw-r--r--doc/release/upcoming_changes/16650.compatibility.rst16
-rw-r--r--doc/release/upcoming_changes/16675.improvement.rst4
-rw-r--r--doc/release/upcoming_changes/16710.improvement.rst3
-rw-r--r--doc/release/upcoming_changes/16730.improvement.rst9
-rw-r--r--doc/release/upcoming_changes/16815.compatibility.rst8
-rw-r--r--doc/release/upcoming_changes/16841.change.rst19
-rw-r--r--doc/release/upcoming_changes/16938.c_api.rst19
-rw-r--r--doc/release/upcoming_changes/16986.improvement.rst7
-rw-r--r--doc/release/upcoming_changes/17010.compatibility.rst24
-rw-r--r--doc/release/upcoming_changes/17029.compatibility.rst14
-rw-r--r--doc/release/upcoming_changes/17067.expired.rst8
-rw-r--r--doc/release/upcoming_changes/17068.compatibility.rst4
-rw-r--r--doc/release/upcoming_changes/17116.expired.rst2
-rw-r--r--doc/release/upcoming_changes/17123.new_feature.rst12
-rw-r--r--doc/release/upcoming_changes/17195.improvement.rst5
-rw-r--r--doc/release/upcoming_changes/17219.new_feature.rst12
-rw-r--r--doc/release/upcoming_changes/17233.deprecation.rst4
-rw-r--r--doc/release/upcoming_changes/17241.compatibility.rst6
-rw-r--r--doc/release/upcoming_changes/17284.new_feature.rst6
-rw-r--r--doc/release/upcoming_changes/17344.new_feature.rst3
-rw-r--r--doc/release/upcoming_changes/17394.new_function.rst6
-rw-r--r--doc/release/upcoming_changes/17456.new_feature.rst5
-rw-r--r--doc/release/upcoming_changes/17535.new_function.rst15
-rw-r--r--doc/release/upcoming_changes/17577.compatibility.rst6
-rw-r--r--doc/release/upcoming_changes/17580.compatibility.rst4
-rw-r--r--doc/release/upcoming_changes/17596.future.rst30
-rw-r--r--doc/release/upcoming_changes/17706.compatibility.rst10
-rw-r--r--doc/source/release.rst1
-rw-r--r--doc/source/release/1.21.0-notes.rst6
57 files changed, 7 insertions, 663 deletions
diff --git a/doc/release/upcoming_changes/13516.performance.rst b/doc/release/upcoming_changes/13516.performance.rst
deleted file mode 100644
index 1b32b61d7..000000000
--- a/doc/release/upcoming_changes/13516.performance.rst
+++ /dev/null
@@ -1,47 +0,0 @@
-Enable multi-platform SIMD compiler optimizations
--------------------------------------------------
-
-A series of improvements for NumPy infrastructure to pave the way to
-**NEP-38**, that can be summarized as follow:
-
-- **New Build Arguments** :
-
- - ``--cpu-baseline`` to specify the minimal set of required
- optimizations, default value is ``min`` which provides the minimum
- CPU features that can safely run on a wide range of users
- platforms.
-
- - ``--cpu-dispatch`` to specify the dispatched set of additional
- optimizations, default value is ``max -xop -fma4`` which enables
- all CPU features, except for AMD legacy features.
-
- - ``--disable-optimization`` to explicitly disable the whole new
- improvements, It also adds a new **C** compiler #definition
- called ``NPY_DISABLE_OPTIMIZATION`` which it can be used as
- guard for any SIMD code.
-
-- **Advanced CPU dispatcher**: A flexible cross-architecture CPU dispatcher built
- on the top of Python/Numpy distutils, support all common compilers with a wide range of CPU features.
-
- The new dispatcher requires a special file extension ``*.dispatch.c`` to mark the dispatch-able
- **C** sources. These sources have the ability to be compiled multiple times so that each compilation process
- represents certain CPU features and provides different #definitions and flags that affect the code paths.
-
-- **New auto-generated C header ``core/src/common/_cpu_dispatch.h``**
- This header is generated by the distutils module 'ccompiler_opt', and contains all the #definitions
- and headers of instruction sets, that had been configured through command arguments '--cpu-baseline' and '--cpu-dispatch'.
-
-- **New C header ``core/src/common/npy_cpu_dispatch.h``**
-
- This header contains all utilities that required for the whole CPU dispatching process,
- it also can be considered as a bridge linking the new infrastructure work with NumPy CPU runtime detection.
-
-- **Add new attributes to NumPy umath module(Python level)**
-
- - ``__cpu_baseline__`` a list contains the minimal set of required optimizations that supported
- by the compiler and platform according to the specified values to command argument '--cpu-baseline'.
-
- - ``__cpu_dispatch__`` a list contains the dispatched set of additional optimizations that supported by the compiler
- and platform according to the specified values to command argument '--cpu-dispatch'.
-
-- **Print the supported CPU features during the run of PytestTester**
diff --git a/doc/release/upcoming_changes/14882.deprecation.rst b/doc/release/upcoming_changes/14882.deprecation.rst
deleted file mode 100644
index db3b39d4c..000000000
--- a/doc/release/upcoming_changes/14882.deprecation.rst
+++ /dev/null
@@ -1,30 +0,0 @@
-Using the aliases of builtin types like ``np.int`` is deprecated
-----------------------------------------------------------------
-
-For a long time, ``np.int`` has been an alias of the builtin ``int``. This is
-repeatedly a cause of confusion for newcomers, and is also simply not useful.
-
-These aliases have been deprecated. The table below shows the full list of
-deprecated aliases, along with their exact meaning. Replacing uses of items in
-the first column with the contents of the second column will work identically
-and silence the deprecation warning.
-
-In many cases, it may have been intended to use the types from the third column.
-Be aware that use of these types may result in subtle but desirable behavior
-changes.
-
-================== ================================= ==================================================================
-Deprecated name Identical to Possibly intended numpy type
-================== ================================= ==================================================================
-``numpy.bool`` ``bool`` `numpy.bool_`
-``numpy.int`` ``int`` `numpy.int_` (default int dtype), `numpy.cint` (C ``int``)
-``numpy.float`` ``float`` `numpy.float_`, `numpy.double` (equivalent)
-``numpy.complex`` ``complex`` `numpy.complex_`, `numpy.cdouble` (equivalent)
-``numpy.object`` ``object`` `numpy.object_`
-``numpy.str`` ``str`` `numpy.str_`
-``numpy.long`` ``int`` (``long`` on Python 2) `numpy.int_` (C ``long``), `numpy.longlong` (largest integer type)
-``numpy.unicode`` ``str`` (``unicode`` on Python 2) `numpy.unicode_`
-================== ================================= ==================================================================
-
-Note that for technical reasons these deprecation warnings will only be emitted
-on Python 3.7 and above.
diff --git a/doc/release/upcoming_changes/15121.new_function.rst b/doc/release/upcoming_changes/15121.new_function.rst
deleted file mode 100644
index 004fec1b0..000000000
--- a/doc/release/upcoming_changes/15121.new_function.rst
+++ /dev/null
@@ -1,6 +0,0 @@
-The random.Generator class has a new ``permuted`` function.
------------------------------------------------------------
-The new function differs from ``shuffle`` and ``permutation`` in that the
-subarrays indexed by an axis are permuted rather than the axis being treated as
-a separate 1-D array for every combination of the other indexes. For example,
-it is now possible to permute the rows or columns of a 2-D array.
diff --git a/doc/release/upcoming_changes/15666.improvement.rst b/doc/release/upcoming_changes/15666.improvement.rst
deleted file mode 100644
index c42d70952..000000000
--- a/doc/release/upcoming_changes/15666.improvement.rst
+++ /dev/null
@@ -1,8 +0,0 @@
-Improved string representation for polynomials (__str__)
---------------------------------------------------------
-
-The string representation (``__str__``) of all six polynomial types in
-`numpy.polynomial` has been updated to give the polynomial as a mathematical
-expression instead of an array of coefficients. Two package-wide formats for
-the polynomial expressions are available - one using Unicode characters for
-superscripts and subscripts, and another using only ASCII characters.
diff --git a/doc/release/upcoming_changes/15759.improvement.rst b/doc/release/upcoming_changes/15759.improvement.rst
deleted file mode 100644
index 0a1b255f7..000000000
--- a/doc/release/upcoming_changes/15759.improvement.rst
+++ /dev/null
@@ -1,4 +0,0 @@
-Remove the Accelerate library as a candidate LAPACK library
------------------------------------------------------------
-Apple no longer supports Accelerate. Remove it.
-
diff --git a/doc/release/upcoming_changes/15852.new_feature.rst b/doc/release/upcoming_changes/15852.new_feature.rst
deleted file mode 100644
index 12965e57b..000000000
--- a/doc/release/upcoming_changes/15852.new_feature.rst
+++ /dev/null
@@ -1,24 +0,0 @@
-``where`` keyword argument for ``numpy.all`` and ``numpy.any`` functions
-------------------------------------------------------------------------
-The keyword argument ``where`` is added and allows to only consider specified
-elements or subaxes from an array in the Boolean evaluation of ``all`` and
-``any``. This new keyword is available to the functions ``all`` and ``any``
-both via ``numpy`` directly or in the methods of ``numpy.ndarray``.
-
-Any broadcastable Boolean array or a scalar can be set as ``where``. It
-defaults to ``True`` to evaluate the functions for all elements in an array if
-``where`` is not set by the user. Examples are given in the documentation of
-the functions.
-
-
-``where`` keyword argument for ``numpy`` functions ``mean``, ``std``, ``var``
------------------------------------------------------------------------------
-The keyword argument ``where`` is added and allows to limit the scope in the
-caluclation of ``mean``, ``std`` and ``var`` to only a subset of elements. It
-is available both via ``numpy`` directly or in the methods of
-``numpy.ndarray``.
-
-Any broadcastable Boolean array or a scalar can be set as ``where``. It
-defaults to ``True`` to evaluate the functions for all elements in an array if
-``where`` is not set by the user. Examples are given in the documentation of
-the functions.
diff --git a/doc/release/upcoming_changes/15886.deprecation.rst b/doc/release/upcoming_changes/15886.deprecation.rst
deleted file mode 100644
index 050817e66..000000000
--- a/doc/release/upcoming_changes/15886.deprecation.rst
+++ /dev/null
@@ -1,7 +0,0 @@
-Passing ``shape=None`` to functions with a non-optional shape argument is deprecated
-------------------------------------------------------------------------------------
-Previously, this was an alias for passing ``shape=()``.
-This deprecation is emitted by `PyArray_IntpConverter` in the C API. If your
-API is intended to support passing `None`, then you should check for `None`
-prior to invoking the converter, so as to be able to distinguish `None` and
-``()``.
diff --git a/doc/release/upcoming_changes/15900.deprecation.rst b/doc/release/upcoming_changes/15900.deprecation.rst
deleted file mode 100644
index 22be711d0..000000000
--- a/doc/release/upcoming_changes/15900.deprecation.rst
+++ /dev/null
@@ -1,16 +0,0 @@
-Indexing errors will be reported even when index result is empty
-----------------------------------------------------------------
-In the future, NumPy will raise an IndexError when an
-integer array index contains out of bound values even if a non-indexed
-dimension is of length 0. This will now emit a DeprecationWarning.
-This can happen when the array is previously empty, or an empty
-slice is involved::
-
- arr1 = np.zeros((5, 0))
- arr1[[20]]
- arr2 = np.zeros((5, 5))
- arr2[[20], :0]
-
-Previously the non-empty index ``[20]`` was not checked for correctness.
-It will now be checked causing a deprecation warning which will be turned
-into an error. This also applies to assignments.
diff --git a/doc/release/upcoming_changes/15997.improvement.rst b/doc/release/upcoming_changes/15997.improvement.rst
deleted file mode 100644
index 9b5feacb8..000000000
--- a/doc/release/upcoming_changes/15997.improvement.rst
+++ /dev/null
@@ -1,12 +0,0 @@
-Object arrays containing multi-line objects have a more readable ``repr``
--------------------------------------------------------------------------
-If elements of an object array have a ``repr`` containing new lines, then the
-wrapped lines will be aligned by column. Notably, this improves the ``repr`` of
-nested arrays::
-
- >>> np.array([np.eye(2), np.eye(3)], dtype=object)
- array([array([[1., 0.],
- [0., 1.]]),
- array([[1., 0., 0.],
- [0., 1., 0.],
- [0., 0., 1.]])], dtype=object)
diff --git a/doc/release/upcoming_changes/16056.deprecation.rst b/doc/release/upcoming_changes/16056.deprecation.rst
deleted file mode 100644
index bd57cd226..000000000
--- a/doc/release/upcoming_changes/16056.deprecation.rst
+++ /dev/null
@@ -1,13 +0,0 @@
-Inexact matches for mode and searchside are deprecated
-------------------------------------------------------
-Inexact and case insensitive matches for mode and searchside were
-valid inputs earlier and will give a DeprecationWarning now.
-For example, below are some example usages which are now deprecated and will
-give a DeprecationWarning::
-
- import numpy as np
- arr = np.array([[3, 6, 6], [4, 5, 1]])
- # mode: inexact match
- np.ravel_multi_index(arr, (7, 6), mode="clap") # should be "clip"
- # searchside: inexact match
- np.searchsorted(arr[0], 4, side='random') # should be "right"
diff --git a/doc/release/upcoming_changes/16134.compatibility.rst b/doc/release/upcoming_changes/16134.compatibility.rst
deleted file mode 100644
index 6ef1c8992..000000000
--- a/doc/release/upcoming_changes/16134.compatibility.rst
+++ /dev/null
@@ -1,8 +0,0 @@
-Same kind casting in concatenate with ``axis=None``
----------------------------------------------------
-When `~numpy.concatenate` is called with ``axis=None``,
-the flattened arrays were cast with ``unsafe``. Any other axis
-choice uses "same kind". That different default
-has been deprecated and "same kind" casting will be used
-instead. The new ``casting`` keyword argument
-can be used to retain the old behaviour.
diff --git a/doc/release/upcoming_changes/16134.improvement.rst b/doc/release/upcoming_changes/16134.improvement.rst
deleted file mode 100644
index 0699f44bd..000000000
--- a/doc/release/upcoming_changes/16134.improvement.rst
+++ /dev/null
@@ -1,6 +0,0 @@
-Concatenate supports providing an output dtype
-----------------------------------------------
-Support was added to `~numpy.concatenate` to provide
-an output ``dtype`` and ``casting`` using keyword
-arguments. The ``dtype`` argument cannot be provided
-in conjunction with the ``out`` one.
diff --git a/doc/release/upcoming_changes/16156.deprecation.rst b/doc/release/upcoming_changes/16156.deprecation.rst
deleted file mode 100644
index 153cc4428..000000000
--- a/doc/release/upcoming_changes/16156.deprecation.rst
+++ /dev/null
@@ -1,5 +0,0 @@
-Deprecation of `numpy.dual`
----------------------------
-The module `numpy.dual` is deprecated. Instead of importing functions
-from `numpy.dual`, the functions should be imported directly from NumPy
-or SciPy.
diff --git a/doc/release/upcoming_changes/16161.change.rst b/doc/release/upcoming_changes/16161.change.rst
deleted file mode 100644
index 7eafdfda0..000000000
--- a/doc/release/upcoming_changes/16161.change.rst
+++ /dev/null
@@ -1,44 +0,0 @@
-Changed behavior of ``divmod(1., 0.)`` and related functions
-------------------------------------------------------------
-The changes also assure that different compiler versions have the same behavior
-for nan or inf usages in these operations. This was previously compiler
-dependent, we now force the invalid and divide by zero flags, making the
-results the same across compilers. For example, gcc-5, gcc-8, or gcc-9 now
-result in the same behavior. The changes are tabulated below:
-
-.. list-table:: Summary of New Behavior
- :widths: auto
- :header-rows: 1
-
- * - Operator
- - Old Warning
- - New Warning
- - Old Result
- - New Result
- - Works on MacOS
- * - np.divmod(1.0, 0.0)
- - Invalid
- - Invalid and Dividebyzero
- - nan, nan
- - inf, nan
- - Yes
- * - np.fmod(1.0, 0.0)
- - Invalid
- - Invalid
- - nan
- - nan
- - No? Yes
- * - np.floor_divide(1.0, 0.0)
- - Invalid
- - Dividebyzero
- - nan
- - inf
- - Yes
- * - np.remainder(1.0, 0.0)
- - Invalid
- - Invalid
- - nan
- - nan
- - Yes
-
-
diff --git a/doc/release/upcoming_changes/16200.compatibility.rst b/doc/release/upcoming_changes/16200.compatibility.rst
deleted file mode 100644
index 42c423eef..000000000
--- a/doc/release/upcoming_changes/16200.compatibility.rst
+++ /dev/null
@@ -1,76 +0,0 @@
-NumPy Scalars are cast when assigned to arrays
-----------------------------------------------
-
-When creating or assigning to arrays, in all relevant cases NumPy
-scalars will now be cast identically to NumPy arrays. In particular
-this changes the behaviour in some cases which previously raised an
-error::
-
- np.array([np.float64(np.nan)], dtype=np.int64)
-
-will succeed and return an undefined result (usually the smallest possible
-integer). This also affects assignments::
-
- arr[0] = np.float64(np.nan)
-
-At this time, NumPy retains the behaviour for::
-
- np.array(np.float64(np.nan), dtype=np.int64)
-
-The above changes do not affect Python scalars::
-
- np.array([float("NaN")], dtype=np.int64)
-
-remains unaffected (``np.nan`` is a Python ``float``, not a NumPy one).
-Unlike signed integers, unsigned integers do not retain this special case,
-since they always behaved more like casting.
-The following code stops raising an error::
-
- np.array([np.float64(np.nan)], dtype=np.uint64)
-
-To avoid backward compatibility issues, at this time assignment from
-``datetime64`` scalar to strings of too short length remains supported.
-This means that ``np.asarray(np.datetime64("2020-10-10"), dtype="S5")``
-succeeds now, when it failed before. In the long term this may be
-deprecated or the unsafe cast may be allowed generally to make assignment
-of arrays and scalars behave consistently.
-
-
-Array coercion changes when Strings and other types are mixed
--------------------------------------------------------------
-
-When stringss and other types are mixed, such as::
-
- np.array(["string", np.float64(3.)], dtype="S")
-
-The results will change, which may lead to string dtypes with longer strings
-in some cases. In particularly, if ``dtype="S"`` is not provided any numerical
-value will lead to a string results long enough to hold all possible numerical
-values. (e.g. "S32" for floats). Note that you should always provide
-``dtype="S"`` when converting non-strings to strings.
-
-If ``dtype="S"`` is provided the results will be largely identical to before,
-but NumPy scalars (not a Python float like ``1.0``), will still enforce
-a uniform string length::
-
- np.array([np.float64(3.)], dtype="S") # gives "S32"
- np.array([3.0], dtype="S") # gives "S3"
-
-while previously the first version gave the same result as the second.
-
-
-Array coercion restructure
---------------------------
-
-Array coercion has been restructured. In general, this should not affect
-users. In extremely rare corner cases where array-likes are nested::
-
- np.array([array_like1])
-
-things will now be more consistent with::
-
- np.array([np.array(array_like1)])
-
-which could potentially change output subtly for badly defined array-likes.
-We are not aware of any such case where the results were not clearly
-incorrect previously.
diff --git a/doc/release/upcoming_changes/16232.deprecation.rst b/doc/release/upcoming_changes/16232.deprecation.rst
deleted file mode 100644
index d1ac7f044..000000000
--- a/doc/release/upcoming_changes/16232.deprecation.rst
+++ /dev/null
@@ -1,6 +0,0 @@
-``outer`` and ``ufunc.outer`` deprecated for matrix
----------------------------------------------------
-``np.matrix`` use with `~numpy.outer` or generic ufunc outer
-calls such as ``numpy.add.outer``. Previously, matrix was
-converted to an array here. This will not be done in the future
-requiring a manual conversion to arrays.
diff --git a/doc/release/upcoming_changes/16350.compatibility.rst b/doc/release/upcoming_changes/16350.compatibility.rst
deleted file mode 100644
index 67673a6b1..000000000
--- a/doc/release/upcoming_changes/16350.compatibility.rst
+++ /dev/null
@@ -1,8 +0,0 @@
-Writing to the result of `numpy.broadcast_arrays` will export readonly buffers
-------------------------------------------------------------------------------
-
-In NumPy 1.17 `numpy.broadcast_arrays` started warning when the resulting array
-was written to. This warning was skipped when the array was used through the
-buffer interface (e.g. ``memoryview(arr)``). The same thing will now occur for the
-two protocols ``__array_interface__``, and ``__array_struct__`` returning read-only
-buffers instead of giving a warning. \ No newline at end of file
diff --git a/doc/release/upcoming_changes/16476.new_feature.rst b/doc/release/upcoming_changes/16476.new_feature.rst
deleted file mode 100644
index acfe0bd72..000000000
--- a/doc/release/upcoming_changes/16476.new_feature.rst
+++ /dev/null
@@ -1,9 +0,0 @@
-``norm=backward``, ``forward`` keyword options for ``numpy.fft`` functions
---------------------------------------------------------------------------
-The keyword argument option ``norm=backward`` is added as an alias for ``None``
-and acts as the default option; using it has the direct transforms unscaled
-and the inverse transforms scaled by ``1/n``.
-
-Using the new keyword argument option ``norm=forward`` has the direct
-transforms scaled by ``1/n`` and the inverse transforms unscaled (i.e. exactly
-opposite to the default option ``norm=backward``).
diff --git a/doc/release/upcoming_changes/16515.new_feature.rst b/doc/release/upcoming_changes/16515.new_feature.rst
deleted file mode 100644
index 5b3803429..000000000
--- a/doc/release/upcoming_changes/16515.new_feature.rst
+++ /dev/null
@@ -1,8 +0,0 @@
-NumPy is now typed
-------------------
-Type annotations have been added for large parts of NumPy. There is
-also a new `numpy.typing` module that contains useful types for
-end-users. The currently available types are
-
-- ``ArrayLike``: for objects that can be coerced to an array
-- ``DtypeLike``: for objects that can be coerced to a dtype
diff --git a/doc/release/upcoming_changes/16519.improvement.rst b/doc/release/upcoming_changes/16519.improvement.rst
deleted file mode 100644
index 50c4305e5..000000000
--- a/doc/release/upcoming_changes/16519.improvement.rst
+++ /dev/null
@@ -1,4 +0,0 @@
-Thread-safe f2py callback functions
------------------------------------
-
-Callback functions in f2py are now threadsafe.
diff --git a/doc/release/upcoming_changes/16554.compatibility.rst b/doc/release/upcoming_changes/16554.compatibility.rst
deleted file mode 100644
index a9f3f07e0..000000000
--- a/doc/release/upcoming_changes/16554.compatibility.rst
+++ /dev/null
@@ -1,10 +0,0 @@
-Numeric-style type names have been removed from type dictionaries
------------------------------------------------------------------
-
-To stay in sync with the deprecation for ``np.dtype("Complex64")``
-and other numeric-style (capital case) types. These were removed
-from ``np.sctypeDict`` and ``np.typeDict``. You should use
-the lower case versions instead. Note that ``"Complex64"``
-corresponds to ``"complex128"`` and ``"Complex32"`` corresponds
-to ``"complex64"``. The numpy style (new) versions, denote the full
-size and not the size of the real/imaginary part.
diff --git a/doc/release/upcoming_changes/16554.deprecation.rst b/doc/release/upcoming_changes/16554.deprecation.rst
deleted file mode 100644
index 5602d2d53..000000000
--- a/doc/release/upcoming_changes/16554.deprecation.rst
+++ /dev/null
@@ -1,8 +0,0 @@
-Further Numeric Style types Deprecated
---------------------------------------
-
-The remaining numeric-style type codes ``Bytes0``, ``Str0``,
-``Uint32``, ``Uint64``, and ``Datetime64``
-have been deprecated. The lower-case variants should be used
-instead. For bytes and string ``"S"`` and ``"U"``
-are further alternatives.
diff --git a/doc/release/upcoming_changes/16554.expired.rst b/doc/release/upcoming_changes/16554.expired.rst
deleted file mode 100644
index 9b5718f8a..000000000
--- a/doc/release/upcoming_changes/16554.expired.rst
+++ /dev/null
@@ -1,5 +0,0 @@
-* The deprecation of numeric style type-codes ``np.dtype("Complex64")``
- (with upper case spelling), is expired. ``"Complex64"`` corresponded to
- ``"complex128"`` and ``"Complex32"`` corresponded to ``"complex64"``.
-* The deprecation of ``np.sctypeNA`` and ``np.typeNA`` is expired. Both
- have been removed from the public API. Use ``np.typeDict`` instead.
diff --git a/doc/release/upcoming_changes/16558.new_feature.rst b/doc/release/upcoming_changes/16558.new_feature.rst
deleted file mode 100644
index 9bd508e83..000000000
--- a/doc/release/upcoming_changes/16558.new_feature.rst
+++ /dev/null
@@ -1,9 +0,0 @@
-``numpy.typing`` is accessible at runtime
------------------------------------------
-The types in ``numpy.typing`` can now be imported at runtime. Code
-like the following will now work:
-
-.. code:: python
-
- from numpy.typing import ArrayLike
- x: ArrayLike = [1, 2, 3, 4]
diff --git a/doc/release/upcoming_changes/16570.compatibility.rst b/doc/release/upcoming_changes/16570.compatibility.rst
deleted file mode 100644
index 5efd1218b..000000000
--- a/doc/release/upcoming_changes/16570.compatibility.rst
+++ /dev/null
@@ -1,4 +0,0 @@
-The ``operator.concat`` function now raises TypeError for array arguments
--------------------------------------------------------------------------
-The previous behavior was to fall back to addition and add the two arrays,
-which was thought to be unexpected behavior for a concatenation function.
diff --git a/doc/release/upcoming_changes/16589.compatibility.rst b/doc/release/upcoming_changes/16589.compatibility.rst
deleted file mode 100644
index d65fb43f6..000000000
--- a/doc/release/upcoming_changes/16589.compatibility.rst
+++ /dev/null
@@ -1,8 +0,0 @@
-``nickname`` attribute removed from ABCPolyBase
------------------------------------------------
-
-An abstract property ``nickname`` has been removed from ``ABCPolyBase`` as it
-was no longer used in the derived convenience classes.
-This may affect users who have derived classes from ``ABCPolyBase`` and
-overridden the methods for representation and display, e.g. ``__str__``,
-``__repr__``, ``_repr_latex``, etc.
diff --git a/doc/release/upcoming_changes/16592.compatibility.rst b/doc/release/upcoming_changes/16592.compatibility.rst
deleted file mode 100644
index 289e768fc..000000000
--- a/doc/release/upcoming_changes/16592.compatibility.rst
+++ /dev/null
@@ -1,13 +0,0 @@
-float->timedelta and uint64->timedelta promotion will raise a TypeError
------------------------------------------------------------------------
-Float and timedelta promotion consistently raises a TypeError.
-``np.promote_types("float32", "m8")`` aligns with
-``np.promote_types("m8", "float32")`` now and both raise a TypeError.
-Previously, ``np.promote_types("float32", "m8")`` returned ``"m8"`` which
-was considered a bug.
-
-Uint64 and timedelta promotion consistently raises a TypeError.
-``np.promote_types("uint64", "m8")`` aligns with
-``np.promote_types("m8", "uint64")`` now and both raise a TypeError.
-Previously, ``np.promote_types("uint64", "m8")`` returned ``"m8"`` which
-was considered a bug.
diff --git a/doc/release/upcoming_changes/16594.new_feature.rst b/doc/release/upcoming_changes/16594.new_feature.rst
deleted file mode 100644
index 5d67bfad7..000000000
--- a/doc/release/upcoming_changes/16594.new_feature.rst
+++ /dev/null
@@ -1,4 +0,0 @@
-New``__f2py_numpy_version__`` attribute for f2py generated modules.
--------------------------------------------------------------------
-Because f2py is released together with NumPy, ``__f2py_numpy_version__``
-provides a way to track the version f2py used to generate the module.
diff --git a/doc/release/upcoming_changes/16650.compatibility.rst b/doc/release/upcoming_changes/16650.compatibility.rst
deleted file mode 100644
index 653232355..000000000
--- a/doc/release/upcoming_changes/16650.compatibility.rst
+++ /dev/null
@@ -1,16 +0,0 @@
-`numpy.genfromtxt` now correctly unpacks structured arrays
-----------------------------------------------------------
-Previously, `numpy.genfromtxt` failed to unpack if it was called with
-``unpack=True`` and a structured datatype was passed to the ``dtype`` argument
-(or ``dtype=None`` was passed and a structured datatype was inferred).
-For example::
-
- >>> data = StringIO("21 58.0\n35 72.0")
- >>> np.genfromtxt(data, dtype=None, unpack=True)
- array([(21, 58.), (35, 72.)], dtype=[('f0', '<i8'), ('f1', '<f8')])
-
-Structured arrays will now correctly unpack into a list of arrays,
-one for each column::
-
- >>> np.genfromtxt(data, dtype=None, unpack=True)
- [array([21, 35]), array([58., 72.])]
diff --git a/doc/release/upcoming_changes/16675.improvement.rst b/doc/release/upcoming_changes/16675.improvement.rst
deleted file mode 100644
index bc70d7e0f..000000000
--- a/doc/release/upcoming_changes/16675.improvement.rst
+++ /dev/null
@@ -1,4 +0,0 @@
-`numpy.core.records.fromfile` now supports file-like objects
-------------------------------------------------------------
-`numpy.rec.fromfile` can now use file-like objects, for instance
-:py:class:`io.BytesIO`
diff --git a/doc/release/upcoming_changes/16710.improvement.rst b/doc/release/upcoming_changes/16710.improvement.rst
deleted file mode 100644
index 4194c36a8..000000000
--- a/doc/release/upcoming_changes/16710.improvement.rst
+++ /dev/null
@@ -1,3 +0,0 @@
-RPATH support on AIX added to distutils
----------------------------------------
-This allows SciPy to be built on AIX.
diff --git a/doc/release/upcoming_changes/16730.improvement.rst b/doc/release/upcoming_changes/16730.improvement.rst
deleted file mode 100644
index 44ec03caf..000000000
--- a/doc/release/upcoming_changes/16730.improvement.rst
+++ /dev/null
@@ -1,9 +0,0 @@
-Use f90 compiler specified in command line args
---------------------------------------------------------
-
-The compiler command selection for Fortran Portland Group Compiler is changed in `numpy.distutils.fcompiler`.
-This only affects the linking command.
-This forces the use of the executable provided by the command line option (if provided)
-instead of the pgfortran executable.
-If no executable is provided to the command line option it defaults to the pgf90 executable,
-wich is an alias for pgfortran according to the PGI documentation.
diff --git a/doc/release/upcoming_changes/16815.compatibility.rst b/doc/release/upcoming_changes/16815.compatibility.rst
deleted file mode 100644
index ceaf12a57..000000000
--- a/doc/release/upcoming_changes/16815.compatibility.rst
+++ /dev/null
@@ -1,8 +0,0 @@
-``mgrid``, ``r_``, etc. consistently return correct outputs for non-default precision input
--------------------------------------------------------------------------------------------
-Previously, ``np.mgrid[np.float32(0.1):np.float32(0.35):np.float32(0.1),]``
-and ``np.r_[0:10:np.complex64(3j)]`` failed to return meaningful output.
-This bug potentially affects `~numpy.mgrid`, `~numpy.ogrid`, `~numpy.r_`,
-and `~numpy.c_` when an input with dtype other than the default
-``float64`` and ``complex128`` and equivalent Python types were used.
-The methods have been fixed to handle varying precision correctly.
diff --git a/doc/release/upcoming_changes/16841.change.rst b/doc/release/upcoming_changes/16841.change.rst
deleted file mode 100644
index 3ddd24078..000000000
--- a/doc/release/upcoming_changes/16841.change.rst
+++ /dev/null
@@ -1,19 +0,0 @@
-``np.linspace`` on integers now use floor
------------------------------------------
-When using a `int` dtype in `numpy.linspace`, previously float values would
-be rounded towards zero. Now `numpy.floor` is used instead, which rounds toward
-``-inf``. This changes the results for negative values. For example, the
-following would previously give::
-
- >>> np.linspace(-3, 1, 8, dtype=int)
- array([-3, -2, -1, -1, 0, 0, 0, 1])
-
-and now results in::
-
- >>> np.linspace(-3, 1, 8, dtype=int)
- array([-3, -3, -2, -2, -1, -1, 0, 1])
-
-The former result can still be obtained with::
-
- >>> np.linspace(-3, 1, 8).astype(int)
- array([-3, -2, -1, -1, 0, 0, 0, 1])
diff --git a/doc/release/upcoming_changes/16938.c_api.rst b/doc/release/upcoming_changes/16938.c_api.rst
deleted file mode 100644
index aff72c8e5..000000000
--- a/doc/release/upcoming_changes/16938.c_api.rst
+++ /dev/null
@@ -1,19 +0,0 @@
-Size of ``np.ndarray`` and ``np.void_`` changed
------------------------------------------------
-The size of the ``PyArrayObject`` and ``PyVoidScalarObject``
-structures have changed. The following header definition has been
-removed::
-
- #define NPY_SIZEOF_PYARRAYOBJECT (sizeof(PyArrayObject_fields))
-
-since the size must not be considered a compile time constant: it will
-change for different runtime versions of NumPy.
-
-The most likely relevant use are potential subclasses written in C which
-will have to be recompiled and should be updated. Please see the
-documentation for :c:type:`PyArrayObject` for more details and contact
-the NumPy developers if you are affected by this change.
-
-NumPy will attempt to give a graceful error but a program expecting a
-fixed structure size may have undefined behaviour and likely crash.
-
diff --git a/doc/release/upcoming_changes/16986.improvement.rst b/doc/release/upcoming_changes/16986.improvement.rst
deleted file mode 100644
index 391322d9d..000000000
--- a/doc/release/upcoming_changes/16986.improvement.rst
+++ /dev/null
@@ -1,7 +0,0 @@
-Add NumPy declarations for Cython 3.0 and later
------------------------------------------------
-
-The pxd declarations for Cython 3.0 were improved to avoid using deprecated
-NumPy C-API features. Extension modules built with Cython 3.0+ that use NumPy
-can now set the C macro ``NPY_NO_DEPRECATED_API=NPY_1_7_API_VERSION`` to avoid
-C compiler warnings about deprecated API usage.
diff --git a/doc/release/upcoming_changes/17010.compatibility.rst b/doc/release/upcoming_changes/17010.compatibility.rst
deleted file mode 100644
index 72ca0a963..000000000
--- a/doc/release/upcoming_changes/17010.compatibility.rst
+++ /dev/null
@@ -1,24 +0,0 @@
-Boolean array indices with mismatching shapes now properly give ``IndexError``
-------------------------------------------------------------------------------
-
-Previously, if a boolean array index matched the size of the indexed array but
-not the shape, it was incorrectly allowed in some cases. In other cases, it
-gave an error, but the error was incorrectly a ``ValueError`` with a message
-about broadcasting instead of the correct ``IndexError``.
-
-For example, the following used to incorrectly give ``ValueError: operands
-could not be broadcast together with shapes (2,2) (1,4)``:
-
-.. code:: python
-
- np.empty((2, 2))[np.array([[True, False, False, False]])]
-
-And the following used to incorrectly return ``array([], dtype=float64)``:
-
-.. code:: python
-
- np.empty((2, 2))[np.array([[False, False, False, False]])]
-
-Both now correctly give ``IndexError: boolean index did not match indexed
-array along dimension 0; dimension is 2 but corresponding boolean dimension is
-1``.
diff --git a/doc/release/upcoming_changes/17029.compatibility.rst b/doc/release/upcoming_changes/17029.compatibility.rst
deleted file mode 100644
index 69069ce18..000000000
--- a/doc/release/upcoming_changes/17029.compatibility.rst
+++ /dev/null
@@ -1,14 +0,0 @@
-Casting errors interrupt Iteration
-----------------------------------
-When iterating while casting values, an error may stop the iteration
-earlier than before. In any case, a failed casting operation always
-returned undefined, partial results. Those may now be even more
-undefined and partial.
-For users of the ``NpyIter`` C-API such cast errors will now
-cause the `iternext()` function to return 0 and thus abort
-iteration.
-Currently, there is no API to detect such an error directly.
-It is necessary to check ``PyErr_Occurred()``, which
-may be problematic in combination with ``NpyIter_Reset``.
-These issues always existed, but new API could be added
-if required by users.
diff --git a/doc/release/upcoming_changes/17067.expired.rst b/doc/release/upcoming_changes/17067.expired.rst
deleted file mode 100644
index a1065d2c3..000000000
--- a/doc/release/upcoming_changes/17067.expired.rst
+++ /dev/null
@@ -1,8 +0,0 @@
-Financial functions removed
----------------------------
-In accordance with NEP 32, the financial functions are removed
-from NumPy 1.20. The functions that have been removed are ``fv``,
-``ipmt``, ``irr``, ``mirr``, ``nper``, ``npv``, ``pmt``, ``ppmt``,
-``pv``, and ``rate``. These functions are available in the
-`numpy_financial <https://pypi.org/project/numpy-financial>`_
-library.
diff --git a/doc/release/upcoming_changes/17068.compatibility.rst b/doc/release/upcoming_changes/17068.compatibility.rst
deleted file mode 100644
index 7aa4e58ae..000000000
--- a/doc/release/upcoming_changes/17068.compatibility.rst
+++ /dev/null
@@ -1,4 +0,0 @@
-f2py generated code may return unicode instead of byte strings
---------------------------------------------------------------
-Some byte strings previously returned by f2py generated code may now be unicode
-strings. This results from the ongoing Python2 -> Python3 cleanup.
diff --git a/doc/release/upcoming_changes/17116.expired.rst b/doc/release/upcoming_changes/17116.expired.rst
deleted file mode 100644
index d8a3a43d5..000000000
--- a/doc/release/upcoming_changes/17116.expired.rst
+++ /dev/null
@@ -1,2 +0,0 @@
-* The 14-year deprecation of ``np.ctypeslib.ctypes_load_library`` is expired.
- Use :func:`~numpy.ctypeslib.load_library` instead, which is identical.
diff --git a/doc/release/upcoming_changes/17123.new_feature.rst b/doc/release/upcoming_changes/17123.new_feature.rst
deleted file mode 100644
index e2aca3c55..000000000
--- a/doc/release/upcoming_changes/17123.new_feature.rst
+++ /dev/null
@@ -1,12 +0,0 @@
-``mypy`` tests can be run via runtests.py
------------------------------------------
-Currently running mypy with the NumPy stubs configured requires
-either:
-
-* Installing NumPy
-* Adding the source directory to MYPYPATH and linking to the mypy.ini
-
-Both options are somewhat inconvenient, so add a ``--mypy`` option to runtests
-that handles setting things up for you. This will also be useful in the future
-for any typing codegen since it will ensure the project is built before type
-checking.
diff --git a/doc/release/upcoming_changes/17195.improvement.rst b/doc/release/upcoming_changes/17195.improvement.rst
deleted file mode 100644
index d5f31dd3f..000000000
--- a/doc/release/upcoming_changes/17195.improvement.rst
+++ /dev/null
@@ -1,5 +0,0 @@
-Make the window functions exactly symmetric
--------------------------------------------
-Make sure the window functions provided by NumPy are symmetric. There were
-previously small deviations from symmetry due to numerical precision that are
-now avoided by better arrangement of the computation.
diff --git a/doc/release/upcoming_changes/17219.new_feature.rst b/doc/release/upcoming_changes/17219.new_feature.rst
deleted file mode 100644
index 23f0296ae..000000000
--- a/doc/release/upcoming_changes/17219.new_feature.rst
+++ /dev/null
@@ -1,12 +0,0 @@
-Negation of user-defined BLAS/LAPACK detection order
-----------------------------------------------------
-`~numpy.distutils` allows negation of libraries when determining BLAS/LAPACK
-libraries.
-This may be used to remove an item from the library resolution phase, i.e.
-to disallow NetLIB libraries one could do:
-
-.. code:: bash
-
- NPY_BLAS_ORDER='^blas' NPY_LAPACK_ORDER='^lapack' python setup.py build
-
-which will use any of the accelerated libraries instead.
diff --git a/doc/release/upcoming_changes/17233.deprecation.rst b/doc/release/upcoming_changes/17233.deprecation.rst
deleted file mode 100644
index 7615b85c4..000000000
--- a/doc/release/upcoming_changes/17233.deprecation.rst
+++ /dev/null
@@ -1,4 +0,0 @@
-The ``ndincr`` method of ``ndindex`` is deprecated
---------------------------------------------------
-The documentation has warned against using this function since NumPy 1.8.
-Use ``next(it)`` instead of ``it.ndincr()``.
diff --git a/doc/release/upcoming_changes/17241.compatibility.rst b/doc/release/upcoming_changes/17241.compatibility.rst
deleted file mode 100644
index 671f73d1e..000000000
--- a/doc/release/upcoming_changes/17241.compatibility.rst
+++ /dev/null
@@ -1,6 +0,0 @@
-The first element of the ``__array_interface__["data"]`` tuple must be an integer
-----------------------------------------------------------------------------------
-This has been the documented interface for many years, but there was still
-code that would accept a byte string representation of the pointer address.
-That code has been removed, passing the address as a byte string will now
-raise an error.
diff --git a/doc/release/upcoming_changes/17284.new_feature.rst b/doc/release/upcoming_changes/17284.new_feature.rst
deleted file mode 100644
index 9fb59e942..000000000
--- a/doc/release/upcoming_changes/17284.new_feature.rst
+++ /dev/null
@@ -1,6 +0,0 @@
-Allow passing optimizations arguments to asv build
---------------------------------------------------
-It is now possible to pass ``-j``, ``--cpu-baseline``, ``--cpu-dispatch`` and
-``--disable-optimization`` flags to ASV build when the ``--bench-compare``
-argument is used.
-
diff --git a/doc/release/upcoming_changes/17344.new_feature.rst b/doc/release/upcoming_changes/17344.new_feature.rst
deleted file mode 100644
index 225bb0d5a..000000000
--- a/doc/release/upcoming_changes/17344.new_feature.rst
+++ /dev/null
@@ -1,3 +0,0 @@
-The NVIDIA HPC SDK nvfortran compiler is now supported
-------------------------------------------------------
-Support for the nvfortran compiler, a version of pgfortran, has been added.
diff --git a/doc/release/upcoming_changes/17394.new_function.rst b/doc/release/upcoming_changes/17394.new_function.rst
deleted file mode 100644
index 25e1ab220..000000000
--- a/doc/release/upcoming_changes/17394.new_function.rst
+++ /dev/null
@@ -1,6 +0,0 @@
-``sliding_window_view`` provides a sliding window view for numpy arrays
------------------------------------------------------------------------
-`numpy.lib.stride_tricks.sliding_window_view` constructs views on numpy
-arrays that offer a sliding or moving window access to the array. This allows
-for the simple implementation of certain algorithms, such as running means.
-
diff --git a/doc/release/upcoming_changes/17456.new_feature.rst b/doc/release/upcoming_changes/17456.new_feature.rst
deleted file mode 100644
index 7ab014e77..000000000
--- a/doc/release/upcoming_changes/17456.new_feature.rst
+++ /dev/null
@@ -1,5 +0,0 @@
-``dtype`` option for `cov` and `corrcoef`
-----------------------------------------------------
-The ``dtype`` option is now available for `numpy.cov` and `numpy.corrcoef`.
-It specifies which data-type the returned result should have.
-By default the functions still return a `numpy.float64` result.
diff --git a/doc/release/upcoming_changes/17535.new_function.rst b/doc/release/upcoming_changes/17535.new_function.rst
deleted file mode 100644
index 5be5c4c51..000000000
--- a/doc/release/upcoming_changes/17535.new_function.rst
+++ /dev/null
@@ -1,15 +0,0 @@
-`numpy.broadcast_shapes` is a new user-facing function
-------------------------------------------------------
-`~numpy.broadcast_shapes` gets the resulting shape from
-broadcasting the given shape tuples against each other.
-
-.. code:: python
-
- >>> np.broadcast_shapes((1, 2), (3, 1))
- (3, 2)
-
- >>> np.broadcast_shapes(2, (3, 1))
- (3, 2)
-
- >>> np.broadcast_shapes((6, 7), (5, 6, 1), (7,), (5, 1, 7))
- (5, 6, 7)
diff --git a/doc/release/upcoming_changes/17577.compatibility.rst b/doc/release/upcoming_changes/17577.compatibility.rst
deleted file mode 100644
index d08805607..000000000
--- a/doc/release/upcoming_changes/17577.compatibility.rst
+++ /dev/null
@@ -1,6 +0,0 @@
-poly1d respects the dtype of all-zero argument
-----------------------------------------------
-Previously, constructing an instance of ``poly1d`` with all-zero
-coefficients would cast the coefficients to ``np.float64``.
-This affected the output dtype of methods which construct
-``poly1d`` instances internally, such as ``np.polymul``. \ No newline at end of file
diff --git a/doc/release/upcoming_changes/17580.compatibility.rst b/doc/release/upcoming_changes/17580.compatibility.rst
deleted file mode 100644
index b8e1849af..000000000
--- a/doc/release/upcoming_changes/17580.compatibility.rst
+++ /dev/null
@@ -1,4 +0,0 @@
-The numpy.i file for swig is Python 3 only.
--------------------------------------------
-Uses of Python 2.7 C-API functions have been updated to Python 3 only. Users
-who need the old version should take it from an older version of NumPy.
diff --git a/doc/release/upcoming_changes/17596.future.rst b/doc/release/upcoming_changes/17596.future.rst
deleted file mode 100644
index 168556891..000000000
--- a/doc/release/upcoming_changes/17596.future.rst
+++ /dev/null
@@ -1,30 +0,0 @@
-Arrays cannot be using subarray dtypes
---------------------------------------
-Array creation and casting using ``np.array(arr, dtype)``
-and ``arr.astype(dtype)`` will use different logic when ``dtype``
-is a subarray dtype such as ``np.dtype("(2)i,")``.
-
-For such a ``dtype`` the following behaviour is true::
-
- res = np.array(arr, dtype)
-
- res.dtype is not dtype
- res.dtype is dtype.base
- res.shape == arr.shape + dtype.shape
-
-But ``res`` is filled using the logic::
-
- res = np.empty(arr.shape + dtype.shape, dtype=dtype.base)
- res[...] = arr
-
-which uses incorrect broadcasting (and often leads to an error).
-In the future, this will instead cast each element individually,
-leading to the same result as::
-
- res = np.array(arr, dtype=np.dtype(["f", dtype]))["f"]
-
-Which can normally be used to opt-in to the new behaviour.
-
-This change does not affect ``np.array(list, dtype="(2)i,")`` unless the
-``list`` itself includes at least one array. In particular, the behaviour
-is unchanged for a list of tuples.
diff --git a/doc/release/upcoming_changes/17706.compatibility.rst b/doc/release/upcoming_changes/17706.compatibility.rst
deleted file mode 100644
index 41239dd3c..000000000
--- a/doc/release/upcoming_changes/17706.compatibility.rst
+++ /dev/null
@@ -1,10 +0,0 @@
-Void dtype discovery in ``np.array``
-------------------------------------
-In calls using ``np.array(..., dtype="V")``, ``arr.astype("V")``,
-and similar a TypeError will now be correctly raised unless all
-elements have the identical void length. An example for this is::
-
- np.array([b"1", b"12"], dtype="V")
-
-Which previously returned an array with dtype ``"V2"`` which
-cannot represent ``b"1"`` faithfully.
diff --git a/doc/source/release.rst b/doc/source/release.rst
index 3ef1b06bd..29199fb83 100644
--- a/doc/source/release.rst
+++ b/doc/source/release.rst
@@ -5,6 +5,7 @@ Release Notes
.. toctree::
:maxdepth: 3
+ 1.21.0 <release/1.21.0-notes>
1.20.0 <release/1.20.0-notes>
1.19.4 <release/1.19.4-notes>
1.19.3 <release/1.19.3-notes>
diff --git a/doc/source/release/1.21.0-notes.rst b/doc/source/release/1.21.0-notes.rst
new file mode 100644
index 000000000..5fda1f631
--- /dev/null
+++ b/doc/source/release/1.21.0-notes.rst
@@ -0,0 +1,6 @@
+.. currentmodule:: numpy
+
+==========================
+NumPy 1.21.0 Release Notes
+==========================
+