#66 Gestion des dépendances plus sécuritaire

Ouvert
Créé il y a 8 ans par jocelyn · 0 commentaires
jocelyn a commenté il y a 8 ans

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.

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é](https://pip.pypa.io/en/stable/reference/pip_install/#example-requirements-file) ç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](http://semver.org/lang/fr/).
Connectez-vous pour rejoindre cette conversation.
Aucun jalon
Pas d'assignataire
1 Participants
Chargement…
Annuler
Enregistrer
Il n'existe pas encore de contenu.