Dois-je changer mon code Python si je mets à jour mon Ubuntu?

11

J'ai un logiciel que je développe en Python 3 depuis des années. Jusqu'à aujourd'hui, j'utilisais Ubuntu Desktop 11.04 mais maintenant je veux passer à une version supérieure d'Ubuntu.

Dois-je rester sur Ubuntu 11.04 pour ne pas avoir à modifier certaines parties du code source de mon logiciel en raison de nouveaux changements dans les versions supérieures d'Ubuntu?

Une version récente d'Ubuntu n'affectera-t-elle en rien mon logiciel?

Sylvain Pineau
la source
18
Ce n'est vraiment pas une évidence pour moi: mettez à jour le 14.04, si quelque chose est cassé dans votre logiciel: corrigez-le. C'est un excellent exercice pour éviter la pourriture logicielle. Le type de problème que vous pourriez rencontrer concerne les dépendances. Vous pouvez les tester à l'avance dans un virtualenv.
don.joey
6
@begueradj Je ne veux pas minimiser l'effort que cela va prendre ni annuler vos raisons. C'est juste: soit vous faites des efforts, soit votre logiciel ne va vraiment plus durer très longtemps. Vous pouvez passer à la version 12.04, mais rester sur une version EOL est problématique. Et le problème ne va pas disparaître de lui-même ...
don.joey
5
@begueradj - veuillez modifier votre question et donner quelques détails sur votre logiciel. Décrivez ce qu'il fait. Décrivez la boîte à outils que vous utilisez (par exemple GTK? QT?). Décrivez de quel logiciel tiers il dépend (par exemple une version spécifique de Firefox? Webkit?). Décrivez les dépendances logicielles pour construire votre logiciel. Sans les informations ci-dessus, vous n'obtiendrez pas de réponse spécifique à votre question. Vous obtiendrez simplement une réponse générale comme vous l'avez actuellement.
fossfreedom
3
11.04 a atteint la fin de sa vie il y a un an et demi .. vous devriez avoir mis à jour depuis longtemps.
psusi

Réponses:

3

Sur la base de vos commentaires, vous avez testé avec succès votre logiciel sur des machines virtuelles, ce qui est une bonne nouvelle.

Mais en tant que développeur d'applications, vous devez être prêt à adapter votre code aux nouvelles versions, sinon il sera rapidement abandonné.

Maintenant, pour vous assurer qu'il continuera à fonctionner avec les nouvelles versions d'Ubuntu, je vous encourage fortement à le maintenir en tant que package et à fournir une suite de tests complète pour votre application et à l'appeler pendant le processus de construction du package (par exemple en appelant setup.py testdans votre debian/rules override_dh_auto_testsection ).

Vous pouvez facilement configurer des versions quotidiennes de votre package dans un ppa en utilisant une recette bzr-builder . De cette façon, vous serez averti de tous les échecs de build causés par de nouvelles versions de logiciels ou des dépendances cassées.

Les nouvelles versions sont généralement ouvertes au développement quelques jours après l'annonce officielle de la sortie. Regardez notre page ppa , Utopic fait maintenant partie de la série de distribution que nous construisons pour:

entrez la description de l'image ici

Sylvain Pineau
la source
3
Pourquoi avez-vous 2 réponses à cette même question? De plus, autopkgtest ne fonctionne pas de cette façon. Et comment cela répond-il réellement à la question mieux ou plus précisément que n'importe laquelle des autres questions?
dobey
J'ai posté une deuxième réponse pendant la période de prime. Cette fois pour se concentrer sur la façon d'éviter les problèmes de mise à jour en espérant apporter ce que l'OP attendait vraiment (car d'après son commentaire, je savais que son application fonctionne correctement avec le 14.04)
Sylvain Pineau
Je vous recommande de poser une autre question pour y mettre votre réponse. BTW, je voudrais réparer la partie autopgktest. @dobey a raison, cela ne fonctionne pas de cette façon.
Braiam
@dobey autopkgtest corrigé / supprimé de ma réponse.
Sylvain Pineau
@Braiam autopkgtest corrigé / supprimé de ma réponse
Sylvain Pineau
13

Non, vous ne devez pas rester le 11.04. Le support est en fin de vie depuis octobre 2012. Si vous souhaitez un support, vous devez le mettre à niveau, au moins vers la version 12.04 (qui sera prise en charge pendant trois ans de plus).

De plus, même les versions les plus récentes d'Ubuntu incluent Python 3.x par défaut, dans le but de supprimer complètement Python 2.x de l'installation par défaut.

Vous pouvez rencontrer des problèmes lors de l'exécution de votre code sous une version plus récente de Python 3.x, mais vous ne devriez en général avoir aucun problème. En tant que développeur, vous devez également être prêt à faire face à de tels problèmes, quelle que soit la version d'Ubuntu sur laquelle vous vous trouvez. Toute bibliothèque que vous utilisez, ou Python lui-même, pourrait avoir un bogue dont votre code dépend du comportement, et si ce bogue est corrigé, votre programme pourrait se comporter différemment de ce que vous attendiez précédemment.

dobey
la source
11

Difficile de donner une réponse définitive sans une description de votre candidature. Puisque vous utilisez Python3, au moins vous n'êtes pas limité avec la branche Python2.x (il n'y aura pas de Python 2.8).

Maintenant, quelques avertissements qui peuvent s'appliquer à votre application, avec Python3, de nombreux packages sont désormais obsolètes simplement parce que la meilleure façon d'accéder à GLib / GObject / GIO / GTK + est d'utiliser Python GObject Introspection (alias PyGI).

Enfin, il existe encore quelques différences mineures entre les différentes versions de python3 (par exemple, Argparse ne se comporte pas exactement de la même manière avec python 3.2 et 3.3.

Une chose que vous pouvez essayer est de démarrer une machine virtuelle 14.04 et de tester votre code avec python3.4.

Sylvain Pineau
la source
Je ne changerai pas ma version Python (c'est impossible), je suis plus préoccupé par la façon dont une nouvelle version d'Ubuntu pourrait affecter le code source de mon logiciel.
Quelle version supportez-vous officiellement, 3.2?
Sylvain Pineau
J'utilise la version 3.1.3
Je vous encourage à tester votre application avec python3.2 (démarrez une VM 12.04 et sudo apt-get install python3). Vous pouvez également consulter la note de publication de python3.2 mais pour autant que je sache, python3.2 n'était que des tonnes d'améliorations par rapport à la branche 3.1.x (argparse en était une)
Sylvain Pineau
1
Pour les programmes python3, les versions mises à niveau de python fournissent simplement des moyens encore plus efficaces d'effectuer des tâches complexes. Python3.4 par exemple, introduit asyncio et cela me permettra de me débarrasser des problèmes de boucle principale / thread glib vraiment complexes. J'ai mis une note sur argparse parce que j'ai été piégé dans les récents changements mais ce n'est pas un gros problème. Encore une fois, testez votre sw avec les versions récentes (3.2 puis 3.4 avec 14.04) mais comme d'autres réponses disent que vous ne devriez pas rencontrer de problèmes majeurs
Sylvain Pineau
2

Cela dépend de votre code.Si votre code utilise des bibliothèques qui ne sont pas prises en charge, vous ne pouvez pas migrer facilement vers une version plus récente d'un système d'exploitation, mais la plupart du temps aucun problème ne se produit.

Océan
la source
pouvez-vous m'expliquer pourquoi une bibliothèque Python dépend d'une version d'Ubuntu donnée?
@begueradj Ce n'est pas le cas, mais si vous utilisez une bibliothèque Python qui n'est plus maintenue, elle pourrait avoir été supprimée de l'archive Ubuntu à un moment donné, et donc non disponible sur une version plus récente. Votre code échouerait alors. Vous pouvez bien sûr installer le package de la bibliothèque à partir d'une ancienne version d'Ubuntu ou de la source pour résoudre le problème, bien que vous n'obtiendrez aucune mise à jour pour celui-ci; ou vous pouvez corriger votre code pour utiliser une bibliothèque différente ou écrire votre propre code pour exécuter les mêmes fonctions.
dobey
comme l'a dit @dobey, certaines bibliothèques ne sont plus maintenues ou sa version plus récente rompt la compatibilité descendante. Dans le passé, j'ai des problèmes avec Turbogears lorsque je mets à niveau vers une version plus récente d'Ubuntu.
Ocean
0

Ubuntu 14.04 a des packages python3, donc ce n'est pas un problème. apt-cache search python3vous les montrera. Au-delà de cela, vous devrez lire les notes de publication pour chaque version d'Ubuntu entre 11.04 et la "version supérieure", et rechercher un changement qui cassera votre application. Ne rien savoir de votre développement m'oblige à crier YMMV, mais je suppose que vous n'aurez pas de problèmes insurmontables.

waltinator
la source
0

Si vous devez exécuter une ancienne version de Python sur Ubuntu 14.04, activez le référentiel deadsnakes . Il a les versions Python 2.3, 2.4, 2.5, 2.6, 3.1, 3.2, 3.3 pour Ubuntu 14.04. Si votre application est du code Python pur et ne dépend pas du comportement d'autres processus, elle devrait fonctionner correctement sous un ancien interpréteur.

bain
la source
0

Comme autre réponse, vous pouvez utiliser un environnement virtuel si vous avez un problème ou vous pouvez utiliser la même version de python sur 11.04 (télécharger et construire) en 14.04.

Océan
la source
Je peux sûrement tester sur des machines virtuelles (je l'ai fait), mon logiciel fonctionne bien ... pour le moment ... mais je n'ai aucune idée s'il bug plus tard à cause de la nouvelle version d'Ubuntu.
1
Parce qu'Ubuntu 14.04 est une version LTS et basée sur leur philosophie, ils ne changeront pas de version (bombe sur version majeure) et de configuration, je pense que vous ne devez pas avoir de problème.
Ocean