2017-10-11 4 views
0

J'essaye de mettre à jour une gemme (hydra-derivatives) à la version 3.3.2 pour voir si elle résout un bogue que nous avons. Hydra-dérivésGemfile Gemfile Gemfile gem; il est regroupé en tant que dépendance d'une autre gemme, appelée hydra-works.Comment mettre à niveau une gemme ruby ​​spécifique vers une version spécifique (ou la dernière version)?

Ce que j'ai essayé

  1. bundle update --conservative hydra-derivatives mais seulement mis à jour hydra dérivés à 3.2.2 (& nous voulons 3.3.2) et sa dépendance de mini_magick à 4.8.0
  2. 4.5.1
  3. ajoutant gem 'hydra-derivatives', '~> 3.3.2' mais cela m'a donné:

    You have requested: 
        hydra-derivatives ~> 3.3.2 
    
    The bundle currently has hydra-derivatives locked at 3.2.1. 
    Try running `bundle update hydra-derivatives` 
    
    If you are updating multiple gems in your Gemfile at once, 
    try passing them all to `bundle update` 
    
  4. Je ne veux pas courir bundle update hydra-derivatives parce que je ne veux pas mettre à jour un tas de gemmes inutiles et causer des problèmes, d'où je lis à propos de --conservative

    a. J'ai couru de toute façon pour le tester, et il a mis à jour la gemme cible à seulement 3.2.2 et 15 gemmes au total!

+0

Avez-vous regardé ce https: // stackoverflow. com/questions/7434263/can-i-force-a-gems-dépendances-dans-gemfile? – Preston

+0

@Preston non je ne suis pas tombé sur celui-là. Je vais l'étudier maintenant et voir si cela aide, puis rendre compte ici. – RudyOnRails

+0

@Preston merci de me donner plus d'informations! Malheureusement, je pense simplement que cette réponse est ce que j'ai fait ici dans "essayer # 2" ci-dessus. "Vous aurez besoin de spécifier explicitement la gemme B dans votre Gemfile pour utiliser un dépôt git ou une autre version." – RudyOnRails

Répondre

0

Retirez la gemme hydra-œuvres de votre Gemfile. Supprimez manuellement la gemme et ses dépendances à partir de l'emplacement de gemme installé ou si vous avez l'application dans son propre environnement Ruby en utilisant rbenv ou rvm exécutez bundle clean --force.
Méfiez-vous bundle clean --force va supprimer toutes les gemmes dans la version Ruby autres que celles spécifiées dans votre Gemfile. Si vous avez d'autres applications qui utilisent la même version de Ruby, vous devrez réinstaller les gemmes pour cette application si elles sont différentes de ce que vous utilisez dans cette application.

Ajouter à votre Gemfile

gem 'hydra-derivatives', '~> 3.3.2' 
gem 'hydra-works' 

et exécuter bundle install

Vous devriez voir la version de dépendance correcte maintenant dans votre Gemfile.lock

+0

Vous avez changé de priorité. Revenir à cela et lui donner l'attention qu'il mérite. En train d'écrire quelques tests pour voir pourquoi le bug a surgi au lieu de supposer que la mise à jour de la gemme est la solution! – RudyOnRails

+0

après quelques expérimentations et vérifications de faits, je peux confirmer que la dernière version d'hydra-dérivées 3.3.2 finit en fonction de faraday (~> 0.12.1), cependant une autre gem dépend de faraday (~> 0.9.0). Donc c'est mon problème! Je vais expérimenter avec forfit iiif-présentation (~> 0.1.0) et bumping gemspec pour faraday jusqu'à faraday (~> 0.12.1). Désolé pour la perte de temps, j'aurais aimé en savoir plus! – RudyOnRails