Types for OGC
Faute de monorepo, ce projet est une librairie NPM qui contient les types partagés entre les projets frontend et backend.
En début de dév, lorsqu'on apporte plusieurs modifs fréquentes à cette lib, on peut utiliser npm link pour utiliser le projet types cloné en local plutôt que sa version publiée sur npm. Pour ça :
- Dans le dossier types, exécuter :
- npm run build
- npm link
- cela (re)créé un lien symbolique npm pour votre projet local types. Il est alors disponible pour d'autres projets.
- Dans un autre projet utilisant types (frontend, backend, ...), exécuter :
- npm link @syd-ogc/types
- remarque : @syd-ogc/types est le name du package linké
- le projet courant référence alors votre dossier types local
- > Remarque : exécuter npm i dans le projet courant fait pointer de nouveau vers les node_modules. Il faudra refaire un npm link pour pointer de nouveau sur le package local.
Une fois la lib dans une version plus aboutie, on va en publier une version sur npm pour la rendre disponible pour les autres - reviewers et pipelines de CI.
#### Déroulement standard
On prend l'exemple où l'on veut faire une évol sur la lib types en version 1.2.3 :
- suffixer la version actuelle d'un -next-{n} : 1.2.3-next-1
- publication manuelle de la lib (cf plus bas)
- utilisation de la version 1.2.3-next-1 dans le projet frontend
Lors de la review, une modification s'avère nécessaire sur la lib :
- bump la version de travail : 1.2.3-next-2
- publication manuelle de la lib (cf plus bas)
- utilisation de la version 1.2.3-next-2 dans le projet frontend
La review est approuvée, la branche frontend prête à être merge. On publie la version suivante de types.
- bump la version : 1.2.4
- > Remarque: pas forcément 1.2.4, car d'autres versions auront déjà pu être publiées entre temps
- merge sur la branche master => publication auto par la CI de la 1.2.4
- utilisation de la version 1.2.4 dans le projet frontend
- merge de la branche frontend
Lors d'un merge sur master, la lib est automatiquement publiée sur npm.
Attention, afin que cela fonctionne comme attendu, avant de push, pensez à :
- faire un npm run build sur votre branche :
- pour regénérer le dist/ (lib/ ici)
- pour regénérer les index.ts
- incrémenter le numéro de version dans le package.json
- faire un npm install pour mettre à jour le package-lock.json, et le commit
Pour publier une nouvelle version de la lib :
1. modifier le numéro de version dans package.json
2. npm i
3. npm run build
4. npm login Se connecter à npmjs.com avec le compte syd_apps (credentials dans lastpass)
5. npm publish (nécessite d'être logged in à npm)