Pourquoi devrais-je me soucier de la fonctionnalité Gemset de RVM lorsque j’utilise Bundler?

Je ne comprends tout simplement pas. Je pensais, Bundler a été développé pour résoudre les conflits de version entre les gemmes. Donc, je dois juste require "bundler/setup" et tout va bien, sachant que Bundler chargera les versions correctes de tous mes gems et leurs dépendances. Maintenant, je sais que RVM est idéal pour gérer plusieurs Rubies, mais pourquoi devrais-je me soucier de la fonctionnalité Gemset? Est-ce que je manque quelque chose ici? Est-ce que cela peut rendre mon développement encore plus facile? Certains d’entre vous peuvent peut-être me donner quelques conseils sur le stream de travail RVM + Bundler idéal pour le développement et la production.

Je ne sais pas non plus quand RVM commence à passer à un autre Ruby. Je sais que je peux avoir un fichier .rvmrc dans mon projet, mais dois-je aller dans ce répertoire pour que le changement se produise?

De plus, j’utilise habituellement Passenger pour le développement car, grâce à Passenger.prefpane , l’intégration dans Mac OS est excellente. Puis-je toujours le faire avec RVM ou existe-t-il un meilleur moyen de le faire? Passenger reconnaît- .rvmrc fichiers .rvmrc et passe-t-il au bon Gemset?

Pourquoi devrais-je me soucier de la fonctionnalité Gemset de RVM lorsque j’utilise Bundler?

Tu ne devrais pas.

Eh bien, si vous voulez , vous pouvez vous en soucier, bien sûr, alors je devrais mieux dire “Vous n’avez pas besoin de”.

Je viens d’écouter une interview en podcast avec l’un des membres de l’équipe de base de Bundler qui a déclaré que depuis qu’il avait commencé à utiliser Bundler, il avait cessé d’utiliser Gemsets, car ils étaient redondants.

Voici un article de blog qui aborde le même problème, avec quelques exemples.

Lorsque je travaille avec un code hérité ou que je mets en place d’autres projets Ruby qui ne sont pas pour quelque raison que ce soit un itinéraire groupé, les gemsets sont une chose formidable. Je trouve également des gemsets inestimables lors du développement de gemmes. C’est bien d’avoir plusieurs environnements de test pour basculer entre et tester le joyau fraîchement construit.

Passenger ne lit pas le .rvmrc au mieux de mes connaissances. Vous ne pouvez pas exécuter différents projets chez des passagers sous différents rbuy, au mieux de mes connaissances. Ma configuration de rails par défaut ne contient que le bundler et le rake dans le gemset global. Je laisse le bundler prendre le relais et gérer le rest du projet comme vous le décrivez. Fonctionne plutôt bien.

Vous devez absolument utiliser les gemsets si vous prévoyez changer votre version de bundler. Et vous pouvez utiliser les gemsets pour gérer les gems qui ne sont pas spécifiques à votre application Rails (câblé, etc.).