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-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.
- 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
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)