Bienvenue sur IndexError.

Ici vous pouvez poser des questions sur Python et le Framework Django.

Consultez la FAQ pour améliorer vos chances d'avoir des réponses à vos questions.

[setuptool] faire évoluer les dépendance d'un projet

+4 votes

j'ai commencé un projet il y a quelques moi avec un setup.py contenant les dépendances du projet dans install_requires

install_requires=[
    "APScheduler",
    "hurry.filesize",
    "python-rrdtool",
    "psutil",
    "pyinotify",
    "flask",
    "flask-sqlalchemy",
    "Flask-Babel",
    "flask-login",
    "flask-wtf",
    "flask-bcrypt",
    "flask-restful",
    "pygal",
    "jinja2",
    "requests",
]

Notez qu'il n'y a pas de version fixée, ce qui peu poser un probleme lors de l'installation sur une nouvelle machine.
Ma question est : comment garder mon environnement de développement "à jour" c'est a dire avec la dernière version des dépendance, et ainsi découvrir avant tout le monde si une évolution de dépendance va casser mon code.

demandé 19-Jan-2015 par yohann (312 points)
edité 28-Fev-2015 par foxmask

j'obterai pour une crontab avec un gros

pip install -U -r requierements.txt 

en supposant qu'on dispose d'un fichier requirements.txt contenant les moules python dont j'ai besoin (que je me serai créé avec pip freeze --local par exemple)

il faudrait probablement aussi regenerer le requierements.txt ( à la fin de la mise à jour) en remplacant les == entre le nom du module et la version par >=

3 Réponses

+4 votes
 
Meilleure réponse

Avec une version récente de pip, tu peux faire:

pip list --outdated

Ce qui te donnera un résultat du genre:

docutils (Current: 0.9.1 Latest: 0.10)
Sphinx (Current: 1.1.2 Latest: 1.1.3)
répondu 28-Fev-2015 par linovia (156 points)
sélectionné 23-Mar-2015 par yohann
+4 votes

tu as yolk, ou plutôt yolk3k: https://pypi.python.org/pypi/yolk3k/

pour checker ce qui a besoin d'être upgradé:

yolk -U

pour les upgrader:

yolk --upgrade

check la doc il y a pas mal d'autre choses.

répondu 19-Jan-2015 par Shadock (286 points)
+2 votes

Avec de l'intégration continue :

  1. Mettre un range de version supportées dans tes requirements. Par exemple 'APScheduler >= 0.3, <=0.5'
  2. Ecrire une suite de tests unittaires vérifiant le fonctionnement de ton programme.
  3. A chaque nouvelle release, tester avec yolk les nouvelles version des dépendances.
  4. Mettre à jour les versions des dépendances supportées et publier la nouvelle version du programme.

Il existe des serveurs d'intégration continue qui vont faire ça pour toi automatiquement comme http://jenkins-ci.org/

répondu 20-Jan-2015 par Sam (5,000 points)
edité 20-Jan-2015 par Sam
...