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/).
Actuellement nous dépendons de versions précises des dépendances dans le
requirements.txt
, ex: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 :
(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 :
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.