Fedora est débarrassée de 99 % de son code Python 2

Fedora est débarrassée de 99 % de son code Python 2

Fedora est débarrassée de 99 % de son code Python 2

La distribution a franchi un cap dans son passage à Python 3, la branche 2.X du langage n’étant plus supportée. Le travail n’est d’ailleurs pas spécifique à Fedora, comme on a pu le voir récemment avec la sortie de Kodi 19.

Dans les commentaires sur Reddit, on peut également se rendre compte que le dernier pourcent sera peut-être le plus difficile à éliminer, car on trouve encore du code Python 2 dans Gimp, Chromium ou encore Thunderbird. 

 

Commentaires (11)


Pour Gimp le problème ne serait t’il pas résolut par la version 3 ?
Et apparemment pour Thunderbird c’est les scripts de compilation.


Quelqu’un sait pourquoi il y a eu tant de “problèmes” à passer de la version 2 à la version 3 ? sur les quelques articles que j’ai trouvé la conversion de V2 à V3 est présentée comme “facile”, voir même semble “automatisable”. Bon j’ai vu aussi qu’il y avait une affaire de variables globales qui sont gérées différemment (et là en effet, je pense que ça peut vite nécessiter de mettre les mains dans le cambouis pour corriger ça)


C’est pas mal incompatibles en fait, il y a beaucoup de différences et tu dois aussi attendre que les bibliothèques auxquelles tu dépends soit elles-mêmes mises à jour.


Pour avoir mis à jour plusieurs packages c’est pas trop compliqué, mais il faut pondérer avec le volume à traiter. (sur un petit paquet le diff fait rapidement 2-3 mo !)
Une fois mis à jour du n’as fait qu’une partie du taf : python n’est pas compilé donc les erreurs apparaissent à l’exécution, donc il faut énormément de tests ! Sur un script de compilation ça veut dire tester toutes les combinaisons de compilations (qtwebengine compile en 10h15 sur ma donc ça sera sans moi pour les tests :) )


En plus de toutes les réponses que tu as eu ci dessus, il faut prendre en compte que Python 3 est sortie il y a 12 ans ! Le support de la dernière version 2.x (la 2.7) s’est terminé en 2020 après 10 longues années. Ce que cela signifie, c’est que tout le code Python 2 qui existe encore aujourd’hui n’a très probablement plus aucun mainteneur. Donc la migration doit être faite par des développeurs qui n’ont probablement jamais touché au code qu’ils tentent de migrer et probablement sans pouvoir contacter l’auteur original pour lui poser des questions (et encore faut-il qu’il se rappelle lui même ce qu’est sensée faire cette méthode écrite il y a 15 ans).



C’est un travail de titan honnêtement.


EN direct de gentoo :) :



thunderbird et firefox sont nettoyés de python2 depuis un moment (c’était les bien scripts d’install màj depuis)



gimp foncitonne également avec python3 (c’est ma gestion des plugins python qui posent problèmes certains étant codé en python2)



Le dernier gros problème est qtwebengine / chormium.


Gentoo aussi, il me restait un seul paquet toujours dépendant de Python 2 (et maintenant supprimé des dépôts) dont la transition est difficile parce que le paquet utilise wxPython pour l’interface graphique entrainant plusieurs mises à jour si on veut prendre le chemin évident :




  • Python 2 -> 3

  • wxPython 3 -> 4

  • wxWidgets 3-> 4



J’ai pu trouver une utilité à AppImage puisqu’un volontaire en a préparé une version (103Mo quand même) depuis une autre distro (Ubuntu de mémoire) donc je ne suis pas complétement bloqué en attendant que l’upstream se mette à jour (même si j’y crois de moins en moins).


C’est un sacré taff (+4000 packages), bien joué aux différents mainteneurs. :yes:



ben51 a dit:


Pour Gimp le problème ne serait t’il pas résolut par la version 3 ? Et apparemment pour Thunderbird c’est les scripts de compilation.




On aura un Gimp 3 avant Half Life 3 ?




(quote:1857132:N.Master)
Quelqu’un sait pourquoi il y a eu tant de “problèmes” à passer de la version 2 à la version 3 ? sur les quelques articles que j’ai trouvé la conversion de V2 à V3 est présentée comme “facile”, voir même semble “automatisable”. Bon j’ai vu aussi qu’il y avait une affaire de variables globales qui sont gérées différemment (et là en effet, je pense que ça peut vite nécessiter de mettre les mains dans le cambouis pour corriger ça)




Il y a des comportement qui change entre python 2 et python 3 qui ne peuvent pas être faite de manière automatique. Par exemple en python2 7/2=3 (mais 7./2=3.5) alors qu’en python3 7/2=3.5 (il faut faire 7//2 pour obtenir le même résultat dans ce cas précis). Or comme python est faiblement typé, une même fonction peut être utilisé pour des valeurs entière et des valeurs à virgules flottante.



Le plus chiant reste les vieux modules plus maintenus et restés en python2. Tu n’a pas forcément la main dessus, et tu ne peux pas forcément faire la conversion.



Après, pour la grande majorité des scripts, passé de python 2 à python 3 est assez simple. De plus, il a eu une période de transition qui permettait d’utiliser le module __future__ pour permettre d’écrire un script en python3 mais utilisable en python 2.



tazvld a dit:


On aura un Gimp 3 avant Half Life 3 ?




On peut déjà tester la version en développement de Gimp 3.
Au vue de l’avancement on devrait l’avoir cette années.
Bon par-contre visuellement ça vas pas être un grand bouleversement.



Faudra voir la “version 4”, après l’équipe de gimp vas changer de politique de version.
En gros on sort ce qui est stable, ce qui ne l’est pas attendra une prochaine version. Et plus on bloque tout tant que tout les points de la road map ne sont pas fini.


Fermer