Changements dans Fedora 41 pour les développeurs
Python 3.13
Fedora 41 fournit Python 3.13, la dernière version majeure du langage de programmation Python. Pour connaître la liste des changements introduits dans cette version, consultez la documentation upstream, particulièrement la section Porting to Python 3.13.
De plus, PythonC est désormais compilé avec le flag -O3
dans Fedora, en accord avec les paramètres de compilation utilisés upstream, améliorant les performances de manière notable (par exemple, une moyenne géométrique pyperformance
plus rapide de x1,04). Cela affecte uniquement l’interpréteur et la bibliothèque Python standard, et n’a aucun effet sur les modules d’extension fournis au format RPM ou sur les systèmes de développement.
Notes sur la migration des paquets pip installés par l’utilisateur
En effectuant la mise à jour de Fedora 40 à Fedora 41, la version de l’interpréteur Python principal passera de la 3.12 à la 3.13. Si vous avez installé des paquets Python avec pip
, vous devez suivre la procédure suivante afin de les migrer vers la nouvelle version :
-
Installez la version principale précédente de Python :
sudo dnf install python3.12
-
Récupérez
pip
pour la version principale précédente de Python :python3.12 -m ensurepip --user
-
Observez les paquets installés :
python3.12 -m pip list
-
Enregistrez la liste contenant les versions spécifiques :
python3.12 -m pip freeze > installed.txt
-
Installez les mêmes paquets pour la version désormais par défaut :
python3 -m pip install --user -r installed.txt
-
Désinstallez les paquets installés dans votre dossier personnel ; cela garantit la suppression appropriée des fichiers dans
~/.local/bin
:python3.12 -m pip uninstall $(python3.12 -m pip list --user | cut -d" " -f1)
-
(Facultatif) Nettoyez la structure de dossiers désormais vide :
rm -rf ~/.local/lib/python3.12/
-
(Facultatif) Supprimez la version de Python qui n’est plus nécessaire :
sudo dnf remove python3.12
En outre, si vous avez installé des paquets avec pip
et sudo
, exécutez les commandes suivantes avant de suivre la dernière étape supprimant `python3.12`, ou installez-le à nouveau temporairement :
-
Récupérez
pip
pour la version principale précédente de Python pourroot
:sudo python3.12 -m ensurepip
-
Observez les paquets installés au niveau du système :
sudo python3.12 -m pip list
-
Désinstallez les paquets installés pour la version 3.12 ; cela permet de garantir une suppression adéquate des fichiers dans
/usr/local/bin
:sudo python3.12 -m pip uninstall $(python3.12 -m pip list | cut -d" " -f1)
-
(Facultatif) Nettoyez la structure de dossiers désormais vide :
sudo rm -rf /usr/local/lib*/python3.12/
Si vous avez suivi la première procédure, les paquets sont déjà installés pour votre compte d’utilisateur, ce qui est l’option préférée. Évitez d’utiliser |
Pytest 8
Pytest est un framework de test pour les projets basés sur Python. Avec Pytest, vous pouvez écrire des tests à la fois simples et évolutifs pour votre code. Pytest 8 est maintenant disponible et retire un grand nombre de fonctions obsolètes tout en introduisant des changements non rétrocompatibles. À noter :
-
L’affichage des différences lors de l’échec d’une assertion a été amélioré.
-
La méthode interne
FixtureManager.getfixtureclosure
a été modifiée. Les plugins utilisant cette méthode, ou bien se définissant comme sous-classe du composantFixtureManager
et réécrivantFixtureManager.getfixtureclosure
, devront être adaptés. -
Les hook wrappers
new-style
sont désormais utilisés en interne. -
Le traitement du paramètre par défaut lors de la définition des options de configuration est désormais effectué de manière plus sûre.
-
La compilation de certains paquets échouera probablement.
Pour plus de détails, consultez les notes de version upstream.
PyTorch 2.4
Fedora 41 fournit la version 2.4 de PyTorch, autrement dit la toute dernière version de la bibliothèque Python de deep learning.
Pour plus d’informations, consultez l’annonce de sortie upstream et les notes de version.
ROCm 6.2
ROCm 6.2 est la dernière itération des bibliothèques de calcul d’AMD. Elles fonctionnent avec le noyau Linux afin de permettre à ses utilisateur·rices d’exécuter des charges de travail de calcul sur leurs GPU. Autant de GPU que possible sont activés afin de permettre d’utiliser facilement l’accélération. Sur Fedora 41, ROCm 6.2 est également intégré à PyTorch. Consultez les notes de version upstream pour connaître les détails.
Suppression de Python 2
Le paquet python2.7
a été retiré des dépôts de Fedora Linux 41 et ne sera pas remplacé. Python 2 ne sera pas présent dans Fedora 41+, à part dans sa version PyPy. Les paquets dépendant de python2.7 à l’exécution ou à la compilation devront être mis à jour pour prendre en charge Python 3, ou être également abandonnés.
Golang 1.23
La dernière version stable du langage de programmation est maintenant disponible dans Fedora 41. Les changements à noter comprennent :
-
La clause
range
dans les bouclesfor-range
accepte maintenant les fonctions d’itérateur en tant qu’expression de limite. Les types de fonction d’itérateur pris en charge sont :-
func(func() bool)
-
func(func(K) bool)
-
func(func(K, V) bool)
Les appels à la fonction d’itérateur passée en argument produisent les valeurs requises pour la boucle
for-range
. -
-
La suite d’outils Go peut collecter des statistiques relatives à l’utilisation et aux problèmes. Il s’agit d’un système devant être activé manuellement et qui peut être contrôlé à l’aide de la commande
go telemetry
. -
La variable d’environnement
GOROOT_FINAL
ne fonctionne plus. Créez un lien symbolique au lieu de relocaliser ou de copier le binairego
si votre distribution l’installe à un emplacement autre que$GOROOT/bin/go
. -
Le message de traçage affiché par le runtime après une erreur fatale voit désormais ses lignes à partir de la deuxième être indentées d’un caractère de tabulation.
-
Changements significatifs dans l’implémentation des types
time.Timer
ettime.Ticker
.
Pour plus de détails, consultez les notes de version upstream.
Perl 5.40
La dernière version stable du langage de programmation est maintenant disponible dans Fedora 41. Les changements à noter comprennent :
-
le nouveau mot-clé
CLASS
; -
l’attribut
:reader
pour les champs, qui demande la création automatique d’un accessor retournant la valeur du champ dans une instance donnée ; -
la possibilité d’ajouter un espace entre l’option en ligne de commande
-M
et le nom du module ; -
l’ajout des fonctions expérimentales
inf
etnan
à l’espace de nomsbuiltin
. Ces fonctions ne font que retourner respectivement la valeur à virgule flottante correspondant à l’infini et la valeur Not-a-Number ; -
appeler la méthode
import
d’un paquet inconnu génère un avertissement ; -
l’opérateur
return
rejette désormais les objets indirects ; -
utiliser
goto
pour passer d’un scope extérieur à un scope intérieur est déconseillé et la possibilité sera entièrement supprimée à partir de Perl 5.42.
Pour plus de détails, consultez les notes de version upstream.
NodeJS 22.0
Fedora 41 fournit désormais par défaut le moteur JavaScript serveur Node.js 22.x. Si vos applications ne sont pas encore prêtes pour cette nouvelle version, vous devez les modifier pour qu’elles dépendent du paquet de compatibilité nodejs20
et de /usr/bin/node20
au lieu de /usr/bin/node
.
Haskell GHC 9.6 et Stackage LTS 22
Avec le passage à Fedora 41, le paquet du compilateur Haskell principal, GHC, est passé de la version 9.4.5 à la 9.6.6, soit la dernière version stable (le paquet ghc a été recréé en utilisant le paquet ghc9.6 comme base). De plus, les paquets Haskell dans Stackage (la distribution stable de paquets de code source) ont été mis à jour des versions de la LTS 21 vers celles de la LTS 22. Les paquets Haskell hors Stackage ont été mis à jour vers la dernière version appropriée dans le dépôt de paquets Hackage upstream.
Pour obtenir toutes les informations à propos de cette version, consultez les notes de version upstream et le guide de migration.
Mise à jour de la suite d’outils GNU
La suite d’outils GNU dans Fedora 41 a été mise à jour et contient désormais :
-
GNU C Compiler (
gcc
) 14.1+ -
GNU Binary Utilities (
binutils
) 2.42+ -
GNU C Library (
glibc
) 2.40 -
GNU Debugger (
gdb
) 14+
Consultez également les notes de version upstream pour GCC et Binutils, le NEWS GLibC et le NEWS GDB.
LLVM 19
Les sous-projets LLVM dans Fedora ont été mis à jour vers la version 19.
Les paquets de compatibilité clang18
, llvm18
, compiler-rt18
et libomp18
ont été ajoutés pour garantir le fonctionnement des paquets dépendant actuellement de la version 18 de Clang et des bibliothèques LLVM. Les paquets de compatibilité précédents tels que llvm17
et clang17
, présents dans Fedora 40, ont été retirés des dépôts.
Consultez les notes de version LLVM 19 pour obtenir des informations supplémentaires à propos de cette version.
Want to help? Learn how to contribute to Fedora Docs ›