etalab / transport-site

Rendre disponible, valoriser et améliorer les données transports
https://transport.data.gouv.fr
195 stars 30 forks source link

Mises à jour javascript (première passe du trimestre) #4287

Closed thbar closed 1 week ago

thbar commented 3 weeks ago

Je fais une passe de MAJ sans chercher à passer les MAJ majeures (= je ne vais que rattraper les mineures pour l'instant), pour aller chercher les majeures plus sereinement après.

Ça ne touche plus ou moins que des éléments du stack de déploiement et pas trop des éléments fonctionnels, pour dégrossir.

À ne pas merger, j'aimerais:

Commandes utilisées

Je vais faire une PR de doc avec les commandes recommandées (bonne idée de @vdegove), les voilà rapidement:

# voir plus bas pour un exemple d'output
yarn outdated

# pour upgrader des packages
yarn upgrade xyz

Avant

Après

socket-security[bot] commented 3 weeks ago

👍 Dependency issues cleared. Learn more about Socket for GitHub ↗︎

This PR previously contained dependency changes with security issues that have been resolved, removed, or ignored.

View full report↗︎

thbar commented 1 week ago

J'ai fabriqué un diff et je l'ai donné à manger à ChatGPT et Claude.AI. Ca vaut ce que ça vaut et le risque d'hallucination est important, mais je le mets en appui à cette review.

Prompt: Can you summarise the components which have changed (upgraded, removed, added) between our master branch and our upgrade branch? Here is the yarn.lock diff.

ChatGPT

The `yarn.lock` diff between the master and upgrade branches shows multiple changes in dependencies: ### Upgraded Packages - **@ampproject/remapping** from `2.2.1` to `2.3.0`. - **@babel/code-frame** updated from `7.22.10` to `7.26.2` with new dependencies like `@babel/helper-validator-identifier`, `js-tokens`, and `picocolors`. - **@babel/compat-data** from `7.22.9` to `7.26.2`. - **@babel/core** upgraded from `7.22.10` to `7.26.0`. - **@babel/generator**, **@babel/helpers**, **@babel/parser**, **@babel/types**, and many more related Babel packages have been upgraded to versions around `7.25.9` and `7.26.2`. ### Added Packages - New Babel helper and plugin packages have been added, such as: - **@babel/helper-annotate-as-pure@7.25.9** - **@babel/helper-builder-binary-assignment-operator-visitor@7.25.9** - **@babel/helper-member-expression-to-functions@7.25.9** - **@babel/helper-simple-access@7.25.9** - **@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.25.9** - **@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.25.9** - **@babel/plugin-transform-arrow-functions@7.25.9** ### Removed Packages - Several older Babel helpers and plugins have been replaced with newer versions or have been refactored into combined dependencies. - Removed plugins like **@babel/plugin-syntax-async-generators@7.8.4**, **@babel/plugin-syntax-class-properties@7.12.13**, and **@babel/plugin-syntax-dynamic-import@7.8.3**. These changes focus on upgrading core Babel packages and introducing new helpers to enhance performance, fix bugs, and support newer JavaScript syntax. Let me know if you need more details or analysis of specific sections.

Claude

I'll analyze the yarn.lock diff and categorize the major component changes: Major Version Upgrades: 1. Babel ecosystem (@babel/*) from 7.22.x to 7.25.x/7.26.x, including: - @babel/core: 7.22.10 → 7.26.0 - @babel/preset-env: 7.22.10 → 7.26.0 - Multiple babel plugins and helpers 2. Webpack related: - webpack: 5.88.2 → 5.95.0 - enhanced-resolve: 5.15.0 → 5.17.1 - watchpack: 2.4.0 → 2.4.2 - terser: 5.19.2 → 5.36.0 3. PostCSS/CSS Tools: - css-functions-list: 3.2.0 → 3.2.3 - known-css-properties: 0.27.0 → 0.29.0 - postcss: Updated to 8.4.47 4. Development Tools: - chokidar: 3.5.3 → 4.0.1 - readdirp: 3.6.0 → 4.0.2 - browserslist: Updated to 4.24.2 - electron-to-chromium: 1.4.490 → 1.5.49 New Dependencies Added: 1. @parcel/watcher: 2.4.1 (new dependency) 2. @rtsao/scc: 1.1.0 3. data-view-buffer: 1.0.1 4. es-define-property: 1.0.0 5. es-errors: 1.3.0 6. flat: 5.0.2 7. keyv: 4.5.3 8. node-addon-api: 7.0.0 9. possible-typed-array-names: 1.0.0 Removed Dependencies: 1. Removed some direct color-convert dependencies 2. Removed some binary-extensions dependencies 3. Removed direct to-fast-properties dependency Notable Changes in Build Tools: 1. Changed from acorn-import-assertions to acorn-import-attributes 2. Updated several polyfills and transforms 3. Upgraded most @babel/* packages to newer versions for improved compatibility 4. Enhanced support for Unicode and RegExp features The changes suggest a significant modernization of the build toolchain, with particular focus on improved JavaScript/TypeScript processing capabilities and better CSS tooling support.
thbar commented 1 week ago

Ah oui la violence du diff…

Oui, c'est tout le souci avec le stack Javascript pour la partie build. On peut fortement réduire notre stack javascript quand on passera au DSFR, en passant de webpack à esbuild (qui a beaucoup moins de dépendances et qui est le standard actuel dans Phoenix).

Juste pour être sûr : les titres des commits, c’est bien les commandes utilisées ? Si oui, peut-être le mettre dans le descriptif de la PR + mettre à jour le learning_track.md pour expliquer au prochain comment faire.

C'est tout à fait ça. Ça marche je prépare tout ça, c'est tout à fait rentable.

socket-security[bot] commented 1 week ago

Report too large to display inline

View full report↗︎

thbar commented 1 week ago

Ah oui la violence du diff…

@vdegove et tu vois du coup pourquoi je n'ai passé que les MAJ mineures 🤣

thbar commented 1 week ago

Hey @vdegove:

Si tu as besoin de quelque chose pour finaliser la review de la présente PR, fais-moi signe !