Documentation for a newer release is available. View Latest

Canvis a Fedora 41 per als desenvolupadors

Python 3.13

Fedora 41 proporciona Python 3.13, l’última versió major del llenguatge Python. Per a una llista de canvis en aquesta versió, consulteu la documentació upstream, especialment la secció Portabilitat a Python 3.13.

A més, PythonC ara es construeix amb l’indicador del compilador -03 a Fedora, que s’alinea amb com es construeix Python upstream, i proporciona una millora notable del rendiment (per exemple, 1.04x més ràpid en la mitjana geomètrica de pyperformance). Això només afecta l’intèrpret i la biblioteca estàndard de Python, no cap mòdul d’extensió de tercers construït com a RPM o en sistemes de desenvolupadors.

Notes sobre la migració de paquets pip instal·lats per l’usuari

Quan actualitzeu de Fedora 40 a Fedora 41, la versió principal de l’intèrpret de Python canvia de 3.12 a 3.13. Si teniu paquets Python instal·lats utilitzant pip, heu de completar el següent procediment per migrar-los a la nova versió:

  1. Instal·leu la versió de Python principal anterior:

    sudo dnf install python3.12
  2. Obteniu pip per a la versió de Python principal anterior:

    python3.12 -m ensurepip --user
  3. Observeu els paquets instal·lats:

    python3.12 -m pip list
  4. Desa la llista amb versions específiques:

    python3.12 -m pip freeze > installed.txt
  5. Instal·leu els mateixos paquets per a la versió ara predeterminada:

    python3 -m pip install --user -r installed.txt
  6. Desinstal·leu els paquets instal·lats per l’usuari per a 3.12; això assegura una correcta eliminació dels fitxers a ~/.local/bin:

    python3.12 -m pip uninstall $(python3.12 -m pip list --user --format freeze | cut -d= -f1)
  7. Opcionalment, netegeu l’estructura de directoris ara buida:

    rm -rf ~/.local/lib/python3.12/
  8. Opcionalment, elimineu la versió de Python innecessària:

    sudo dnf remove python3.12

Addicionalment, si teniu paquets pip instal·lats utilitzant sudo, executeu les següents ordres abans d’executar el pas final anterior que elimina `python3.12`, o instal·leu-lo de nou temporalment:

  1. Obteniu pip per a la versió de Python principal anterior per a root:

    sudo python3.12 -m ensurepip
  2. Observeu els paquets instal·lats al sistema:

    sudo python3.12 -m pip list
  3. Desinstal·leu els paquets instal·lats per a 3.12; això assegura una correcta eliminació dels fitxers a /usr/local/bin:

    sudo python3.12 -m pip uninstall $(python3.12 -m pip list | cut -d" " -f1)
  4. Opcionalment, netegeu l’estructura de directoris ara buida:

    sudo rm -rf /usr/local/lib*/python3.12/

Si heu seguit el primer procediment, els paquets ja estan instal·lats per al vostre compte d’usuari, que és l’opció preferida. Eviteu utilitzar sudo pip en el futur; aquestes instruccions només tenen la intenció de recuperar usuaris que ja han utilitzat sudo pip en el passat.

Pytest 8

Pytest és un marc de proves per a projectes basats en Python. Amb Pytest podeu escriure casos de prova senzills i escalables per al vostre codi. Pytest 8 ja està disponible, que elimina moltes funcions depreciades i introdueix alguns canvis disruptius. Les actualitzacions notables inclouen:

  • Diferències millorades que pytest imprimeix quan falla l’afirmació.

  • El mètode intern FixtureManager.getfixtureclosure ha canviat. Els connectors que utilitzen aquest mètode o que subclasifiquen el component FixtureManager i sobreescriuen FixtureManager.getfixtureclosure, hauran d’adaptar-se.

  • Ara s’utilitzen internament els wrappers de ganxo new-style.

  • Sanejada la gestió del paràmetre predeterminat en definir opcions de configuració.

  • Alguns paquets probablement fallaran en la construcció.

Per a més detalls, vegeu les notes de la versió upstream.

PyTorch 2.4

Fedora 41 proporciona PyTorch versió 2.4, l’última upstream d’aquesta popular biblioteca de Python per a l’aprenentatge profund utilitzant CPUs i GPUs.

Per a més informació, vegeu l’anunci de la versió upstream i les notes de la versió.

ROCm 6.2

ROCm 6.2 és l’última iteració de les biblioteques de còmput d’AMD que funcionen amb el nucli linux per permetre als usuaris executar càrregues de treball de còmput a les seves GPUs. S’habiliten tantes GPUs com sigui possible perquè l’acceleració oberta estigui disponible i sigui fàcil per a una audiència tan àmplia com sigui possible. També està integrat amb PyTorch a Fedora 41. Vegeu les notes de la versió upstream per a més detalls.

Retirada de Python 2

El paquet python2.7 s’ha retirat sense substitució de Fedora Linux 41. No hi haurà Python 2 a Fedora 41 o posterior, a part de PyPy. Els paquets que requereixin python2.7 en temps d’execució o de construcció s’hauran d’actualitzar per utilitzar Python 3, o també es retiraran.

Golang 1.23

L’última versió estable d’aquest llenguatge de programació ja està disponible a Fedora 41. Els canvis notables inclouen:

  • La clàusula range al bucle for-range accepta funcions iteradores com a expressions de rang. Els tipus suportats de funcions iteradores són:

    • func(func() bool)

    • func(func(K) bool)

    • func(func(K, V) bool)

    Les crides de la funció argument de l’iterador produeixen els valors d’iteració per al bucle for-range.

  • La cadena d’eines Go pot recollir estadístiques d’ús i trencament. Aquestes es coneixen com a "Go telemetry" i representen un sistema d’opció controlat per l’ordre go telemetry.

  • La variable d’entorn GOROOT_FINAL ja no funciona. Instal·leu un enllaç simbòlic en lloc de reubicar o copiar el binari go si la vostra distribució instal·la l’ordre go en una ubicació diferent de $GOROOT/bin/go.

  • El missatge de traça imprès pel temps d’execució després d’un error fatal ara sagna la segona i les línies posteriors del missatge amb una sola tabulació.

  • Canvis significatius en la implementació dels tipus time.Timer i time.Ticker.

Per a més detalls, vegeu les notes de la versió upstream.

Perl 5.40

L’última versió estable d’aquest llenguatge de programació ja està disponible a Fedora 41. Els canvis notables inclouen:

  • Nova paraula clau CLASS

  • Atribut :reader per a variables de camp. Això sol·licita que es creï automàticament un mètode d’accés que retorni el valor de la variable de camp de la instància donada.

  • En processar opcions de línia d’ordres, Perl permet un espai entre l’interruptor -M i el nom del mòdul després d’ell.

  • S’han afegit les funcions inf i nan (experimentals) a l’espai de noms builtin. Actuen com a constants que produeixen el valor infinit de coma flotant i Not-a-Number respectivament.

  • Cridar el mètode import d’un paquet desconegut produeix un avís.

  • La sintaxi de l’operador return ara rebutja objectes indirectes.

  • L’ús de goto per saltar d’un àmbit extern a un àmbit intern està depreciat i s’eliminarà completament a Perl 5.42.

Per a més detalls, vegeu les notes de la versió upstream.

NodeJS 22.0

Fedora 41 ara inclou Node.js 22.x com a motor de servidor JavaScript predeterminat de Node.js. Si les vostres aplicacions encara no estan llestes per a aquesta versió més nova, hauran de modificar-se per dependre del paquet de compatibilitat nodejs20 i confiar en /usr/bin/node20 en lloc de /usr/bin/node per al funcionament.

Haskell GHC 9.6 i Stackage LTS 22

Per a Fedora 41, el paquet principal del compilador GHC Haskell ha passat de la versió 9.4.5 a l’última versió estable 9.6.6 (rebasant el paquet ghc del paquet ghc9.6). Juntament amb això, els paquets Haskell a Stackage (la distribució estable de paquets font Haskell) s’han actualitzat des de les versions a LTS 21 a l’última versió LTS 22. Els paquets Haskell que no estan a Stackage s’han actualitzat a l’última versió adequada al repositori de paquets Hackage upstream.

Per a informació completa sobre aquesta versió, vegeu les notes de la versió upstream i la guia de migració.

Actualització de la cadena d’eines GNU

La cadena d’eines GNU a Fedora 41 s’ha actualitzat a:

  • Compilador GNU C (gcc) 14.1+

  • Utilitats Binaries GNU (binutils) 2.42+

  • Biblioteca GNU C (glibc) 2.40

  • Depurador GNU (gdb) 14+

Vegeu també les notes de la versió upstream per a GCC, Binutils, GLibC NEWS, i GDB NEWS.

LLVM 19

Els subprojectes LLVM a Fedora s’han actualitzat a la versió 19.

S’han afegit paquets de compatibilitat clang18, llvm18, lld18, compiler-rt18 i libomp18 per assegurar que els paquets que actualment depenen de les biblioteques clang i llvm versió 18 continuïn funcionant. Els paquets de compatibilitat anteriors presents a Fedora 40, com ara llvm17, clang17, etc. s’han retirat.

Vegeu les Notes de la versió LLVM 19 per a informació addicional sobre aquesta versió.