Gestion des dépendances plus sécuritaire
Actuellement nous dépendons de versions précises des dépendances dans le requirements.txt
, ex:
django-autocomplete-light==2.0.7
Quand une faille de sécurité est corrigée, c'est traditionellement dans une version « patch » (ndlr: le Z dans « X.Y.Z ») ; en fixant les versions comme nous le faisons, les instances de coin ne pourront mettre à jour leurs dépendances tant que le requirements.txt de coin n'aura pas été mis à jour.
Peut-être serait-il judicieux de ne fixer la dépendance qu'au numéro de version mineure (ndlr: le « Y » dans « X.Y.Z ») ; afin d'autoriser un pip install --upgrade
à mettre à jour automatiquement lors d'un changement de version patch.
Ça donnerait des dépendances genre :
django-autocomplete-light~=2.0.7
(attention malgré que ça soit documenté ça ne marchait pas lors de mes tests, même avec le dernier setuptools).
ou en plus verbeux mais qui marche :
django-autocomplete-light>=2.0.7, < 2.1
J'ai du mal à me positionner dans cet équilibre fiabilité vs sécurité. Du coup j'ouvre ce ticket pour en discuter. Des retours d'expérience/bonne pratiques sur le sujet ?
Cela créera inévitablement des soucis de temps à autres ; toutes les libs ne respectant pas forcément le semantic versioning.