From Fedora Project Wiki
No edit summary
No edit summary
Line 113: Line 113:


== How To Test ==
== How To Test ==
Run applications that use numpy or one of it's dependencies.
<!-- This does not need to be a full-fledged document. Describe the dimensions of tests that this change implementation is expected to pass when it is done.  This can be based off of the above section if early testing has been completed. If it needs to be tested with different hardware or software configurations, indicate them.  The more specific you can be, the better the community testing can be.  
<!-- This does not need to be a full-fledged document. Describe the dimensions of tests that this change implementation is expected to pass when it is done.  This can be based off of the above section if early testing has been completed. If it needs to be tested with different hardware or software configurations, indicate them.  The more specific you can be, the better the community testing can be.  


Line 130: Line 131:


== User Experience ==
== 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.
<!-- If this change proposal is noticeable by users, how will their experiences change as a result?
<!-- If this change proposal is noticeable by users, how will their experiences change as a result?


Line 142: Line 145:


== Dependencies ==
== 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
<!-- What other packages (RPMs) depend on this package?  Are there changes outside the developers' control on which completion of this change depends?  In other words, completion of another change owned by someone else and might cause you to not be able to finish on time or that you would need to coordinate?  Other upstream projects like the kernel (if this is not a kernel change)? -->
<!-- What other packages (RPMs) depend on this package?  Are there changes outside the developers' control on which completion of this change depends?  In other words, completion of another change owned by someone else and might cause you to not be able to finish on time or that you would need to coordinate?  Other upstream projects like the kernel (if this is not a kernel change)? -->



Revision as of 16:08, 11 November 2024

NumPy2

This is a proposed Change for Fedora Linux.
This document represents a proposed Change. As part of the Changes process, proposals are publicly announced in order to receive community feedback. This proposal will only be implemented if approved by the Fedora Engineering Steering Committee.

Summary

Update the numpy package from 1.x to 2.x (1.26.4 to 2.1.3 currently).

Owner


Current status

  • Targeted release: Fedora Linux <VERSION>
  • Last updated: 2024-11-11
  • [Announced]
  • [<will be assigned by the Wrangler> 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.

  • 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

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: (What to do? Who will do it?) N/A (not a System Wide Change)
  • Contingency deadline: N/A (not a System Wide Change)
  • Blocks release? N/A (not a System Wide Change), Yes/No


Documentation

N/A (not a System Wide Change)

Release Notes