Dependencies should be fetched directly from VCS
L'auteur compare son retour au développement Ruby après une décennie en Go et reconnaît que les deux langages sont efficaces mais très différents. Il souligne que le modèle de dépendances de Go, qui identifie les modules par URL et utilise go.mod, go.sum et un proxy, offre une résistance supérieure aux dépendances malveillantes grâce à la transparence et à la vérification des commits. En revanche, RubyGems fonctionne par publication de paquets .gem dont le contenu peut diverger du dépôt source, ce qui rend l'audit des changements laborieux et peu pratique pour la plupart des développeurs. L'auteur rappelle que de nombreuses attaques de la chaîne d'approvisionnement exploitent l'étape de publication des paquets et que les ressources compilées ou minifiées compliquent encore l'audit, si bien que des mesures comme le gel des publications ou le scan assisté par IA restent des palliatifs limités. Il propose d'envisager un modèle où Bundler peut préférer le fetching via git pour toutes les dépendances et conserver des verrous et des hachages similaires à go.sum pour améliorer la transparence, tout en reconnaissant les difficultés pratiques de mise en œuvre.