Tengo una antigua aplicación 2.1.1 Ruby on Rails, con el sistema actualizado para usar Ruby 1.8.7. Originalmente usó 1.8.5 más o menos.
Quiero actualizarlo a Ruby 1.9.x por razones de rendimiento, y posiblemente también a un Ruby on Rails más nuevo.
No puedo encontrar una tabla sencilla de compatibilidad entre las diferentes versiones de Ruby y las versiones de Ruby on Rails.
¿2.1.1 funcionará con Ruby 1.9.x? Si no es así, ¿hasta dónde necesito actualizarlo primero y qué tipo de problemas es probable que encuentre? Mi aplicación hace cosas complicadas en la capa de base de datos, pero el resto es bastante sencillo.
ruby-on-rails
ruby
taw
fuente
fuente
Respuestas:
Ésta es una pregunta antigua, pero el hecho de que los rieles se prueben con una versión de ruby es una buena indicación de que debería funcionar en esa versión de ruby.
Desde el 9 de abril de 2019, las ramas estables de Rails utilizan Buildkite para pruebas automatizadas, y la lista de versiones de ruby probadas, por rama de rails, es:
Rieles 6.0
>= 2.5.0
Rieles 5.2
>= 2.2.2
< 2.7
(ver https://github.com/rails/rails/issues/38426 )Rieles 5.1
>= 2.2.2
Rieles 5.0
>= 2.2.2
Carriles 4.2
>= 1.9.3
Carriles 4.1
>= 1.9.3
Antes del 9 de abril de 2019, las ramas estables de Rails desde 3.0 usan travis-ci para pruebas automatizadas, y la lista de versiones de ruby probadas, por rama de rails, es:
Carriles 3.0
Carriles 3.1
Rieles 3.2
Carriles 4.0
Carriles 4.1
Carriles 4.2
Rieles 5.0
Rieles 5.1
Rieles 5.2
Rieles 6.0
(De https://www.hmallett.co.uk/2018/08/ruby-and-ruby-on-rails-version-compatibility/ )
fuente
Rails 4.1
con ruby2.3.0
Para versiones <3.2: http://www.devalot.com/articles/2012/03/ror-compatibility
Para versiones> = 4.0:
Rieles 3.2
Intenté alejarme de esas recomendaciones (principalmente ejecutando Rails 3.0 en Ruby 2.0 y 2.1), encontré varios problemas extraños.
fuente
La Guía de Rails sobre la actualización de Ruby on Rails tiene una sección sobre las versiones de Ruby . Esta es probablemente la mejor fuente, ya que está controlada por el equipo central de Rails.
En agosto de 2016, la Guía de rieles dice:
fuente
Es difícil encontrarlo en las notas de la versión. Después de buscar en Google durante algún tiempo, solo pude encontrarlo aquí http://www.devalot.com/articles/2012/03/ror-compatibility
fuente
De la nota de lanzamiento de Rails 2.2: (no es exactamente el que solicitó)
Creo que Rails 2.1.1 no es compatible con Ruby 1.9, y estarías solo en ese entorno. Puede intentarlo si su traje de prueba es completo, por supuesto. Además, tendría que verificar todas las demás gemas utilizadas en el proyecto, lo que podría ser una verdadera molestia.
Si eliges seguir con esta versión de Rails, no migraría a 1.9.x. Como mencionó que preferiría actualizarlo, probablemente debería pasar por las obsoletas mencionadas en las notas de la versión de Rails 3.0 y adaptar su código. Se puede encontrar una lista resumida en los métodos y API obsoletos de Rails 3
fuente
En general, hay dos lugares para comprobar si una plataforma Ruby es adecuada para su versión preferida de Rails.
guides/source
directorio (también en la web en Rails Guides y Github )También puede resultarle útil mirar el
.travis.yml
archivo de su versión. losrvm
entrada allí sugiere las versiones de Ruby con las que los desarrolladores podrían ejecutar pruebas automatizadas.Naturalmente, use sus recomendaciones junto con sus propias pruebas.
fuente
Rails Guides tiene información en "Introducción a Rails". Extraje información de cada versión de las guías:
Rails 3.2 - The Ruby language version 1.8.7 or higher Rails 4.0 - The Ruby language version 1.9.3 or newer Rails 4.1 - The Ruby language version 1.9.3 or newer Rails 4.2 - The Ruby language version 1.9.3 or newer
Por lo que puedo decir, esto es lo más cercano a una fuente primaria que puede obtener para versiones mínimas . Consulte la respuesta de gamov para conocer las versiones recomendadas.
fuente
la primera respuesta aquí es bastante informativa, pero tengo un comentario sobre la compatibilidad de
rails-4.2
conruby-2.4.5
, ya que hay un problema que se muestra aquí , ese problemarails-2.4.8
solo hace compatible conruby-2.4+
, cualquier otra versión de rails-2.4 no funcionará.fuente
Todas esas páginas se quedan atrás del estado actual. Y la documentación en los documentos oficiales es vaga 'La versión en lenguaje Ruby ... o superior'. Si desea saber con qué versiones de Ruby se prueba la versión de Rails que le gustaría saber, verifique el Travis CI que está usando la comunidad de Rails. Aquí puede ver qué rama se prueba contra qué versión de Ruby.
Editar:
Como mencionó Hmallett, Rails ha cambiado a otra suite de pruebas. Se ha cambiado a cometa construida . Siempre puede verificar el estado del código en el repositorio de origen.
fuente
Creo que esta regresión dice que Rails 4.1 no puede funcionar con Ruby 2.3: https://bugs.ruby-lang.org/issues/12353
fuente