2010-08-27 8 views
28

Ruby Version Manager nos permite usar un archivo .rvmrc en cada proyecto para configurar la versión de ruby ​​y la gema configurada para cargar. ¿Debería registrarse este archivo en el control de origen? ¿O supone esto demasiado sobre el entorno de trabajo de otros desarrolladores?¿Verifica en su archivo rvmrc?

Respuesta

31

Source Control Management se trata principalmente de reproducibilidad: ¿puede reproducir una versión de un esfuerzo de desarrollo basado en lo que tiene almacenado en su SCM?

Si ese archivo .rvmrc es necesario para que cualquier desarrollador de su proyecto pueda trabajar (con los artefactos adecuados), entonces sí, debería versionarlo.

como se menciona en RVM Best Practices:

Nº 2 - Compruebe su rvmrc en control de código fuente.

Al marcar la rvmrc mencionada en el control de la fuente al lado de su aplicación, que estás asegurando que todos los usuarios tengan un ambiente consistente cuando se está utilizando RVM.

Al automatizar también las instalaciones de gemset y similares (por ejemplo, verifique el rvmrc en el repositorio rvm-site o el rvmrc del repositorio TEDxPerth) también hace que comenzar sea tan simple como cambiar de directorio.

Además de esto, también puede hacer que sus implementaciones configuren automáticamente el entorno específico de su aplicación.

Otros desarrolladores pueden convertir de uso de gemsets en su RVM con:

echo rvm_ignore_gemsets_flag=1 >> ~/.rvmrc 

Esto hará que los utilizan gemset predeterminada siempre.

+0

punto interesante. Guardo mi rvmrc en mi directorio de inicio, tendré que considerar hacer lo contrario. –

+4

¿No obliga esto a otros desarrolladores de tu equipo a usar un gemset con el mismo nombre que el creador .rvmrc? – ybakos

+3

Normalmente no incluyo un gemset en rvmrc si el proyecto usa bundler. Si no está utilizando bundler, entonces déle un nombre gemset que coincida con el proyecto con un indicador --create para que se cree automáticamente. –

11

De hecho, desaconsejaría mantener .rvmrc en SCM. Dos razones específicas:

  1. Si utilizan gemsets a hacer cumplir otros desarrolladores usar el mismo gemset (mientras que algunos podrían preferir tener todas sus gemas en el gemset global).

  2. Hace que otros desarrolladores tengan dificultades para ejecutar el proyecto en una versión diferente de Ruby. Claro, en producción podría ejecutarse en 1.9.2-p290, pero ¿por qué no se me debería permitir ejecutar la aplicación localmente en 1.9.3-p0?

general que hace valer demasiado en cada desarrollador (misma historia que database.yml, que así no debe ser mantenido en SMC). Una nota en el archivo README del proyecto de la versión Ruby de "producción en funcionamiento" es suficiente.

+0

Creo que también depende del proyecto.Tengo una situación donde los desarrolladores ejecutan varias versiones ruby ​​del mismo proyecto (diferentes plataformas, requisitos) desde la producción, por diseño. Nuestras * pruebas * nos dicen que todo está funcionando bien. La libertad de cambiar los rubíes nos permite diagnosticar problemas específicos de la versión y ejecutar puntos de referencia. – foz

Cuestiones relacionadas