[RUBY] référentiel Le gem spécifié est le bundle installé mais pas mis à jour vers la dernière version

TL;DR

Si le gemfile n'a pas été mis à jour, vous irez voir le hachage de commit de revision dans gemfile.lock.

console


bundle update gem-name

Faisons le

problème

Quand je suis allé à fork-> PR-> merge dans la bibliothèque utilisée dans l'entreprise et que j'ai essayé de la vérifier, il a été dit que la méthode qui aurait dû être ajoutée n'était pas définie.

Ce qui a été résolu

Vérifiez d'abord ce que vous pouvez utiliser

rails_console


# respond_to?Est celui qui vérifie si une méthode existe
GemName respond_to? :configure #-> true
GemName respond_to? :new_added_method #-> false

#Notez qu'il n'y a pas de méthode qui aurait dû être incluse dans PR et vérifiez si la gemme elle-même est incluse sans problème
GemName.added_a_lomng_time_ago_method #->Passé

À ce stade, j'ai remarqué que le contenu du PR n'était pas complètement inclus et j'ai considéré que le HEAD pouvait être désaligné.

console


git clone [email protected]:my-org/gem-name #Cloner le référentiel d'origine au lieu de fork
git rev-parse HEAD #-> 00ff0012345
git rev-parse master #-> 00ff0012345(Confirmez qu'il s'agit de la même chose que HEAD)

Spécifiez le gem avec le hachage de validation comme essai car il n'est pas mal aligné

gemfile


gem 'gem-name', git: '[email protected]:my-org/gem-name', ref: '00ff0012345'

#installation groupée

rails_console


GemName.new_added_method #->J'ai réussi!

Donc, quand j'ai vérifié gemfile.lock, revision a changé. C'est la cause …………

Après ça

gemfile


gem 'gem-name', git: '[email protected]:my-org/gem-name', branch: 'master'

Mais il n'y avait aucun problème. Eh bien, cela est attendu parce que revision est devenu HEAD lorsque le hachage de validation a été spécifié.

Que faire

Eh bien, l'installation se fait sur la base de gemfile.lock, donc c'est naturel, mais j'ai dû utiliser bundle update. J'étais complètement distrait par le fait que j'avais spécifié le référentiel directement et complètement oublié. Si vous souhaitez mettre à jour en même temps que l'installation du bundle, vous devez créer un fichier exécutable pour tout faire en même temps.

Référence: https://stackoverflow.com/questions/8324334/bundler-always-use-latest-revision-of-git-branch-in-gemfile

Recommended Posts

référentiel Le gem spécifié est le bundle installé mais pas mis à jour vers la dernière version
Que faire si l'application n'est pas créée avec la dernière version de Rails installée lorsque les rails sont neufs
J'ai spécifié la version et les rails nouveaux, mais pour une raison quelconque, la dernière version est incluse ~
Que faire si vous avez installé Ruby avec rbenv mais que la version ne change pas
[Ruby] Votre version de Ruby est 2.6.3, mais votre Gemfile a spécifié 2.5.8
Votre version Ruby est 2.4.6, mais votre Gemfile a spécifié 2.6.4
La clé publique pour jenkins-2.249.1-1.1.noarch.rpm n'est pas installée
[Ruby] Comment utiliser rbenv (la version `x.x.x 'n'est pas installée)
Une histoire sur l'impossibilité soudaine de regrouper l'installation en raison de gem'ffi '
[Ruby] Le gem doit avoir été installé dans le fournisseur / bundle, mais une erreur se produit dans require.
Que faire si FacesMessage est défini mais pas affiché
Mettre à jour vers la dernière version sans spécifier la version avec le wrapper gradle