From Fedora Project Wiki
No edit summary
(adding tracker bug)
 
(6 intermediate revisions by 2 users not shown)
Line 1: Line 1:
= NumPy2 =
= NumPy2 =
{{Change_Proposal_Banner}}


== Summary ==
== Summary ==
Line 16: Line 14:


== Current status ==
== Current status ==
[[Category:ChangePageIncomplete]]
[[Category:ChangeAcceptedF42]]
<!-- When your change proposal page is completed and ready for review and announcement -->
<!-- When your change proposal page is completed and ready for review and announcement -->
<!-- remove Category:ChangePageIncomplete and change it to Category:ChangeReadyForWrangler -->
<!-- remove Category:ChangePageIncomplete and change it to Category:ChangeReadyForWrangler -->
Line 24: Line 22:
[[Category:SystemWideChange]]
[[Category:SystemWideChange]]


* Targeted release: [https://docs.fedoraproject.org/en-US/releases/f43/ Fedora Linux <VERSION>]
* Targeted release: [https://docs.fedoraproject.org/en-US/releases/f42/ Fedora Linux 42]
* Last updated: <!-- this is an automatic macro — you don't need to change this line -->  {{REVISIONYEAR}}-{{REVISIONMONTH}}-{{REVISIONDAY2}}  
* Last updated: <!-- this is an automatic macro — you don't need to change this line -->  {{REVISIONYEAR}}-{{REVISIONMONTH}}-{{REVISIONDAY2}}  
<!-- After the change proposal is accepted by FESCo, tracking bug is created in Bugzilla and linked to this page  
<!-- After the change proposal is accepted by FESCo, tracking bug is created in Bugzilla and linked to this page  
Line 32: Line 30:
ON_QA -> change is fully code complete
ON_QA -> change is fully code complete
-->
-->
* [Announced]
* [https://lists.fedoraproject.org/archives/list/devel-announce@lists.fedoraproject.org/thread/2GKHRODNKHKDZXZJ6J3OUN2XBYBT3TEJ/ Announced]
* [<will be assigned by the Wrangler> Discussion thread]
* [https://discussion.fedoraproject.org/t/f42-change-proposal-numpy-2-system-wide/136633 Discussion thread]
* FESCo issue: <will be assigned by the Wrangler>
* FESCo issue: [https://pagure.io/fesco/issue/3295 #3295]
* Tracker bug: <will be assigned by the Wrangler>
* Tracker bug: [https://bugzilla.redhat.com/show_bug.cgi?id=2332647 #2332647]
* Release notes tracker: <will be assigned by the Wrangler>
* Release notes tracker: <will be assigned by the Wrangler>


Line 103: Line 101:


== Upgrade/compatibility impact ==
== Upgrade/compatibility impact ==
Successfully rebuilt packages should not have any compatibility issues.
<!-- What happens to systems that have had a previous versions of Fedora installed and are updated to the version containing this change? Will anything require manual configuration or data migration? Will any existing functionality be no longer supported? -->
<!-- What happens to systems that have had a previous versions of Fedora installed and are updated to the version containing this change? Will anything require manual configuration or data migration? Will any existing functionality be no longer supported? -->


Line 146: Line 145:
== Dependencies ==
== Dependencies ==
apbs
apbs
APLpy
APLpy
arbor
arbor
astrometry
astrometry
asv
asv
aubio
aubio
blender
blender
boost
boost
bout++
bout++
cantera
cantera
coin-or-HiGHS
coin-or-HiGHS
Cython
Cython
DisplayCAL
DisplayCAL
dolfin
dolfin
espresso
espresso
flatbuffers
flatbuffers
gau2grid
gau2grid
gdal
gdal
gdl
gdl
ginga
ginga
gnuradio
gnuradio
gr-air-modes
gr-air-modes
grass
grass
h5py
h5py
ipython
ipython
lammps
lammps
libarrow
libarrow
libcint
libcint
libfreenect
libfreenect
libxc
libxc
mathgl
mathgl
Mayavi
Mayavi
mlir
mlir
mlir17
mlir17
mlpack
mlpack
moose
moose
mopac
mopac
morphio
morphio
mypaint
mypaint
myst-nb
myst-nb
nanovna-saver
nanovna-saver
netcdf4-python
netcdf4-python
nfsometer
nfsometer
NLopt
NLopt
ocaml-pyml
ocaml-pyml
onnx
onnx
onnxruntime
onnxruntime
opencv
opencv
openmeeg
openmeeg
openms
openms
openshadinglanguage
openshadinglanguage
openvdb
openvdb
paraview
paraview
PDAL
PDAL
petsc
petsc
pgzero
pgzero
plplot
plplot
ProDy
ProDy
psi4
psi4
pybind11
pybind11
pygame
pygame
pygrib
pygrib
pygsl
pygsl
PyMca
PyMca
pymol
pymol
pyplane
pyplane
pyproj
pyproj
pytest
pytest
python-adjustText
python-adjustText
python-animatplot
python-animatplot
python-annarchy
python-annarchy
python-array-api-strict
python-array-api-strict
python-arviz
python-arviz
python-ase
python-ase
python-astroML
python-astroML
python-astroplan
python-astroplan
python-astropy
python-astropy
python-astropy-healpix
python-astropy-healpix
python-astroquery
python-astroquery
python-astroscrappy
python-astroscrappy
python-autograd
python-autograd
python-basemap
python-basemap
python-bioframe
python-bioframe
python-biopython
python-biopython
python-bioread
python-bioread
python-blosc
python-blosc
python-blosc2
python-blosc2
python-bluepyopt
python-bluepyopt
python-Bottleneck
python-Bottleneck
python-boutdata
python-boutdata
python-boututils
python-boututils
python-branca
python-branca
python-brian2
python-brian2
python-brukerapi
python-brukerapi
python-cairocffi
python-cairocffi
python-calcephpy
python-calcephpy
python-cartopy
python-cartopy
python-ccdproc
python-ccdproc
python-cclib
python-cclib
python-cftime
python-cftime
python-chaospy
python-chaospy
python-cma
python-cma
python-cmake-build-extension
python-cmake-build-extension
python-cmap
python-cmap
python-collada
python-collada
python-colormath2
python-colormath2
python-colorspacious
python-colorspacious
python-contextualbandits
python-contextualbandits
python-contourpy
python-contourpy
python-cramjam
python-cramjam
python-crick
python-crick
python-cro
python-cro
python-cyipopt
python-cyipopt
python-dask
python-dask
python-deap
python-deap
python-deepdiff
python-deepdiff
python-dijitso
python-dijitso
python-dipy
python-dipy
python-distributed
python-distributed
python-ducc0
python-ducc0
python-duecredit
python-duecredit
python-earthpy
python-earthpy
python-eccodes
python-eccodes
python-efel
python-efel
python-elasticsearch
python-elasticsearch
python-elephant
python-elephant
python-emcee
python-emcee
python-ephyviewer
python-ephyviewer
python-exdir
python-exdir
python-ezdxf
python-ezdxf
python-fastavro
python-fastavro
python-fast-simplification
python-fast-simplification
python-ffc
python-ffc
python-fiat
python-fiat
python-fiona
python-fiona
python-fireflyalgorithm
python-fireflyalgorithm
python-fisx
python-fisx
python-fitsio
python-fitsio
python-folium
python-folium
python-formulaic
python-formulaic
python-fsleyes
python-fsleyes
python-fsleyes-props
python-fsleyes-props
python-fsleyes-widgets
python-fsleyes-widgets
python-fslpy
python-fslpy
python-fsspec
python-fsspec
python-geomdl
python-geomdl
python-geopandas
python-geopandas
python-geotiler
python-geotiler
python-glymur
python-glymur
python-gradunwarp
python-gradunwarp
python-graph-tool
python-graph-tool
python-gsd
python-gsd
python-h5io
python-h5io
python-hamcrest
python-hamcrest
python-hdf5storage
python-hdf5storage
python-hdmf
python-hdmf
python-healpy
python-healpy
python-hypothesis
python-hypothesis
python-igraph
python-igraph
python-imagecodecs
python-imagecodecs
python-imageio
python-imageio
python-imbalanced-learn
python-imbalanced-learn
python-img2pdf
python-img2pdf
python-indexed_gzip
python-indexed_gzip
python-inkex
python-inkex
python-inspyred
python-inspyred
python-intern
python-intern
python-joblib
python-joblib
python-jsonpickle
python-jsonpickle
python-klusta
python-klusta
python-lazyarray
python-lazyarray
python-lazy-loader
python-lazy-loader
python-lazy-ops
python-lazy-ops
python-lfpy
python-lfpy
python-lfpykit
python-lfpykit
python-libNeuroML
python-libNeuroML
python-libpysal
python-libpysal
python-llama-cpp-python
python-llama-cpp-python
python-logdetective
python-logdetective
python-lqrt
python-lqrt
python-lsp-server
python-lsp-server
python-mapbox-earcut
python-mapbox-earcut
python-mapclassify
python-mapclassify
python-matplotlib
python-matplotlib
python-meautility
python-meautility
python-meshio
python-meshio
python-missingno
python-missingno
python-mizani
python-mizani
python-mmtf
python-mmtf
python-mne
python-mne
python-mne-bids
python-mne-bids
python-mockito
python-mockito
python-mrcfile
python-mrcfile
python-multiecho
python-multiecho
python-music21
python-music21
python-nashpy
python-nashpy
python-ndindex
python-ndindex
python-neatdend
python-neatdend
python-neo
python-neo
python-netpyne
python-netpyne
python-neurodsp
python-neurodsp
python-neurom
python-neurom
python-neurosynth
python-neurosynth
python-niaaml
python-niaaml
python-niaarm
python-niaarm
python-niaclass
python-niaclass
python-niapy
python-niapy
python-nibabel
python-nibabel
python-nifti-mrs
python-nifti-mrs
python-nilearn
python-nilearn
python-nipy
python-nipy
python-nixio
python-nixio
python-nmrglue
python-nmrglue
python-nptyping
python-nptyping
python-numcodecs
python-numcodecs
python-numexpr
python-numexpr
python-numpoly
python-numpoly
python-numpy-stl
python-numpy-stl
python-openctm
python-openctm
python-opfunu
python-opfunu
python-optking
python-optking
python-optuna
python-optuna
python-opytimark
python-opytimark
python-opytimizer
python-opytimizer
python-orjson
python-orjson
python-pandas
python-pandas
python-pandas-datareader
python-pandas-datareader
python-partd
python-partd
python-periodictable
python-periodictable
python-photutils
python-photutils
python-pillow
python-pillow
python-pingouin
python-pingouin
python-pint
python-pint
python-plotnine
python-plotnine
python-probeinterface
python-probeinterface
python-pyABF
python-pyABF
python-pyairvisual
python-pyairvisual
python-pybbi
python-pybbi
python-pybids
python-pybids
python-pybv
python-pybv
python-pydantic-core
python-pydantic-core
python-pydapsys
python-pydapsys
python-pydicom
python-pydicom
python-pyedflib
python-pyedflib
python-pyelectro
python-pyelectro
python-pyemd
python-pyemd
python-pyerfa
python-pyerfa
python-pyface
python-pyface
python-pygmtools
python-pygmtools
python-pykdtree
python-pykdtree
python-pymapvbvd
python-pymapvbvd
python-pymatreader
python-pymatreader
python-pynn
python-pynn
python-pynwb
python-pynwb
python-pyongc
python-pyongc
python-pyopencl
python-pyopencl
python-pyopengl
python-pyopengl
python-pypet
python-pypet
python-pyphi
python-pyphi
python-pyqtgraph
python-pyqtgraph
python-pyriemann
python-pyriemann
python-pyscf
python-pyscf
python-pyshtools
python-pyshtools
python-pyside6
python-pyside6
python-pyspike
python-pyspike
python-pytest7
python-pytest7
python-pytest-arraydiff
python-pytest-arraydiff
python-pytest-doctestplus
python-pytest-doctestplus
python-pytest-randomly
python-pytest-randomly
python-pytest-regressions
python-pytest-regressions
python-python-fcl
python-python-fcl
python-pytools
python-pytools
python-pyunicorn
python-pyunicorn
python-pywt
python-pywt
python-pyxdf
python-pyxdf
python-qcelemental
python-qcelemental
python-quantities
python-quantities
python-qudida
python-qudida
python-rapidfuzz
python-rapidfuzz
python-rasterio
python-rasterio
python-ratinabox
python-ratinabox
python-redis
python-redis
python-reproject
python-reproject
python-Rtree
python-Rtree
python-SALib
python-SALib
python-scikit-image
python-scikit-image
python-scikit-learn
python-scikit-learn
python-scikit-misc
python-scikit-misc
python-seaborn
python-seaborn
python-sep
python-sep
python-sgp4
python-sgp4
python-shapely
python-shapely
python-simframe
python-simframe
python-sklearn-genetic
python-sklearn-genetic
python-sklearn-genetic-opt
python-sklearn-genetic-opt
python-sklearn-nature-inspired-algorithms
python-sklearn-nature-inspired-algorithms
python-smart_open
python-smart_open
python-snuggs
python-snuggs
python-sortedcontainers
python-sortedcontainers
python-sphinx-gallery
python-sphinx-gallery
python-sport-activities-features
python-sport-activities-features
python-spyking-circus
python-spyking-circus
python-stackprinter
python-stackprinter
python-statsmodels
python-statsmodels
python-steps
python-steps
python-stochastic
python-stochastic
python-succulent
python-succulent
python-superqt
python-superqt
python-supersmoother
python-supersmoother
python-tables
python-tables
python-tabulate
python-tabulate
python-textdistance
python-textdistance
python-tifffile
python-tifffile
python-tinygrad
python-tinygrad
python-toml
python-toml
python-torch
python-torch
python-torchvision
python-torchvision
python-tqdm
python-tqdm
python-Traits
python-Traits
python-traitsui
python-traitsui
python-transforms3d
python-transforms3d
python-trimesh
python-trimesh
python-trx-python
python-trx-python
python-tvb-gdist
python-tvb-gdist
python-typish
python-typish
python-uranium
python-uranium
python-vedo
python-vedo
python-vhacdx
python-vhacdx
python-wavio
python-wavio
python-wordcloud
python-wordcloud
python-wxpython4
python-wxpython4
python-xarray
python-xarray
python-xarray-einstats
python-xarray-einstats
python-yfinance
python-yfinance
python-zarr
python-zarr
python-zmq
python-zmq
python-zoidberg
python-zoidberg
pythran
pythran
quantum-espresso
quantum-espresso
root
root
R-reticulate
R-reticulate
scipy
scipy
setzer
setzer
shybrid
shybrid
SoapySDR
SoapySDR
spec2nii
spec2nii
spglib
spglib
stats-collect
stats-collect
sympy
sympy
uhd
uhd
urh
urh
veusz
veusz
vigra
vigra
wult
wult
xcfun
xcfun
xtensor
xtensor
xtensor-python
xtensor-python


Line 511: Line 866:


<!-- If you cannot complete your feature by the final development freeze, what is the backup plan?  This might be as simple as "Revert the shipped configuration".  Or it might not (e.g. rebuilding a number of dependent packages).  If you feature is not completed in time we want to assure others that other parts of Fedora will not be in jeopardy.  -->
<!-- If you cannot complete your feature by the final development freeze, what is the backup plan?  This might be as simple as "Revert the shipped configuration".  Or it might not (e.g. rebuilding a number of dependent packages).  If you feature is not completed in time we want to assure others that other parts of Fedora will not be in jeopardy.  -->
* Contingency mechanism: (What to do?  Who will do it?) N/A (not a System Wide Change)  <!-- REQUIRED FOR SYSTEM WIDE CHANGES -->
* 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. <!-- REQUIRED FOR SYSTEM WIDE CHANGES -->
<!-- When is the last time the contingency mechanism can be put in place?  This will typically be the beta freeze. -->
<!-- When is the last time the contingency mechanism can be put in place?  This will typically be the beta freeze. -->
* Contingency deadline: N/A (not a System Wide Change)  <!-- REQUIRED FOR SYSTEM WIDE CHANGES -->
* Contingency deadline: Beta Freeze <!-- REQUIRED FOR SYSTEM WIDE CHANGES -->
<!-- Does finishing this feature block the release, or can we ship with the feature in incomplete state? -->
<!-- Does finishing this feature block the release, or can we ship with the feature in incomplete state? -->
* Blocks release? N/A (not a System Wide Change), Yes/No <!-- REQUIRED FOR SYSTEM WIDE CHANGES -->
* Blocks release? No <!-- REQUIRED FOR SYSTEM WIDE CHANGES -->




Line 522: Line 877:


<!-- REQUIRED FOR SYSTEM WIDE CHANGES -->
<!-- REQUIRED FOR SYSTEM WIDE CHANGES -->
N/A (not a System Wide Change)
Links provided above to upstream release notes. Document compat package if applicable.


== Release Notes ==
== Release Notes ==

Latest revision as of 20:16, 16 December 2024

NumPy2

Summary

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

Owner


Current status

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