Quel Ruby on Rails est compatible avec quelle version Ruby?

J’ai une ancienne application 2.1.1 Ruby on Rails, avec le système mis à niveau pour utiliser Ruby 1.8.7. Il utilisait à l’origine 1.8.5 ou plus.

Je veux le mettre à niveau vers Ruby 1.9.x pour des raisons de performances et éventuellement vers un nouveau Ruby on Rails.

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

Le 2.1.1 fonctionnera-t-il avec Ruby 1.9.x? Si non, dans quelle mesure dois-je d’abord le mettre à niveau et quel genre de problèmes vais-je rencontrer? Mon application complique les choses au niveau de la couche de firebase database, mais le rest est assez simple.

Note de version From Rails 2.2: (pas exactement celle que vous avez demandée)

En plus de la sécurité des threads, beaucoup de travail a été fait pour que Rails fonctionne correctement avec JRuby et le prochain Ruby 1.9. Ruby 1.9 étant une cible en mouvement, Rails Edge Edge sur Edge est toujours une proposition à succès, mais Rails est prêt à passer à Ruby 1.9 lorsque ce dernier sera publié.

Je pense que Rails 2.1.1 n’est pas compatible avec Ruby 1.9 et que vous seriez seul dans un tel environnement. Vous pouvez donner un coup de feu si votre combinaison de test est complète, bien sûr. En outre, vous devrez vérifier tous les autres joyaux utilisés dans le projet, ce qui pourrait être un véritable casse-tête.

Si vous choisissez de conserver cette version de Rails, je ne migrerais pas vers la version 1.9.x. Comme vous l’avez mentionné, vous préféreriez le mettre à jour, vous devriez probablement passer par les déchéances mentionnées dans les notes de version de Rails 3.0 et adapter votre code. Une liste récapitulative se trouve dans Rails 3 méthodes et API obsolètes

Il est difficile de le trouver dans les notes de version. Après avoir googlé pendant un certain temps, je ne pouvais le trouver que ici http://www.devalot.com/articles/2012/03/ror-compatibility

Compatibilité des versions Ruby Rails

Le guide Rails sur la mise à niveau de Ruby on Rails contient 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 se lisait comme suit:

1.3 Versions Ruby

Rails rest généralement proche de la dernière version de Ruby lors de sa sortie:

  • 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.
  • Rails 3.2.x est la dernière twig à prendre en charge Ruby 1.8.7.
  • Les rails 3 et plus nécessitent Ruby 1.8.7 ou supérieur. La prise en charge de toutes les versions précédentes de Ruby a été officiellement abandonnée. Vous devriez mettre à jour le plus tôt possible.

En général, il y a deux endroits pour vérifier si une plateforme Ruby est adaptée à votre version Rails préférée.

  1. L’annonce de sortie dans le blog Rails
  2. Les notes de publication dans le répertoire guides/source (également sur le Web à Rails Guides et Github )

Vous pourriez également trouver utile de regarder le fichier .travis.yml de votre version. L’entrée rvm suggère les versions Ruby sur lesquelles les développeurs peuvent exécuter des tests automatisés.

Naturellement, utilisez leurs recommandations en même temps que vos propres tests.

Les guides Rails contiennent des informations sous “Premiers pas avec Rails”. J’ai tiré des informations de chaque version des guides:

 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 

Autant que je sache, cela est aussi proche d’une source primaire que vous pouvez en obtenir pour les versions minimales . Voir la réponse de gamov pour les versions recommandées.

C’est une vieille question, mais les twigs stables de Rails depuis la version 3.0 utilisent travis-ci pour les tests automatisés, et le fait que rails soit testé sur une version de ruby ​​indique bien qu’il devrait fonctionner sur cette version de ruby.

La liste des versions de rbuy testées, par twig de rails, est la suivante:

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.7
  • 2.4.4

Rails 5.0

  • 2.2.10
  • 2.3.7
  • 2.4.4

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

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