C’était l’objectif de Poetry v2 qui a été atteinds il me semble.
Poetry gère déjà ces points, non ?
C’est sûr que le fait que ça soit écrit en Rust rends l’outil plus rapide, comme pour Ruff. Ces deux outils développés par l’entreprise Astral, qui a les moyens financiers, produits des logiciels bien plus compétitifs que des projets communautaires.
Oui, je liste tout ce que fait UV, même si cela est aussi possible dans Poetry.
Pour la gestion de l’environnement de développement Poetry proposait une gestion maison, par défaut, en plus de venv. Je la désactivais dans le container de ma CI/CD car inutile dans une image Python à usage unique et temporaire. UV ne fait que gérer venv.
Poetry est vraiment très bien pour tout, sauf pour la gestion des dépendances. Et c’est surtout ce qui m’intéresse. Combien de fois j’ai eu des crash de Poetry qui te laisse en plan avec un message d’erreur. Ou bien devoir attendre 6 minutes pour faire une mise à jour des dépendances. j’étais souvent obligé de repasser par pip pour comprendre les problèmes et les corriger.
Pour ma CI/CD, je passe de 3 minutes à 28 secondes ! Et avant la durée était longue et surtout variable. Maintenant elle est courte et immuable.
Encore une fois, Poetry me convenait jusqu’au moment où il s’est figé dans le gitllab-runner. J’ai passé 2 jours à essayer de le réparer sans succès. Obligé de basculer sur UV. Et heureusement, UV a répondu présent et amélioré ma CI/CD.
Je me suis posé la question si c’est une bonne pratique que de ne pas utiliser de venv dans un conteneur en CI/CD. Le projet Poetry recommande son usage même dans l’environnement conteneur. Ils ne précisent pour l’usage en CI/CD.
> This is why it is recommended to always create a virtual environment. This is also true in Docker containers, as they might contain additional Python packages as well.
Oui, mais à partir du moment où c’est nous qui créons une image avec les dépendances Python dont on a besoin, préinstallées, et qu’on utilise pas “le système” du container pour autre chose que le build et les tests du projet, alors on ne risque pas grand chose, amha.