NumPy2
Summary
Update the numpy package from 1.x to 2.x (1.26.4 to 2.1.3 currently).
Owner
- Name: Gwyn Ciesla
- Email: gwync@protonmail.com
Current status
- Targeted release: Fedora Linux <VERSION>
- Last updated: 2024-11-12
- Announced
- Discussion thread
- FESCo issue: <will be assigned by the Wrangler>
- Tracker bug: <will be assigned by the Wrangler>
- Release notes tracker: <will be assigned by the Wrangler>
Detailed Description
Updating numpy from the 1.x to 2.x series will Just Work for some packages. Those using the C API will need to be rebuilt. Additionally, many packages are pinned to numpy < 2, and these will need to be loosened.
Feedback
I've experimented with this in copr, as well as tracked updates to a few packages in preparation for this. One example is scipy, which was recently updated to a version supporting numpy2, and this will reduce the number of impacted packages.
Benefit to Fedora
In addition to tracking upstream and receiving more up-to-date fixes and security updates, numpy2 brings many improvements to the library:
https://numpy.org/devdocs/release/2.0.0-notes.html
https://blog.scientific-python.org/numpy/numpy2/
Scope
- Proposal owners:
Update numpy2 package to 2.1.x in f43 immediately after f42 mass branching. Help rebuild and patch impacted packages as needed.
- Other developers:
Rebuild and patch impacted packages. Most will only require a pin adjustment and/or rebuild.
- Release engineering: #Releng issue number
- Policies and guidelines: N/A (not needed for this Change)
- Trademark approval: N/A (not needed for this Change)
- Alignment with the Fedora Strategy:
Upgrade/compatibility impact
Successfully rebuilt packages should not have any compatibility issues.
Early Testing (Optional)
Do you require 'QA Blueprint' support? Y/N
How To Test
Run applications that use numpy or one of it's dependencies.
User Experience
End users should not notice any changes. Python developers will need to rebuild C API code against numpy2, and can then take advantage of new features.
Dependencies
apbs
APLpy
arbor
astrometry
asv
aubio
blender
boost
bout++
cantera
coin-or-HiGHS
Cython
DisplayCAL
dolfin
espresso
flatbuffers
gau2grid
gdal
gdl
ginga
gnuradio
gr-air-modes
grass
h5py
ipython
lammps
libarrow
libcint
libfreenect
libxc
mathgl
Mayavi
mlir
mlir17
mlpack
moose
mopac
morphio
mypaint
myst-nb
nanovna-saver
netcdf4-python
nfsometer
NLopt
ocaml-pyml
onnx
onnxruntime
opencv
openmeeg
openms
openshadinglanguage
openvdb
paraview
PDAL
petsc
pgzero
plplot
ProDy
psi4
pybind11
pygame
pygrib
pygsl
PyMca
pymol
pyplane
pyproj
pytest
python-adjustText
python-animatplot
python-annarchy
python-array-api-strict
python-arviz
python-ase
python-astroML
python-astroplan
python-astropy
python-astropy-healpix
python-astroquery
python-astroscrappy
python-autograd
python-basemap
python-bioframe
python-biopython
python-bioread
python-blosc
python-blosc2
python-bluepyopt
python-Bottleneck
python-boutdata
python-boututils
python-branca
python-brian2
python-brukerapi
python-cairocffi
python-calcephpy
python-cartopy
python-ccdproc
python-cclib
python-cftime
python-chaospy
python-cma
python-cmake-build-extension
python-cmap
python-collada
python-colormath2
python-colorspacious
python-contextualbandits
python-contourpy
python-cramjam
python-crick
python-cro
python-cyipopt
python-dask
python-deap
python-deepdiff
python-dijitso
python-dipy
python-distributed
python-ducc0
python-duecredit
python-earthpy
python-eccodes
python-efel
python-elasticsearch
python-elephant
python-emcee
python-ephyviewer
python-exdir
python-ezdxf
python-fastavro
python-fast-simplification
python-ffc
python-fiat
python-fiona
python-fireflyalgorithm
python-fisx
python-fitsio
python-folium
python-formulaic
python-fsleyes
python-fsleyes-props
python-fsleyes-widgets
python-fslpy
python-fsspec
python-geomdl
python-geopandas
python-geotiler
python-glymur
python-gradunwarp
python-graph-tool
python-gsd
python-h5io
python-hamcrest
python-hdf5storage
python-hdmf
python-healpy
python-hypothesis
python-igraph
python-imagecodecs
python-imageio
python-imbalanced-learn
python-img2pdf
python-indexed_gzip
python-inkex
python-inspyred
python-intern
python-joblib
python-jsonpickle
python-klusta
python-lazyarray
python-lazy-loader
python-lazy-ops
python-lfpy
python-lfpykit
python-libNeuroML
python-libpysal
python-llama-cpp-python
python-logdetective
python-lqrt
python-lsp-server
python-mapbox-earcut
python-mapclassify
python-matplotlib
python-meautility
python-meshio
python-missingno
python-mizani
python-mmtf
python-mne
python-mne-bids
python-mockito
python-mrcfile
python-multiecho
python-music21
python-nashpy
python-ndindex
python-neatdend
python-neo
python-netpyne
python-neurodsp
python-neurom
python-neurosynth
python-niaaml
python-niaarm
python-niaclass
python-niapy
python-nibabel
python-nifti-mrs
python-nilearn
python-nipy
python-nixio
python-nmrglue
python-nptyping
python-numcodecs
python-numexpr
python-numpoly
python-numpy-stl
python-openctm
python-opfunu
python-optking
python-optuna
python-opytimark
python-opytimizer
python-orjson
python-pandas
python-pandas-datareader
python-partd
python-periodictable
python-photutils
python-pillow
python-pingouin
python-pint
python-plotnine
python-probeinterface
python-pyABF
python-pyairvisual
python-pybbi
python-pybids
python-pybv
python-pydantic-core
python-pydapsys
python-pydicom
python-pyedflib
python-pyelectro
python-pyemd
python-pyerfa
python-pyface
python-pygmtools
python-pykdtree
python-pymapvbvd
python-pymatreader
python-pynn
python-pynwb
python-pyongc
python-pyopencl
python-pyopengl
python-pypet
python-pyphi
python-pyqtgraph
python-pyriemann
python-pyscf
python-pyshtools
python-pyside6
python-pyspike
python-pytest7
python-pytest-arraydiff
python-pytest-doctestplus
python-pytest-randomly
python-pytest-regressions
python-python-fcl
python-pytools
python-pyunicorn
python-pywt
python-pyxdf
python-qcelemental
python-quantities
python-qudida
python-rapidfuzz
python-rasterio
python-ratinabox
python-redis
python-reproject
python-Rtree
python-SALib
python-scikit-image
python-scikit-learn
python-scikit-misc
python-seaborn
python-sep
python-sgp4
python-shapely
python-simframe
python-sklearn-genetic
python-sklearn-genetic-opt
python-sklearn-nature-inspired-algorithms
python-smart_open
python-snuggs
python-sortedcontainers
python-sphinx-gallery
python-sport-activities-features
python-spyking-circus
python-stackprinter
python-statsmodels
python-steps
python-stochastic
python-succulent
python-superqt
python-supersmoother
python-tables
python-tabulate
python-textdistance
python-tifffile
python-tinygrad
python-toml
python-torch
python-torchvision
python-tqdm
python-Traits
python-traitsui
python-transforms3d
python-trimesh
python-trx-python
python-tvb-gdist
python-typish
python-uranium
python-vedo
python-vhacdx
python-wavio
python-wordcloud
python-wxpython4
python-xarray
python-xarray-einstats
python-yfinance
python-zarr
python-zmq
python-zoidberg
pythran
quantum-espresso
root
R-reticulate
scipy
setzer
shybrid
SoapySDR
spec2nii
spglib
stats-collect
sympy
uhd
urh
veusz
vigra
wult
xcfun
xtensor
xtensor-python
Contingency Plan
- Contingency mechanism: Depending on scope of packages not fixed, Gwyn will either help fix those packages, or create a compat package and patch packages to use that.
- Contingency deadline: Beta Freeze
- Blocks release? No
Documentation
Links provided above to upstream release notes. Document compat package if applicable.