https://github.com/numpy/numpy/releases/tag/v2.5.0

excerpt from the top:

"Numpy 2.5.0 is a transitional release. It drops support for Python
3.11, marking the end of distutils, and expires a large number of
deprecations made in the 2.0.x release. It also improves free threading
and brings sorting into compliance with the array-api standard with the
addition of descending sorts. There is also a fair amount of preparation
for Python 3.15, which will be supported starting with the first rc."

Given the deprecations, if we're wanting to move to 2.5+ in this release
cycle, we want this sooner rather than later so that we have more chance
to fix problems.

Test results so far:

amd64:
old: = 40 failed, 47208 passed, 1790 skipped, 2817 deselected, 32 xfailed, 2 
xpassed, 14 warnings in 1386.01s (0:23:06) =
new: = 40 failed, 47051 passed, 1749 skipped, 3634 deselected, 32 xfailed, 2 
xpassed, 14 warnings in 259.71s (0:04:19) =

aarch64:
old: = 99 failed, 46433 passed, 394 skipped, 2817 deselected, 32 xfailed, 2 
xpassed, 76 warnings in 638.22s (0:10:38) =
new: = 99 failed, 46276 passed, 353 skipped, 3634 deselected, 32 xfailed, 2 
xpassed, 76 warnings in 258.86s (0:04:18) =

amd64 tests were run on a busy machine so I wouldn't pay too much
attention to timings there, however aarch64 was otherwise idle
and that's quite a serious improvement...

I'll also do tests + bulk build on i386 at a good point in the dpb cycle
on the build machines (it will miss some things that have too-chunky
dependencies, though I don't think there are too many amongst
numpy-using ports).

Anyone interested in running other tests?

Index: Makefile
===================================================================
RCS file: /cvs/ports/math/py-numpy/Makefile,v
diff -u -p -r1.103 Makefile
--- Makefile    19 May 2026 09:42:33 -0000      1.103
+++ Makefile    23 Jun 2026 10:54:48 -0000
@@ -1,6 +1,6 @@
 COMMENT=       fast array and numeric programming library for Python
 
-MODPY_DISTV=   2.4.6
+MODPY_DISTV=   2.5.0
 DISTNAME=      numpy-${MODPY_DISTV}
 PKGNAME=       py-${DISTNAME}
 
Index: distinfo
===================================================================
RCS file: /cvs/ports/math/py-numpy/distinfo,v
diff -u -p -r1.28 distinfo
--- distinfo    19 May 2026 09:42:33 -0000      1.28
+++ distinfo    23 Jun 2026 10:54:48 -0000
@@ -1,2 +1,2 @@
-SHA256 (numpy-2.4.6.tar.gz) = 86NXDEoqFnRqwsMafHx7DBhrlc6QLjPbbygJTtc4fdo=
-SIZE (numpy-2.4.6.tar.gz) = 20735807
+SHA256 (numpy-2.5.0.tar.gz) = WhKVeAGTEbbla91xQlDxm1GPfc7uuNGvVJD0lC0/iRw=
+SIZE (numpy-2.5.0.tar.gz) = 20652461
Index: patches/patch-numpy__core_meson_build
===================================================================
RCS file: /cvs/ports/math/py-numpy/patches/patch-numpy__core_meson_build,v
diff -u -p -r1.4 patch-numpy__core_meson_build
--- patches/patch-numpy__core_meson_build       12 Jan 2026 05:39:02 -0000      
1.4
+++ patches/patch-numpy__core_meson_build       23 Jun 2026 10:54:48 -0000
@@ -5,7 +5,7 @@ with unresolved symbols.
 Index: numpy/_core/meson.build
 --- numpy/_core/meson.build.orig
 +++ numpy/_core/meson.build
-@@ -313,7 +313,6 @@ endforeach
+@@ -376,7 +376,6 @@ endforeach
  
  # Other optional functions
  optional_misc_funcs = [
Index: patches/patch-numpy_distutils_command_build_src_py
===================================================================
RCS file: patches/patch-numpy_distutils_command_build_src_py
diff -N patches/patch-numpy_distutils_command_build_src_py
--- patches/patch-numpy_distutils_command_build_src_py  11 Mar 2022 19:36:29 
-0000      1.6
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,14 +0,0 @@
-fix build of other packages (e.g. py-scipy) in some cases (e.g. when
-WRKOBJDIR has a trailing slash)
-
-Index: numpy/distutils/command/build_src.py
---- numpy/distutils/command/build_src.py.orig
-+++ numpy/distutils/command/build_src.py
-@@ -366,6 +366,7 @@ class build_src(build_ext.build_ext):
-             #    incl_dirs.append(self.build_src)
-             build_dir = os.path.join(*([self.build_src]
-                                        +name.split('.')[:-1]))
-+        build_dir = os.path.normpath(build_dir)
-         self.mkpath(build_dir)
- 
-         if self.verbose_cfg:
Index: pkg/PLIST
===================================================================
RCS file: /cvs/ports/math/py-numpy/pkg/PLIST,v
diff -u -p -r1.28 PLIST
--- pkg/PLIST   19 May 2026 09:42:33 -0000      1.28
+++ pkg/PLIST   23 Jun 2026 10:54:48 -0000
@@ -231,9 +231,6 @@ lib/python${MODPY_VERSION}/site-packages
 lib/python${MODPY_VERSION}/site-packages/numpy/_core/include/numpy/utils.h
 lib/python${MODPY_VERSION}/site-packages/numpy/_core/lib/
 @static-lib 
lib/python${MODPY_VERSION}/site-packages/numpy/_core/lib/libnpymath.a
-lib/python${MODPY_VERSION}/site-packages/numpy/_core/lib/npy-pkg-config/
-lib/python${MODPY_VERSION}/site-packages/numpy/_core/lib/npy-pkg-config/mlib.ini
-lib/python${MODPY_VERSION}/site-packages/numpy/_core/lib/npy-pkg-config/npymath.ini
 lib/python${MODPY_VERSION}/site-packages/numpy/_core/lib/pkgconfig/
 lib/python${MODPY_VERSION}/site-packages/numpy/_core/lib/pkgconfig/numpy.pc
 lib/python${MODPY_VERSION}/site-packages/numpy/_core/memmap.py
@@ -434,6 +431,7 @@ lib/python${MODPY_VERSION}/site-packages
 
lib/python${MODPY_VERSION}/site-packages/numpy/_core/tests/examples/limited_api/limited_api1.c
 
lib/python${MODPY_VERSION}/site-packages/numpy/_core/tests/examples/limited_api/limited_api2.pyx
 
lib/python${MODPY_VERSION}/site-packages/numpy/_core/tests/examples/limited_api/limited_api_latest.c
+lib/python${MODPY_VERSION}/site-packages/numpy/_core/tests/examples/limited_api/limited_api_opaque.c
 
lib/python${MODPY_VERSION}/site-packages/numpy/_core/tests/examples/limited_api/meson.build
 
lib/python${MODPY_VERSION}/site-packages/numpy/_core/tests/examples/limited_api/setup.py
 lib/python${MODPY_VERSION}/site-packages/numpy/_core/tests/test__exceptions.py
@@ -579,14 +577,14 @@ lib/python${MODPY_VERSION}/site-packages
 lib/python${MODPY_VERSION}/site-packages/numpy/_utils/${MODPY_PYCACHE}/
 
lib/python${MODPY_VERSION}/site-packages/numpy/_utils/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
 
lib/python${MODPY_VERSION}/site-packages/numpy/_utils/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}pyc
-lib/python${MODPY_VERSION}/site-packages/numpy/_utils/${MODPY_PYCACHE}_convertions.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
-lib/python${MODPY_VERSION}/site-packages/numpy/_utils/${MODPY_PYCACHE}_convertions.${MODPY_PYC_MAGIC_TAG}pyc
+lib/python${MODPY_VERSION}/site-packages/numpy/_utils/${MODPY_PYCACHE}_conversions.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
+lib/python${MODPY_VERSION}/site-packages/numpy/_utils/${MODPY_PYCACHE}_conversions.${MODPY_PYC_MAGIC_TAG}pyc
 
lib/python${MODPY_VERSION}/site-packages/numpy/_utils/${MODPY_PYCACHE}_inspect.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
 
lib/python${MODPY_VERSION}/site-packages/numpy/_utils/${MODPY_PYCACHE}_inspect.${MODPY_PYC_MAGIC_TAG}pyc
 
lib/python${MODPY_VERSION}/site-packages/numpy/_utils/${MODPY_PYCACHE}_pep440.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
 
lib/python${MODPY_VERSION}/site-packages/numpy/_utils/${MODPY_PYCACHE}_pep440.${MODPY_PYC_MAGIC_TAG}pyc
-lib/python${MODPY_VERSION}/site-packages/numpy/_utils/_convertions.py
-lib/python${MODPY_VERSION}/site-packages/numpy/_utils/_convertions.pyi
+lib/python${MODPY_VERSION}/site-packages/numpy/_utils/_conversions.py
+lib/python${MODPY_VERSION}/site-packages/numpy/_utils/_conversions.pyi
 lib/python${MODPY_VERSION}/site-packages/numpy/_utils/_inspect.py
 lib/python${MODPY_VERSION}/site-packages/numpy/_utils/_inspect.pyi
 lib/python${MODPY_VERSION}/site-packages/numpy/_utils/_pep440.py
@@ -645,22 +643,35 @@ lib/python${MODPY_VERSION}/site-packages
 lib/python${MODPY_VERSION}/site-packages/numpy/core/_dtype_ctypes.py
 lib/python${MODPY_VERSION}/site-packages/numpy/core/_dtype_ctypes.pyi
 lib/python${MODPY_VERSION}/site-packages/numpy/core/_internal.py
+lib/python${MODPY_VERSION}/site-packages/numpy/core/_internal.pyi
 lib/python${MODPY_VERSION}/site-packages/numpy/core/_multiarray_umath.py
 lib/python${MODPY_VERSION}/site-packages/numpy/core/_utils.py
 lib/python${MODPY_VERSION}/site-packages/numpy/core/arrayprint.py
+lib/python${MODPY_VERSION}/site-packages/numpy/core/arrayprint.pyi
 lib/python${MODPY_VERSION}/site-packages/numpy/core/defchararray.py
+lib/python${MODPY_VERSION}/site-packages/numpy/core/defchararray.pyi
 lib/python${MODPY_VERSION}/site-packages/numpy/core/einsumfunc.py
+lib/python${MODPY_VERSION}/site-packages/numpy/core/einsumfunc.pyi
 lib/python${MODPY_VERSION}/site-packages/numpy/core/fromnumeric.py
+lib/python${MODPY_VERSION}/site-packages/numpy/core/fromnumeric.pyi
 lib/python${MODPY_VERSION}/site-packages/numpy/core/function_base.py
+lib/python${MODPY_VERSION}/site-packages/numpy/core/function_base.pyi
 lib/python${MODPY_VERSION}/site-packages/numpy/core/getlimits.py
+lib/python${MODPY_VERSION}/site-packages/numpy/core/getlimits.pyi
 lib/python${MODPY_VERSION}/site-packages/numpy/core/multiarray.py
+lib/python${MODPY_VERSION}/site-packages/numpy/core/multiarray.pyi
 lib/python${MODPY_VERSION}/site-packages/numpy/core/numeric.py
+lib/python${MODPY_VERSION}/site-packages/numpy/core/numeric.pyi
 lib/python${MODPY_VERSION}/site-packages/numpy/core/numerictypes.py
+lib/python${MODPY_VERSION}/site-packages/numpy/core/numerictypes.pyi
 lib/python${MODPY_VERSION}/site-packages/numpy/core/overrides.py
 lib/python${MODPY_VERSION}/site-packages/numpy/core/overrides.pyi
 lib/python${MODPY_VERSION}/site-packages/numpy/core/records.py
+lib/python${MODPY_VERSION}/site-packages/numpy/core/records.pyi
 lib/python${MODPY_VERSION}/site-packages/numpy/core/shape_base.py
+lib/python${MODPY_VERSION}/site-packages/numpy/core/shape_base.pyi
 lib/python${MODPY_VERSION}/site-packages/numpy/core/umath.py
+lib/python${MODPY_VERSION}/site-packages/numpy/core/umath.pyi
 lib/python${MODPY_VERSION}/site-packages/numpy/ctypeslib/
 lib/python${MODPY_VERSION}/site-packages/numpy/ctypeslib/__init__.py
 lib/python${MODPY_VERSION}/site-packages/numpy/ctypeslib/__init__.pyi
@@ -731,14 +742,10 @@ lib/python${MODPY_VERSION}/site-packages
 
lib/python${MODPY_VERSION}/site-packages/numpy/f2py/_backends/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}pyc
 
lib/python${MODPY_VERSION}/site-packages/numpy/f2py/_backends/${MODPY_PYCACHE}_backend.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
 
lib/python${MODPY_VERSION}/site-packages/numpy/f2py/_backends/${MODPY_PYCACHE}_backend.${MODPY_PYC_MAGIC_TAG}pyc
-lib/python${MODPY_VERSION}/site-packages/numpy/f2py/_backends/${MODPY_PYCACHE}_distutils.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
-lib/python${MODPY_VERSION}/site-packages/numpy/f2py/_backends/${MODPY_PYCACHE}_distutils.${MODPY_PYC_MAGIC_TAG}pyc
 
lib/python${MODPY_VERSION}/site-packages/numpy/f2py/_backends/${MODPY_PYCACHE}_meson.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
 
lib/python${MODPY_VERSION}/site-packages/numpy/f2py/_backends/${MODPY_PYCACHE}_meson.${MODPY_PYC_MAGIC_TAG}pyc
 lib/python${MODPY_VERSION}/site-packages/numpy/f2py/_backends/_backend.py
 lib/python${MODPY_VERSION}/site-packages/numpy/f2py/_backends/_backend.pyi
-lib/python${MODPY_VERSION}/site-packages/numpy/f2py/_backends/_distutils.py
-lib/python${MODPY_VERSION}/site-packages/numpy/f2py/_backends/_distutils.pyi
 lib/python${MODPY_VERSION}/site-packages/numpy/f2py/_backends/_meson.py
 lib/python${MODPY_VERSION}/site-packages/numpy/f2py/_backends/_meson.pyi
 
lib/python${MODPY_VERSION}/site-packages/numpy/f2py/_backends/meson.build.template
@@ -805,6 +812,8 @@ lib/python${MODPY_VERSION}/site-packages
 
lib/python${MODPY_VERSION}/site-packages/numpy/f2py/tests/${MODPY_PYCACHE}test_f2cmap.${MODPY_PYC_MAGIC_TAG}pyc
 
lib/python${MODPY_VERSION}/site-packages/numpy/f2py/tests/${MODPY_PYCACHE}test_f2py2e.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
 
lib/python${MODPY_VERSION}/site-packages/numpy/f2py/tests/${MODPY_PYCACHE}test_f2py2e.${MODPY_PYC_MAGIC_TAG}pyc
+lib/python${MODPY_VERSION}/site-packages/numpy/f2py/tests/${MODPY_PYCACHE}test_inplace.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
+lib/python${MODPY_VERSION}/site-packages/numpy/f2py/tests/${MODPY_PYCACHE}test_inplace.${MODPY_PYC_MAGIC_TAG}pyc
 
lib/python${MODPY_VERSION}/site-packages/numpy/f2py/tests/${MODPY_PYCACHE}test_isoc.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
 
lib/python${MODPY_VERSION}/site-packages/numpy/f2py/tests/${MODPY_PYCACHE}test_isoc.${MODPY_PYC_MAGIC_TAG}pyc
 
lib/python${MODPY_VERSION}/site-packages/numpy/f2py/tests/${MODPY_PYCACHE}test_kind.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
@@ -898,6 +907,8 @@ lib/python${MODPY_VERSION}/site-packages
 lib/python${MODPY_VERSION}/site-packages/numpy/f2py/tests/src/f2cmap/
 
lib/python${MODPY_VERSION}/site-packages/numpy/f2py/tests/src/f2cmap/.f2py_f2cmap
 
lib/python${MODPY_VERSION}/site-packages/numpy/f2py/tests/src/f2cmap/isoFortranEnvMap.f90
+lib/python${MODPY_VERSION}/site-packages/numpy/f2py/tests/src/inplace/
+lib/python${MODPY_VERSION}/site-packages/numpy/f2py/tests/src/inplace/foo.f
 lib/python${MODPY_VERSION}/site-packages/numpy/f2py/tests/src/isocintrin/
 
lib/python${MODPY_VERSION}/site-packages/numpy/f2py/tests/src/isocintrin/isoCtests.f90
 lib/python${MODPY_VERSION}/site-packages/numpy/f2py/tests/src/kind/
@@ -929,6 +940,8 @@ lib/python${MODPY_VERSION}/site-packages
 lib/python${MODPY_VERSION}/site-packages/numpy/f2py/tests/src/regression/
 lib/python${MODPY_VERSION}/site-packages/numpy/f2py/tests/src/regression/AB.inc
 
lib/python${MODPY_VERSION}/site-packages/numpy/f2py/tests/src/regression/assignOnlyModule.f90
+lib/python${MODPY_VERSION}/site-packages/numpy/f2py/tests/src/regression/complex_struct_compat.f90
+lib/python${MODPY_VERSION}/site-packages/numpy/f2py/tests/src/regression/complex_struct_compat.pyf
 
lib/python${MODPY_VERSION}/site-packages/numpy/f2py/tests/src/regression/datonly.f90
 
lib/python${MODPY_VERSION}/site-packages/numpy/f2py/tests/src/regression/f77comments.f
 
lib/python${MODPY_VERSION}/site-packages/numpy/f2py/tests/src/regression/f77fixedform.f95
@@ -984,6 +997,7 @@ lib/python${MODPY_VERSION}/site-packages
 lib/python${MODPY_VERSION}/site-packages/numpy/f2py/tests/test_docs.py
 lib/python${MODPY_VERSION}/site-packages/numpy/f2py/tests/test_f2cmap.py
 lib/python${MODPY_VERSION}/site-packages/numpy/f2py/tests/test_f2py2e.py
+lib/python${MODPY_VERSION}/site-packages/numpy/f2py/tests/test_inplace.py
 lib/python${MODPY_VERSION}/site-packages/numpy/f2py/tests/test_isoc.py
 lib/python${MODPY_VERSION}/site-packages/numpy/f2py/tests/test_kind.py
 lib/python${MODPY_VERSION}/site-packages/numpy/f2py/tests/test_mixed.py

Reply via email to