Voglio sapere se devo specificare la versione gem per ogni gem che aggiungo a Gemfile o no. In precedenza con alcuni dei miei progetti non ho specificato alcuna versione per tutte le gemme e bundler si è occupata di esso, il che ha funzionato abbastanza bene.Se specificare obbligatoriamente le versioni Gem in Gemfile o non per l'applicazione rails
Ma recentemente ho iniziato a lavorare su pochi progetti in fase di sviluppo da 6 mesi. In quel progetto, molte delle versioni gem sono state specificate solo in Gemfile e Gemfile.lock è stato ignorato. Ciò ha causato molto mal di testa per risolvere definitivamente i conflitti di versione e aggiornare alcune gemme.
ottenuto anche sapere che è cattiva pratica per rimuovere Gemfile.lock dal controllo di versione dell'applicazione - bell'articolo di Yehuda - http://yehudakatz.com/2010/12/16/clarifying-the-roles-of-the-gemspec-and-gemfile/
Quindi, la mia domanda è dovrei specificare la versione per ogni gemma che specifiy in Gemfile o semplicemente specificare il nome e bundler si prenderà cura della versione? Qual è la migliore pratica per gestire questo?
AGGIORNAMENTO -
aggiornamento a questa domanda di specificare correttamente il problema, come Gemfile sovles molti problemi :)
Prob 1 - Ogni sviluppatore dovrebbe avere stessa versione di gemme. In realtà l'aggiunta di Gemfile.lock nel controllo della versione ha risolto questo problema. Gli sviluppatori devono semplicemente fare in modo che eseguano "bundle install"/"bundle" piuttosto che "bundle update" poiché questo aggiornerà anche le versioni.
Prob 2 - La versione di alcune gemme, se modificata, frena il codice dell'applicazione. In realtà con omniauth, ci sono questo tipo di problemi, in quanto le API vengono cambiate da una versione all'altra. E sì, per mantenere il funzionamento dell'applicazione, le versioni dovranno essere specificate per queste gemme.
My Prob. - Quindi, nel mio file gemma, poiché le versioni per A e B sono rigorosamente specificate, e poiché entrambe dipendono da diverse versioni di Z, che è una dipendenza, non riesco nemmeno a eseguire l'installazione del bundle o l'aggiornamento del bundle. L'unica soluzione era rimuovere le versioni e consentire a bundler di rispondere alla chiamata. Ecco perché ho avuto domande come: Gemfile.version_specification_mandatory? # => vero/falso
buona domanda. Questo ha risposto alla mia curiosità anche su questo, come ho specificato le versioni della gemma! – fregas