102 votes

Quelle version de Ruby on Rails est compatible avec quelle version de Ruby?

J'ai une ancienne application Ruby on Rails 2.1.1, avec le système mis à jour pour utiliser Ruby 1.8.7. À l'origine, elle utilisait la version 1.8.5 ou quelque chose du genre.

Je veux la mettre à jour vers Ruby 1.9.x pour des raisons de performance, et éventuellement vers une version plus récente de Ruby on Rails également.

Je ne trouve pas de tableau facile de compatibilité entre les différentes versions de Ruby et les versions de Ruby on Rails.

Est-ce que la version 2.1.1 fonctionnera avec Ruby 1.9.x? Si ce n'est pas le cas, à quel point dois-je la mettre à jour en premier lieu, et quel genre de problèmes suis-je susceptible de rencontrer? Mon application fait des choses compliquées au niveau de la base de données, mais le reste est assez simple.

133voto

Thomas Stinner Points 257

C'est une vieille question, mais le fait que rails soit testé contre une version de ruby est un bon indicateur qu'il devrait fonctionner sur cette version de ruby.

Depuis le 9 avril 2019, les branches stables de Rails utilisent Buildkite pour les tests automatisés, et la liste des versions de ruby testées, par branche de rails, est :

Rails 6.1

  • >= 2.5.0

Rails 6.0

  • >= 2.5.0

Rails 5.2

Rails 5.1

  • >= 2.2.2

Rails 5.0

  • >= 2.2.2

Rails 4.2

  • >= 1.9.3

Rails 4.1

  • >= 1.9.3

Avant le 9 avril 2019, les branches stables de Rails depuis 3.0 utilisent travis-ci pour les tests automatisés, et la liste des versions de ruby testées, par branche de rails, est :

Rails 3.0

  • 1.8.7
  • 1.9.2
  • 1.9.3

Rails 3.1

  • 1.8.7
  • 1.9.2
  • 1.9.3

Rails 3.2

  • 1.8.7
  • 1.9.2
  • 1.9.3
  • 2.0.0
  • 2.1.8
  • 2.2.6
  • 2.3.3

Rails 4.0

  • 1.9.3
  • 2.0.0
  • 2.1
  • 2.2

Rails 4.1

  • 1.9.3
  • 2.0.0
  • 2.1
  • 2.2.4
  • 2.3.0

Rails 4.2

  • 1.9.3
  • 2.0.0-p648
  • 2.1.10
  • 2.2.10
  • 2.3.8
  • 2.4.5

Rails 5.0

  • 2.2.10
  • 2.3.8
  • 2.4.5

Rails 5.1

  • 2.2.10
  • 2.3.7
  • 2.4.4
  • 2.5.1

Rails 5.2

  • 2.2.10
  • 2.3.7
  • 2.4.4
  • 2.5.1

Rails 6.0

  • 2.5.3
  • 2.6.0

(De https://www.hmallett.co.uk/2018/08/ruby-and-ruby-on-rails-version-compatibility/)

47voto

gamov Points 968

Pour les versions < 3.2: http://www.devalot.com/articles/2012/03/ror-compatibility

Pour les versions >= 4.0:

  • Rails 4 recommande 2.0 (src : blog Rails)
  • Rails 4.1/4.2 recommande 2.1 (src : ancienne page de téléchargement de Rails)
  • Rails 4.2.1 recommande 2.2 (src : ancienne page de téléchargement de Rails)
  • Rails 5.0 nécessite 2.2.2+ (blog Rails)

Rails 3.2

J'ai essayé de sortir de ces recommandations (principalement en exécutant Rails 3.0 sur Ruby 2.0 et 2.1), j'ai rencontré plusieurs problèmes étranges.

16voto

pdobb Points 5020

Le guide Rails sur la mise à niveau de Ruby on Rails comporte une section sur les versions de Ruby. C'est probablement la meilleure source car elle est contrôlée par l'équipe principale de Rails.

En août 2016, le guide Rails indique :

1.3 Versions de Ruby

En général, Rails reste proche de la dernière version de Ruby disponible lors de sa publication :

  • Rails 5 nécessite Ruby 2.2.2 ou plus récent.
  • Rails 4 préfère Ruby 2.0 et nécessite 1.9.3 ou plus récent.
  • La branche Rails 3.2.x est la dernière à prendre en charge Ruby 1.8.7.
  • À partir de Rails 3, Ruby 1.8.7 ou une version ultérieure est requise. Le support pour toutes les versions précédentes de Ruby a été officiellement abandonné. Vous devriez effectuer la mise à jour dès que possible.

13voto

crazycrv Points 781

Il est difficile de le trouver dans les notes de version. Après avoir cherché sur Google pendant un certain temps, je n'ai pu le trouver que ici http://www.devalot.com/articles/2012/03/ror-compatibility

Compatibilité des versions Ruby on Rails

7voto

Marcelo Diniz Points 1474

À partir de la note de version de Rails 2.2 : (pas exactement ce que vous avez demandé)

En plus de la sécurité des threads, beaucoup de travail a été fait pour faire fonctionner Rails correctement avec JRuby et la future Ruby 1.9. Étant donné que Ruby 1.9 est en constante évolution, exécuter edge Rails sur l'edge Ruby est encore une proposition aléatoire, mais Rails est prêt à passer à Ruby 1.9 lorsque ce dernier sera publié.

Je crois que Rails 2.1.1 n'est pas compatible avec Ruby 1.9, et vous seriez seul dans un tel environnement. Vous pouvez essayer si votre suite de tests est complète, bien sûr. De plus, vous devriez vérifier tous les autres gems utilisés dans le projet, ce qui pourrait être une vraie corvée.

Si vous choisissez de rester avec cette version de Rails, je ne migrerais pas vers 1.9.x. Comme vous l'avez mentionné, vous préférez la mettre à niveau, vous devriez probablement passer en revue les éléments désuets mentionnés dans les notes de version de Rails 3.0 et adapter votre code. Une liste résumée peut être trouvée dans les méthodes et APIs dépréciées de Rails 3

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X