GitHub met progressivement à jour son fork de Rails chaque semaine
et est maintenant entièrement mis à niveau vers la dernière version 6.0

Le fondateur de Ruby on Rails, David Hansonn, a publié Rails 6.0 à la mi-août et a indiqué que de nombreuses entreprises, dont GitHub, avaient déjà furtivement utilisé la version préliminaire de Rails 6.0. Par le biais d'Eileen M. Uchitelle, GitHub a partagé officiellement son expérience concernant les mises à niveau (en particulier la mise à niveau vers Rails 6.0). Selon le billet de blog, GitHub a influencé activement le développement de la structure de Rails 6.0 pour répondre aux exigences de GitHub et a mis à jour Rails chaque semaine pour détecter les erreurs à temps.

Environ une semaine et demie après la publication de la version officielle de Rails 6.0, tout le trafic de GitHub était géré par le code Rails 6.0. En fait, GitHub utilise la dernière mise à jour de la branche principale de Rails chaque semaine, non seulement pour faire le point sur les bogues détectés, mais également pour éviter de nombreuses erreurs qui pourraient provenir de mises à niveau ponctuelles. L’équipe de développement de GitHub a déclaré que ce modèle leur permettait de détecter rapidement les erreurs et d’effectuer tous les tests sur la nouvelle version. La régression est généralement constatée quelques heures après la publication de la nouvelle version dans la branche principale de Rails.

Eileen M. Uchitelle a expliqué que :

« Le 26 août 2019, l'application GitHub a été déployée en production avec 100% du trafic sur la dernière version de Rails : Rails 6.0. Ce changement est intervenu à peine une semaine et demie après la publication de la version finale de Rails 6.0. Les entreprises ne font pas toujours l’annonce de la mise à niveau de Rails, mais si l’on se fie à l’histoire de GitHub, qui se trouve sur un fork personnalisé de Rails 3.2, cette mise à niveau représente un gros problème. Cela représente tout le chemin parcouru au cours des dernières années, et le travail acharné et le dévouement de notre équipe de mise à niveau ont rendu les choses plus simples, plus faciles et plus rapides que toutes nos précédentes mises à niveau.

« Chez GitHub, nous avons beaucoup à célébrer avec la sortie de Rails 6.0 et le déploiement de production ultérieur. Premièrement, nous avons été plus impliqués dans cette version que dans toutes les versions précédentes de Rails. Les ingénieurs de GitHub ont envoyé plus de 100 Pull Request à Rails 6.0 pour améliorer la documentation, corriger les bogues, ajouter des fonctionnalités et accélérer les performances. Pour de nombreux contributeurs de GitHub, c'était la première fois que j'envoyais des modifications au framework Rails, ce qui montre que la mise à niveau de Rails aide non seulement GitHub en interne, mais améliore également notre communauté de développeurs.

« Deuxièmement, nous avons déployé Rails 6.0 en production sans aucun impact négatif sur les clients : nous n’avons rencontré qu’une exception lors de nos tests sur Rails 6.0 et elle a été découverte par un bot ! Nous avons pu atteindre ce niveau de stabilité pour la mise à niveau, car nous avons été fortement impliqués dans son développement. Dès que nous avons terminé la mise à niveau Rails 5.2 l’an dernier, nous avons commencé à mettre à niveau notre application vers Rails 6.0.

« Au lieu d'attendre la version finale, nous effectuons une mise à niveau chaque semaine en intégrant les dernières modifications apportées par Rails Master et en exécutant tous nos tests avec cette nouvelle version. Cela nous a permis de trouver des régressions rapidement et tôt, souvent dans Rails master quelques heures seulement après leur introduction. La mise à niveau hebdomadaire a permis de trouver facilement où ces régressions ont été introduites puisque nous avons travaillé sur Rails avec des commits hebdomadaires au lieu d'attendre des commits produits sur plus d’une année ».

Nom : ruby.png
Affichages : 2209
Taille : 200,7 Ko

Selon elle, « en plus de garantir la stabilité de Rails 6.0, nous avons également contribué aux nouvelles fonctionnalités du framework, telles que les tests en parallèle et les bases de données multiples. Le code de ces outils est utilisé quotidiennement dans notre application de production. Il s’agit d’un code bien testé et approuvé par GitHub dans un framework public et open source. En mettant en place cet outil, nous sommes en mesure de réduire la complexité de notre base de code et de définir une norme qui a déjà été implémentée par de nombreuses entreprises.

« Rester à niveau offre de nombreux avantages qui vont au-delà de plus de sécurité, de gain de vitesse, de performance ainsi que de nouvelles fonctionnalités. En restant à jour, nous influençons l’avenir du framework pour répondre à nos besoins et redonnons beaucoup à la communauté open source. Ce processus signifie que la base de code GitHub évolue parallèlement à Rails et non en réponse à Rails. Investir dans notre application en restant à jour avec le framework Rails a eu un effet extrêmement positif sur notre base de code et nos équipes d'ingénierie. Rester à jour nous permet d'investir dans notre communauté, d'investir dans nos outils à long terme et d'améliorer l'expérience de travail avec la base de code GitHub pour nos ingénieurs ».

Parmi les nouvelles fonctionnalités de Ruby on Rails 6.0, nous pouvons citer :
  • Action Mailbox achemine les e-mails entrants vers des boîtes aux lettres similaires à celles d'un contrôleur pour traitement dans Rails. Il est livré avec des entrées pour Mailgun, Mandrill, Postmark et SendGrid. Vous pouvez également gérer les mails entrants directement via les entrées intégrées Exim, Postfix et Qmail.

    Les e-mails entrants sont transformés en enregistrements InboundEmail à l'aide d'Active Record. Ces e-mails entrants sont routés de manière asynchrone à l'aide de Active Job vers une ou plusieurs boîtes mails dédiées, capables d'interagir directement avec le reste de votre modèle de domaine.
  • Action Text apporte du contenu texte riche et l'édition à Rails. Cela signifie que vous pouvez effectuer des opérations telles que formater du texte, incorporer des images, formater des liens, ajouter des listes et toute autre fonctionnalité semblable à celle d'un éditeur dans un champ de texte.

    Ceci est fait en incluant l'éditeur Trix dans le framework. Le contenu RichText généré par l’éditeur Trix est enregistré dans son propre modèle RichText associé à n’importe quel modèle Active Record existant dans l’application. Toutes les images intégrées ou autres pièces jointes sont automatiquement stockées à l'aide de Active Storage.
  • Ruby on Rails 6.0 permet la connexion d'une application à plusieurs bases de données. Dans Active Record, la nouvelle mise à jour comprend une API simple qui facilite l'accès à cette fonctionnalité, permettant une meilleure évolutivité, une isolation ou d'autres cas d'utilisation.

Source : GitHub, blog Ruby on Rails (1, 2)

Et vous ?

Avez-vous déjà utilisé Ruby on Rails ?
Si oui, sur quelle version êtes-vous ? Qu'en pensez-vous ?
Que pensez-vous de l'approche de GitHub consistant à travailler avec les mises à jour hebdomadaires plutôt que d'attendre les mises à jour annuelles ?

Voir aussi :

GitHub confirme avoir bloqué les développeurs en Iran, en Syrie et en Crimée le blocage s'étend désormais au Cuba et à la Corée du Nord
GitHub bloque les utilisateurs de Crimée et d'Iran à cause des sanctions US, l'open source doit-il souffrir de la politique de Trump ?
GitHub supprime de sa plateforme les versions open source de DeepNude, l'application qui crée des images de femmes nues en quelques secondes
Le compilateur FlashPascal 2 est disponible sous licence GPL sur GitHub, avec le code source Delphi 6 complet