From Fedora Project Wiki

Revision as of 17:10, 11 November 2024 by Limb (talk | contribs)

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

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.

Release Notes