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

[TECH] Passage de PixCertif vers Ember Octane (3.15) #976

Merged
merged 20 commits into from
Jan 24, 2020

Conversation

laura-bergoens
Copy link
Member

@laura-bergoens laura-bergoens commented Jan 15, 2020

🦄 Problème

Ember est officiellement passé sur sa version Octane, avec ses changements de syntaxe, de styles, de procédés, etc...
Ils font ça doucement mais sûrement, et le code se déprécie au fur et à mesure des releases.
Prenons le rythme et transformons PixCertif en une appli Ember Octane

🤖 Solution

J'ai suivi le guide d'upgrade d'Ember vers 3.15. C'est pourquoi le premier commit contient toutes les modifs de package[-lock] nécessaires + quelques modifs à la volée pour faire dans un premier temps passer les tests au vert (sauf les tests de lint, le passage en 3.15 est assez bouleversant !).
Ensuite, j'ai pris un dossier par commit, et refacto le contenu en style Octane.
Normalement chaque commit passe les tests (sauf les premiers commits qui ne passent pas le linter).
Venez-me voir si vous voulez un digest des changements ! 😺
En gros, ce que vous allez voir de façon récurrente :

  • Les fichiers contiennent maintenant des classes en natif JS
  • Ember recommande maintenant d'utiliser les glimmer component
  • Des décorateurs pour les actions et les computed (impact sur la manière d'appeler les actions dans les templates)
  • Des décorateurs pour les services
  • Stop la syntaxe pénible model.get('attr') ou model.set('attr', value), maintenant c'est à la JS model.attr = value !
  • On renforce l'application du pattern Data-Down, Actions Up (ou dataflow unidirectionnel), tel que prescrit par la communauté Ember

🌈 Remarques

On utilise le composant ember-cli-notifications pour les notifs. On était en version 4.3.3 jusqu'à présent. Le truc c'est que cette version ne marche plus avec Octane, donc on a aussi monté la version du composant jusqu'à sa latest (à savoir 6.0.0). AUTRE problème suite à ça, le composant ne s'affiche plus sous IE (une histoire de css incompatible avec IE, voir @Krysthalia pour + d'info).
Du coup, la solution en attendant en deux temps :

@Radioreve
Copy link
Contributor

Yeah ! Je voulais le faire sur orga mais tu m'as devancé ! 👏 #teamFusée

Copy link
Contributor

@jbuget jbuget left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Merci et bravo pour tout le taf !

@pix-service
Copy link
Contributor

@asrodride asrodride self-requested a review January 21, 2020 08:20
Copy link
Contributor

@asrodride asrodride left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@laura-bergoens comme vu ensemble :

  • les notifications ne s'affichent plus sous IE 11
  • le numéro de certif sur la page de finalisation de session n'est pas retranscrit correctement : je vois 10000000 sur la certif du candidat
    image

Alors que sur la page de finalisation de session, je vois 1
image

Copy link
Contributor

@dherault dherault left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👍

@asrodride asrodride self-requested a review January 22, 2020 13:50
@asrodride asrodride added Func Review OK PO validated functionally the PR and removed 👀 Func Review Needed labels Jan 22, 2020
laura-bergoens added 4 commits January 23, 2020 17:59
Just the minimum necessary to pass all tests, except
for linter
Except for the ApplicationAdapter, which has a specific
mixin mechanism with ember-simple-auth
laura-bergoens added 16 commits January 23, 2020 17:59
Except for the routes with mixin from ember-simple-auth
Correcting new syntax in component templates, and turning
ember component into glimmer component
We have this weird habbit to create a component that will wrap
the template we want to render for a route. This is too bad cause it
causes an indirection (and more files created). We can directly define
this template and its behaviour at the route level.
Ember community is emphasizing on applying Data-Down, Actions Up pattern.
It means that a child component cannot alter a data coming from a parent
component. It's also known as unidirectional data flow.
We are re-enforcing this pattern at some places where we were
altering objects that come from top levels
Wrapping the app is now useless since this RFC from Ember, for more explanation :
emberjs/rfcs#280
NotificationsContainer component was already present is
parent HBS, so it was redundant
ember-cli-notifications, to its latest version, introduces changes
on its CSS. More specifically, it now uses the var() property in CSS.
Unfortunately, this property is not supported by IE.
Solution for now : we first left an issue on their repo to ask whether
or not they plan to support IE soon, and we added a specific css
to override native component css for IE
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Func Review OK PO validated functionally the PR team-certif Tech Review OK
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

6 participants