Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Migration à Rails 6 #4354

Closed
11 of 12 tasks
n-b opened this issue Sep 24, 2019 · 8 comments
Closed
11 of 12 tasks

Migration à Rails 6 #4354

n-b opened this issue Sep 24, 2019 · 8 comments
Assignees
Labels

Comments

@n-b
Copy link
Contributor

n-b commented Sep 24, 2019

  • Attendre que les gems GraphQL soient compatible Rails 6
  • Utiliser des versions upstream des gems (plutôt que nos forks)
  • Mettre à jour Capybara (Bumper Capybara #4536)
  • Mettre à jour les gems
  • Faire passer les tests avec Rails 6
  • Tester l'application manuellement
  • Déployer le passage à Rails 6

Après la migration

  • Passer de la config par défaut Rails 5 à Rails 6
  • Activer les belongs_to requis par défaut
  • Refactorer le chargement de BlobVirusScannerConcern (cf. initializers/active_storage.rb)
  • Ré-activer le linter Rails/UniqueValidationWithoutIndex, et rajouter des index aux colonnes concernées (Ajouter des index aux colonnes uniques #6013)
  • Activer zeitwerk
@kemenaran
Copy link
Contributor

Pour l'instant je crois qu'on a quelques points bloquants :

  • La compatibilité des gems GraphQL avec Rails 6
  • Un peu de code dans une gem forkée à nous, qu'il faudrait qu'on nettoie.

@tchak a déjà pas mal travaillé dessus ; je pense que c'est bien s'il termine le sujet lui-même. (/cc @pengfeidong)

@kemenaran
Copy link
Contributor

@tchak j'ai essayé de bumper les gems (hors passage à Rails 6). Mais je tombe sur la mise à jour de Sprockets qui nous demande de créer un fichier app/assets/config/manifest.js. C'est pas quelque chose que tu aurais déjà fait dans une branche, par hasard ?

@tchak
Copy link
Member

tchak commented Mar 10, 2020

@kemenaran j'ai bloqué la version de sprockets – migrer pose des problèmes, ce n’est pas nécessaire pour rails 6 et on s'en sert de moins en moi de sprockets. J'ai bon espoir qu'on vire sprockets entièrement un de ces jours.

@n-b
Copy link
Contributor Author

n-b commented Mar 10, 2020

Le manifest.js remplace simplement la ligne Rails.application.config.assets.precompile += ... dans initializers/assets.rb. La doc est plutôt bien fichue. On a eu un souci sur PdE, parce qu’on avait pas retiré la ligne dans assets.rb, que certains fichiers étaient compilés plusieurs fois, que ça se terminait en race condition qui faisait crasher sassc.

@kemenaran
Copy link
Contributor

État des lieux : y'a une branche, qui marche, mais sur laquelle il faut corriger des tests liés aux PJ

@kemenaran kemenaran self-assigned this Jun 23, 2020
@kemenaran kemenaran mentioned this issue Jul 2, 2020
@kemenaran
Copy link
Contributor

On est maintenant sur Rails 6 !

Maintenant, reste le nettoyage post-migration. (Voir la liste ci-dessus.)

@kemenaran
Copy link
Contributor

Pour zeitwerk, ça peut s'activer en 1/4h de travail à peine : y'a une juste tâche rake zeitwerk:check qui dit de renommer quelques constantes, on fait ça, et hop.

Le seul souci, c'est que le debugger qu'on utilise, byebug, n'est pas compatible avec zeitwerk (deivid-rodriguez/byebug#564). On peut donc soit:

  • Changer de débogueur (y'en a des compatibles)
  • Attendre un moment
  • Contribuer une compat avec zeitwerk

Dans tous les cas, y'a pas d'urgence. On peut remettre ça à plus tard.

@kemenaran
Copy link
Contributor

J'ai l'impression que globalement la migration est faite.

Je crée une issue pour le seul truc qui restait, et hop.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
3 participants