# Montée de version des dépendances lyvia-carto
Une branche `upgrade-dependecies` a été créée sur le repository `lyvia-carto`.\
Cette branche contient les différents changements et tests réalisés pour l'étude.
## Actions réalisées:
La priorité a été mise sur les dépendances suivantes:
* @gisosteam/rol & @gisosteam/aol: nos lib React et Openlayers
* Eslint
* Lerna: la dépendance qui gère le build et le packaging
* Node: Passage en version 18
* Retrait de Yarn au profit de npm
Dependance | Ancienne Version | Nouvelle Version | Impacts
|- | - | - | - |
@gisosteam/aol <br>@gisosteam/rol | 0.1.3<br>0.1.6 | 0.4.2<br />0.3.3| - Montée de version d'openlayers et de bhreq<br>- TOC à refondre<br>- Perte des widgets de navigation "Vue précédente/suivante"<br>- Monter de version de Node & SASS
ol (openlayers) | 6.4.3 | 7.3.0 | - Certains Enum sont devenus des types (donc correction du code) sinon R.A.S.
Lerna | 3.22.1 | 7.4.2 |
Node| 14.X | 18.16.0 |
Turf (manipulation de géométries coté client)| 6.3.0 | 6.5.0
lodash (Utilitaires Typescript) | 4.17.20 | 4.17.21
moment (Manipulation des dates) | 2.27.0 | 2.29.4
sass (CSS ++)| Migration depuis node-sass |
proj4 | 2.6.1 | 2.9.2
### Dev Dependencies
Dependance | Ancienne Version | Nouvelle Version | Impacts
|- | - | - | - |
babel | 7.10.3 | 7.23.3
@typesjszip | 3.1.7 | 3.4.0
@typescript-eslint/eslint-plugin <br />@typescript-eslint/parser | 2.31.0 | 6.12.0
barrelsby | 2.2.0 | 2.8.1
eslint (pour tapper sur les développeurs qui suivent les normes de programmation) | 6.8.0 | 8.54.0
eslint-config-standard | 14.1.1 | 17.1.0
eslint-plugin-promise | 4.2.1 | 6.1.1
eslint-plugin-react | 7.19.0 | 7.33.2
eslint-plugin-react-hooks | 4.0.0 | 4.6.0
eslint-plugin-standard | 4.0.1 | 5.0.0
## Action à réaliser
Une fois toutes le montées de version effectuées, il sera nécessaire de re tester chaque fonctionnalité afin de validée son bon fonctionnement.
Estimation: `5j` RTU (à ajuster si besoin, ne pas oublier 'la provision sur risque')
### Montée de versions correctives
Au moment de la réalisation, il sera utile d'executer la procédure ci-après afin d'opérer les montées de version sur les dernières versions correctives en date.
```bash
npm i -g npm-check-updates
ncu -i --format group
```
Estimation: `0`
### Refonte de la TOC
La TOC actuel étend un composant de rol. Ce dernier a évolué et ne permet plus d'avoir un `state`.\
Il faut donc soit:
* Modifier Rol pour le ré-autoriser
* Soit refondre légèrement la Toc:
* Retirer le state du TocContainer
* Créer un functional component qui gère l'affichage ou non du TocContainer
Estimation: `2j` RTU
### Outils de navigation
Pour une raison non identifiée (sûrement une erreur humaine), les widgets de navigation ont été supprimés des librairies Rol et Aol.\
Dans la mesure où il n'y a pas de raison technique à cet abandon, il faudra remettre dans les librairies ces widgets.
Estimation: `1j` RTU