Xavier Nayrac

Rubyiste accro au TDD, serial blogger, apprenti data scientist, heureux utilisateur de Vim, accordéoniste.
Si vous vous sentez particulièrement généreux, suivez moi sur Twitter.

Mettre à jour des gems ayants des références circulaires avec Bundle

| Comments

Niveau : facile

Ok, c’est sûrement le titre le plus incompréhensible de l’histoire de ce blog. Mais je n’arrive pas à trouver mieux…

Prenons le Gemfile fictif suivant:

gem a
gem b
gem c

Je veux mettre à jour la gem a, de la version 1.0.0 vers la nouvelle version 1.0.1.

Pour ça je fais évidemment:

bundle update a

Mais voilà que bundle me répond quelque chose comme ça:

impossible de mettre à jour la gem a
la gem a 1.0.1 dépend de la gem b 1.0.1

D’accord, pas de souci, je fais donc:

bundle update b

Et devinez ce que ce cher bundle me répond ?

impossible de mettre à jour la gem b
la gem b 1.0.1 dépend de la gem c 1.0.1

Bon, j’espère que c’est bientôt fini. Parce que évidemment mon Gemfile réel ne comporte pas que 3 gems, lui. Donc je me soumet:

bundle update c

Et la réponse ne tarde pas:

impossible de mettre à jour la gem c
la gem c 1.0.1 dépend de la gem a 1.0.1

Super :( J’ai l’impression qu’on me demande de remplir un formulaire administratif ! La gem a dépend de b, qui elle, dépend de c, qui à son tour dépend de a…

Malgré tout, la solution est très simple (merci collègue @hellvinz) il suffit de mettre à jour les 3 gems en même temps:

bundle update a b c

Et le tour est joué. Peut-être que vous le saviez déjà ? Mais moi j’avais raté cette partie de Bundle.

Aujourd’hui j’ai encore appris quelque chose :)

À demain.

Articles connexes

Commentaires