Quiero saber si debo especificar la versión de gema para cada gema que agregue a Gemfile o no. Anteriormente, con algunos de mis proyectos, no especificaba ninguna versión para todas las gemas y bundler se encargó de eso, lo que también funcionó bastante bien.Si especificar versiones de Gem obligatoriamente en el archivo Gemfile o no para la aplicación de raíles
Pero recientemente comencé a trabajar en algunos proyectos que estaban en desarrollo durante los últimos 6 meses. En ese proyecto, muchas de las versiones de gemas se especificaron solo en Gemfile y se ignoró Gemfile.lock. Eso causó muchos dolores de cabeza para finalmente resolver conflictos de versiones y actualizar algunas gemas.
también tiene que saber que es una mala práctica para eliminar Gemfile.lock de control de versión de la aplicación - buen artículo de Yehuda - http://yehudakatz.com/2010/12/16/clarifying-the-roles-of-the-gemspec-and-gemfile/
lo tanto, mi pregunta es debería especificar la versión para todos y cada joya que specifiy en Gemfile o solo especifica el nombre y el paquete se encargará de la versión? ¿Cuál es la mejor práctica para manejar esto?
ACTUALIZACIÓN -
La actualización de esta pregunta para especificar correctamente el problema, como Gemfile sovles muchos problemas :)
PROB 1 - Cada desarrollador debe tener la misma versión de gemas. En realidad, al agregar Gemfile.lock al control de versiones se solucionó este problema. Los desarrolladores solo tienen que preocuparse de que ejecuten 'paquete de instalación'/'paquete' en lugar de 'paquete de actualización' ya que esto también actualizará las versiones.
Problema 2 - Algunas gemas versión, si cambia, código de la aplicación de frenos. En realidad con omniauth, existen este tipo de problemas, ya que las API se cambian de una versión a otra. Y sí, para que la aplicación siga funcionando, las versiones deberán especificarse para estas gemas.
Mi prob. - Entonces, en mi gemfile, como las versiones para A y B están estrictamente especificadas, y como ambas dependen de diferentes versiones de Z, que es la dependencia, ni siquiera puedo ejecutar la instalación del paquete o la actualización del paquete. La única solución fue eliminar versiones y dejar que bundler tome la llamada. Es por eso que tuve preguntas como - Gemfile.version_specification_mandatory? # => verdadero/falso
buena pregunta. ¡Esto también respondió mi curiosidad sobre esto, ya que he estado especificando las versiones de gemas! – fregas