8000 REL: Prepare for the NumPy 1.26.0b1 release. · numpy/numpy@ff1cec5 · GitHub
[go: up one dir, main page]

Skip to content

Commit ff1cec5

Browse files
committed
REL: Prepare for the NumPy 1.26.0b1 release.
- Create 1.26.0-changelog.rst - Update 1.26.0-notes.rst - Update pyproject.toml - Update pyproject.toml.setuppy - Skip failing test [wheel build]
1 parent e021c26 commit ff1cec5

File tree

5 files changed

+157
-7
lines changed

5 files changed

+157
-7
lines changed

doc/changelog/1.26.0-changelog.rst

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
2+
Contributors
3+
============
4+
5+
A total of 11 people contributed to this release. People with a "+" by their
6+
names contributed a patch for the first time.
7+
8+
* Bas van Beek
9+
* Charles Harris
10+
* Matti Picus
11+
* Melissa Weber Mendonça
12+
* Ralf Gommers
13+
* Sayed Adel
14+
* Sebastian Berg
15+
* Stefan van der Walt
16+
* Tyler Reddy
17+
* Warren Weckesser
18+
19+
Pull requests merged
20+
====================
21+
22+
A total of 18 pull requests were merged for this release.
23+
24+
* `#24305 <https://github.com/numpy/numpy/pull/24305>`__: MAINT: Prepare 1.26.x branch for development
25+
* `#24308 <https://github.com/numpy/numpy/pull/24308>`__: MAINT: Massive update of files from main for numpy 1.26
26+
* `#24322 <https://github.com/numpy/numpy/pull/24322>`__: CI: fix wheel builds on the 1.26.x branch
27+
* `#24326 <https://github.com/numpy/numpy/pull/24326>`__: BLD: update openblas to newer version
28+
* `#24327 <https://github.com/numpy/numpy/pull/24327>`__: TYP: Trim down the ``_NestedSequence.__getitem__`` signature
29+
* `#24328 <https://github.com/numpy/numpy/pull/24328>`__: BUG: fix choose refcount leak
30+
* `#24337 <https://github.com/numpy/numpy/pull/24337>`__: TST: fix running the test suite in builds without BLAS/LAPACK
31+
* `#24338 <https://github.com/numpy/numpy/pull/24338>`__: BUG: random: Fix generation of nan by dirichlet.
32+
* `#24340 <https://github.com/numpy/numpy/pull/24340>`__: MAINT: Dependabot updates from main
33+
* `#24342 <https://github.com/numpy/numpy/pull/24342>`__: MAINT: Add back NPY_RUN_MYPY_IN_TESTSUITE=1
34+
* `#24353 <https://github.com/numpy/numpy/pull/24353>`__: MAINT: Update ``extbuild.py`` from main.
35+
* `#24356 <https://github.com/numpy/numpy/pull/24356>`__: TST: fix distutils tests for deprecations in recent setuptools...
36+
* `#24375 <https://github.com/numpy/numpy/pull/24375>`__: MAINT: Update cibuildwheel to version 2.15.0
37+
* `#24381 <https://github.com/numpy/numpy/pull/24381>`__: MAINT: Fix codespaces setup.sh script
38+
* `#24403 <https://github.com/numpy/numpy/pull/24403>`__: ENH: Vendor meson for multi-target build support
39+
* `#24404 <https://github.com/numpy/numpy/pull/24404>`__: BLD: vendor meson-python to make the Windows builds with SIMD...
40+
* `#24405 <https://github.com/numpy/numpy/pull/24405>`__: BLD, SIMD: The meson CPU dispatcher implementation
41+
* `#24406 <https://github.com/numpy/numpy/pull/24406>`__: MAINT: Remove versioneer

doc/source/release/1.26.0-notes.rst

Lines changed: 108 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,114 @@
44
NumPy 1.26.0 Release Notes
55
==========================
66

7-
The NumPy 1.26.0 release is a continuation of the 1.25.x release cycle, but
8-
with the distutils based build replaced by meson in order to work with Python
9-
3.12.
7+
The NumPy 1.26.0 release is a continuation of the 1.25.x release cycle with the
8+
addition of Python 3.12.0 support. Python 3.12 dropped distutils, consequently
9+
supporting it required finding a replacement for the setup.py/distutils based
10+
build system NumPy was using. We have chosen to use the Meson build system
11+
instead, and this is the first NumPy release supporting it. This is also the
12+
first release that supports Cython 3.0 in addition to retaining 0.29.X
13+
compatibility. Supporting those two upgrades was a large project, over 100
14+
files have been touched in this release. The changelog doesn't capture the full
15+
extent of the work, special thanks to Ralf Gommers, Sayed Adel, Stéfan van der
16+
Walt, and Matti Picus who did much of the work in the main development branch.
17+
18+
The highlights of this release are:
19+
20+
- Python 3.12.0 support.
21+
- Cython 3.0.0 compatibility.
22+
- Use of the Meson build system
23+
- Updated SIMD support
1024

1125
The Python versions supported in this release are 3.9-3.12.
1226

27+
Build system changes
28+
====================
29+
30+
In this release, NumPy has switched to Meson as the build system and
31+
meson-python as the build backend. Installing NumPy or building a wheel can be
32+
done with standard tools like ``pip`` and ``pypa/build``. The following are
33+
supported:
34+
35+
- Regular installs: ``pip install numpy`` or (in a cloned repo)
36+
``pip install .``
37+
- Building a wheel: ``python -m build`` (preferred), or ``pip wheel .``
38+
- Editable installs: ``pip install -e . --no-build-isolation``
39+
- Development builds through the custom CLI implemented with
40+
`spin <https://github.com/scientific-python/spin>`__: ``spin build``.
41+
42+
All the regular ``pip`` and ``pypa/build`` flags (e.g.,
43+
``--no-build-isolation``) should work as expected.
44+
45+
NumPy-specific build customization
46+
----------------------------------
47+
48+
Many of the NumPy-specific ways of customizing builds have changed.
49+
The ``NPY_*`` environment variables which control BLAS/LAPACK, SIMD, threading,
50+
and other such options are no longer supported, nor is a ``site.cfg`` file to
51+
select BLAS and LAPACK. Instead, there are command-line flags that can be
52+
passed to the build via ``pip``/``build``'s config-settings interface. These
53+
flags are all listed in the ``meson_options.txt`` file in the root of the repo.
54+
Detailed documented will be available before the final 1.26.0 release; for now
55+
please see `the SciPy "building from source" docs
56+
<http://scipy.github.io/devdocs/building/index.html>`__ since most build
57+
customization works in an almost identical way in SciPy as it does in NumPy.
58+
59+
Build dependencies
60+
------------------
61+
62+
While the runtime dependencies of NumPy have not changed, the build
63+
dependencies have. Because we temporarily vendor Meson and meson-python,
64+
there are several new dependencies - please see the ``[build-system]`` section
65+
of ``pyproject.toml`` for details.
66+
67+
Troubleshooting
68+
---------------
69+
70+
This build system change is quite large. In case of unexpected issues, it is
71+
still possible to use a ``setup.py``-based build as a temporary workaround (on
72+
Python 3.9-3.11, not 3.12), by copying ``pyproject.toml.setuppy`` to
73+
``pyproject.toml``. However, please open an issue with details on the NumPy
74+
issue tracker. We aim to phase out ``setup.py`` builds as soon as possible, and
75+
therefore would like to see all potential blockers surfaced early on in the
76+
1.26.0 release cycle.
77+
78+
Contributors
79+
============
80+
81+
A total of 11 people contributed to this release. People with a "+" by their
82+
names contributed a patch for the first time.
83+
84+
* Bas van Beek
85+
* Charles Harris
86+
* Matti Picus
87+
* Melissa Weber Mendonça
88+
* Ralf Gommers
89+
* Sayed Adel
90+
* Sebastian Berg
91+
* Stefan van der Walt
92+
* Tyler Reddy
93+
* Warren Weckesser
94+
95+
Pull requests merged
96+
====================
97+
98+
A total of 18 pull requests were merged for this release.
99+
100+
* `#24305 <https://github.com/numpy/numpy/pull/24305>`__: MAINT: Prepare 1.26.x branch for development
101+
* `#24308 <https://github.com/numpy/numpy/pull/24308>`__: MAINT: Massive update of files from main for numpy 1.26
102+
* `#24322 <https://github.com/numpy/numpy/pull/24322>`__: CI: fix wheel builds on the 1.26.x branch
103+
* `#24326 <https://github.com/numpy/numpy/pull/24326>`__: BLD: update openblas to newer version
104+
* `#24327 <https://github.com/numpy/numpy/pull/24327>`__: TYP: Trim down the ``_NestedSequence.__getitem__`` signature
105+
* `#24328 <https://github.com/numpy/numpy/pull/24328>`__: BUG: fix choose refcount leak
106+
* `#24337 <https://github.com/numpy/numpy/pull/24337>`__: TST: fix running the test suite in builds without BLAS/LAPACK
107+
* `#24338 <https://github.com/numpy/numpy/pull/24338>`__: BUG: random: Fix generation of nan by dirichlet.
108+
* `#24340 <https://github.com/numpy/numpy/pull/24340>`__: MAINT: Dependabot updates from main
109+
* `#24342 <https://github.com/numpy/numpy/pull/24342>`__: MAINT: Add back NPY_RUN_MYPY_IN_TESTSUITE=1
110+
* `#24353 <https://github.com/numpy/numpy/pull/24353>`__: MAINT: Update ``extbuild.py`` from main.
111+
* `#24356 <https://github.com/numpy/numpy/pull/24356>`__: TST: fix distutils tests for deprecations in recent setuptools...
112+
* `#24375 <https://github.com/numpy/numpy/pull/24375>`__: MAINT: Update cibuildwheel to version 2.15.0
113+
* `#24381 <https://github.com/numpy/numpy/pull/24381>`__: MAINT: Fix codespaces setup.sh script
114+
* `#24403 <https://github.com/numpy/numpy/pull/24403>`__: ENH: Vendor meson for multi-target build support
115+
* `#24404 <https://github.com/numpy/numpy/pull/24404>`__: BLD: vendor meson-python to make the Windows builds with SIMD...
116+
* `#24405 <https://github.com/numpy/numpy/pull/24405>`__: BLD, SIMD: The meson CPU dispatcher implementation
117+
* `#24406 <https://github.com/numpy/numpy/pull/24406>`__: MAINT: Remove versioneer

numpy/tests/test_ctypeslib.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -213,6 +213,10 @@ def test_pointer(self):
213213
# shape argument is required
214214
assert_raises(TypeError, as_array, p)
215215

216+
@pytest.mark.skipif(
217+
sys.version_info == (3, 12, 0, "candidate", 1),
218+
reason="Broken in 3.12.0rc1, see gh-24399",
219+
)
216220
def test_struct_array_pointer(self):
217221
from ctypes import c_int16, Structure, pointer
218222

pyproject.toml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
build-backend = "mesonpy"
33
backend-path = ['./vendored-meson/meson-python']
44
requires = [
5-
"Cython>=3.0",
5+
"Cython>=0.29.34,<3.1"
66
# All dependencies of the vendored meson-python (except for meson, because
77
# we've got that vendored too - that's the point of this exercise).
88
'pyproject-metadata >= 0.7.1',
@@ -17,7 +17,7 @@ requires = [
1717

1818
[project]
1919
name = "numpy"
20-
version = "2.0.0.dev0"
20+
version = "1.26.0b1"
2121
# TODO: add `license-files` once PEP 639 is accepted (see meson-python#88)
2222
license = {file = "LICENSE.txt"}
2323

@@ -26,7 +26,7 @@ authors = [{name = "Travis E. Oliphant et al."}]
2626
maintainers = [
2727
{name = "NumPy Developers", email="numpy-discussion@python.org"},
2828
]
29-
requires-python = ">=3.9"
29+
requires-python = ">=3.9,<3.13"
3030
readme = "README.md"
3131
classifiers = [
3232
'Development Status :: 5 - Production/Stable',

pyproject.toml.setuppy

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
# to avoid building with Meson (e.g., in the Emscripten/Pyodide CI job)
44
[project]
55
name = "numpy"
6-
version = "2.0.0.dev0"
6+
version = "1.26.0b1"
77

88
[build-system]
99
requires = [

0 commit comments

Comments
 (0)
0