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] Configuration des workspaces pnpm #10838

Draft
wants to merge 15 commits into
base: dev
Choose a base branch
from

Conversation

bpetetot
Copy link
Contributor

@bpetetot bpetetot commented Dec 17, 2024

🎄 Problème

🎁 Proposition

Travail basé sur la PR #7155

🗒️ TODO

  • Mettre à jour:
    • INSTALLATION.md
    • README.md de chaque app Pix
    • procfile de scalingo (postdeploy)
    • configure.sh
    • les fichier Dockerfile, docker-compose dans les dossiers /docker, /high-level-tests/e2e
    • utiliser pnpm dans /scripts
    • Mettre à jour les configurations .vscode
    • Mettre à jour .husky
    • Dossier /.run ?
  • Appliquer la modification de ce commit pour faire fonctionner la CI.
  • Reprendre le script de migration de la PR [TECH] Utiliser pnpm #7155, le rendre cross-plateforme (utile pour la migration d'autre repo ou la mise à jour de cette branche)

🚀 Déploiement

Important

Pour le déploiement, il semble qu'il soit nécessaire d'avoir:

  • Dans les package.json, la propriété "packageManager": "pnpm@9.15.0"
  • Sur l'instance scalingo de déploiement, la variable d'env PNPM=true

🧦 Remarques

  • Le commit ajoutant la propriété packageManager dans le package.json n'a pas été repris car il ne semble pas nécessaire d'après la documentation (bcf82f5)
  • Le commit concernant Bookshelf n'a pas été repris car la librarie a été supprimée de l'API (fca31e7)
  • Le buildpack nodejs de Scalingo supporte désormais pnpm par défaut. Donc il n'y plus besoin d'avoir un fork du buildpack comme dans la PR originale (https://github.com/Scalingo/nodejs-buildpack/blob/master/CHANGELOG.md#v245---2024-04-29)
  • Le commit modifiant la CI sera fait à la fin car on veut d'abord que ça fonctionne en local (ab06ad1)
  • Le commit corrigeant le build en supprimant polyfillUUID n'a pour le moment pas été repris et sera fait plus tard (voir cette PR [TECH] Suppression de polyfills Intl (PIX-13595) #9820 pour exemple)
  • Le script migrate-to-pnpm a été lançé mais non commité.
    • Sur Mac, nous avons dû modifier le script migrate-to-pnpm.sh pour faire marcher les commandes sed en ajoutant une chaîne vide ('') après le -i.

Important

Il est préférable de partir d'une "clean install" (sans node modules), sinon il faut au préalable les supprimer (dans tous les projets).

🚨 Il est nécessaire de supprimer le répertoire temporaire $TMPDIR/embroider

🧰 Questions / Améliorations

Dans le package.json racine:

  • la commande "build" ne fait le build que des fronts et pas audit logger. Pourquoi ?
  • Pourquoi les commandes lint et test utilisent des regex ?
  • Raccourcir les commandes avec pnpm run (run non obligatoire)
  • A voir si c'est possible de remplacer npm-run-all par pnpm --parallel ou cmd1 && cmd2

🎅 Pour tester

Environnements locaux

Vérifier l'utilisation sur:

  • Mac OS
  • Linux
  • Windows

Tests e2e

  • Tester le script scripts/tests-e2e qui execute les tests e2e dans des images docker

Commandes

Commandes racines:

  • pnpm install
  • pnpm lint
  • pnpm test
  • pnpm dev

Commandes admin

  • pnpm dev

Commandes api

  • pnpm dev
  • pnpm lint
  • pnpm test
  • pnpm db:reset

Commandes audit-logger

  • pnpm dev

Commandes certif

  • pnpm dev

Commandes junior

  • pnpm dev

Commandes mon-pix

  • pnpm dev

Commandes orga

  • pnpm dev

@er-lim er-lim marked this pull request as draft December 17, 2024 13:43
@pix-bot-github
Copy link

Une fois les applications déployées, elles seront accessibles via les liens suivants :

Les variables d'environnement seront accessibles via les liens suivants :

@er-lim er-lim added Development in progress cross-team Toutes les équipes de dev labels Dec 17, 2024
@bpetetot bpetetot force-pushed the tech-return-of-pnpm-workspaces branch 2 times, most recently from 0d3d8a5 to 8fa0f00 Compare December 17, 2024 15:27
package.json Outdated Show resolved Hide resolved
@bpetetot bpetetot force-pushed the tech-return-of-pnpm-workspaces branch 3 times, most recently from 1910374 to 353c577 Compare December 18, 2024 14:32
@bpetetot bpetetot force-pushed the tech-return-of-pnpm-workspaces branch from 353c577 to b8ef0b3 Compare December 18, 2024 14:37
@bpetetot bpetetot force-pushed the tech-return-of-pnpm-workspaces branch from 3809e26 to 6e6f492 Compare December 18, 2024 15:03
@bpetetot bpetetot force-pushed the tech-return-of-pnpm-workspaces branch 3 times, most recently from fa3df60 to 10cdc8d Compare December 18, 2024 15:38
@bpetetot bpetetot force-pushed the tech-return-of-pnpm-workspaces branch 3 times, most recently from 508dc0c to 3703f44 Compare December 18, 2024 15:49
@bpetetot bpetetot force-pushed the tech-return-of-pnpm-workspaces branch 9 times, most recently from 6148543 to 378b9c7 Compare December 19, 2024 11:31
@bpetetot bpetetot closed this Dec 19, 2024
@bpetetot bpetetot reopened this Dec 19, 2024
@1024pix 1024pix deleted a comment from pix-bot-github Dec 19, 2024
@bpetetot bpetetot force-pushed the tech-return-of-pnpm-workspaces branch from 378b9c7 to 45b0bbb Compare December 19, 2024 11:41
@bpetetot bpetetot closed this Dec 19, 2024
@bpetetot bpetetot reopened this Dec 19, 2024
@pix-bot-github
Copy link

Une fois les applications déployées, elles seront accessibles via les liens suivants :

Les variables d'environnement seront accessibles via les liens suivants :

this avoids installing all dependencies from subfolder
@bpetetot bpetetot force-pushed the tech-return-of-pnpm-workspaces branch from 45b0bbb to 5ac07bf Compare December 19, 2024 11:45
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
cross-team Toutes les équipes de dev Development in progress
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants