10 votes

Pourquoi tant de Gems sont-elles retirées et que faites-vous concernant les dépendances ?

J'ai rencontré une situation aujourd'hui où une gemme utilisée dans une application que je maintiens a été retirée.

Je n'avais jamais vu de gemme retirée auparavant, bien que j'en avais entendu parler, et je pensais que c'était une mauvaise pratique.

J'ai essayé de mettre à jour les gemmes, mais l'application commence à échouer lors de l'utilisation de versions précédentes ou plus anciennes.

Étant donné que les gemmes sont hébergées gratuitement, et potentiellement utilisées par des applications, quelle est la logique derrière leur retrait ? Comment gérez-vous les gemmes qui ont été retirées ?

11voto

Adham Points 11

Pour chaque gemme que vous décidez d'utiliser sur votre projet, vous devriez avoir une idée d'une alternative (soit une autre gemme, soit une implémentation personnelle). Je vois des gens utiliser des gemmes de manière compulsive sans se soucier de leur qualité, de leur auteur, de leur fréquence de mise à jour. Il est dangereux de dépendre aveuglément d'une gemme et la décision d'ajouter une autre ligne au Gemfile ne doit pas être prise à la légère.

En ce qui concerne les gemmes retirées, si même les auteurs les suppriment d'internet, vous devriez probablement envisager de faire de même sur votre projet. Sinon, si vous aimez vraiment la gemme, hébergez une copie, donnez des crédits et continuez à l'améliorer. :)

4voto

m_x Points 5733

La documentation de Rubygem suggère que retirer une gemme est une bonne solution pour :

  • corriger les envois accidentels de versions incomplètes
  • empêcher les utilisateurs de télécharger une gemme qui présente des problèmes de sécurité connus sans le savoir

Je n'ai jamais eu à gérer un tel cas, mais je vois trois options :

  • mettre à jour la gemme si une version plus récente existe
  • télécharger la gemme (la documentation indique que la gemme est toujours disponible en téléchargement, sauf si elle a été entièrement retirée après un processus de discussion pour de bonnes raisons) et indiquer la version locale dans votre gemfile
  • refactoriser votre code avec une autre gemme ou du code personnalisé

En fin de compte, il semble que retirer une gemme est une mesure extrême toujours prise pour de bonnes raisons, donc vous devriez préférer la mise à jour / la refactoring plutôt que de rester avec une gemme potentiellement dangereuse ou obsolète... je suppose.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X