Bienvenue sur IndexError.

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

Mais aussi sur les technos front comme React, Angular, Typescript et Javascript en général.

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 (4,984 points)
edité 20-Jan-2015 par Sam
...