Requirement version conflict
Avec le nouveau système de séparation des requirements (pour l'app, pour les tests, éventuellement pour la doc) il peut y avoir des conflits de versions de l'un à l'autre des fichiers. Exemple pour komaks, la génération du fichier de requirements.txt fait apparaitre :
certifi==2020.4.5.2
# via
# requests
# skyfield
Alors que requirements-tests.txt fait apparaitre :
certifi==2020.12.5
# via requests
Si on install les requirements en une seule fois pip install -U -r requirements.txt -r requirements-doc.txt -r requirements-linting.txt -r requirements-tests.txt
on a une erreur :
ERROR: Cannot install certifi==2020.12.5 and certifi==2020.4.5.2 because these package versions have conflicting dependencies.
The conflict is caused by:
The user requested certifi==2020.4.5.2
The user requested certifi==2020.12.5
To fix this you could try to:
1. loosen the range of package versions you've specified
2. remove package versions to allow pip attempt to solve the dependency conflict
ERROR: ResolutionImpossible: for help visit https://pip.pypa.io/en/latest/user_guide/#fixing-conflicting-dependencies
La solution immediate adopté pour komaks est de séparer l'installation des requirements dans le fichier gitlab-ci.yml
(https://gitlab.com/hashbangfr/komaks/-/blob/develop/.gitlab-ci.yml#L10). Cependant la version installé du paquet en conflit sera celle du dernier fichier de requirements installé, ce n'est surement pas la bonne solution.
Est-ce qu'il faut revenir à un fichier de requirements unique ? ou y a-t-il un moyen d'utiliser la même version d'une dépendance dans tous les fichiers ?