assemblee-virtuelle / archipelago

Fostering interconnections between communities by creating synergies between their platforms
Apache License 2.0
14 stars 6 forks source link

[Release] v2.0.0 #162

Closed mguihal closed 2 months ago

mguihal commented 4 months ago

Contenu de la release

Deadline

Cette branche peut être mergée sur master à partir du 3 avril 2024

On se laisse 1 mois pour ajouter d'autres breaking changes sur cette release avant de la merger, afin de ne pas multiplier les releases majeures.

Guide de migration

1/ Passage en Node 20

rm -rf frontend/node_modules
rm -rf middleware/node_modules
nvm install v20.10.0
nvm use v20.10.0
cd frontend && yarn && cd -
cd middleware && yarn && cd -

2/ Changement d'arborescence des ressources

3/ Changement de nom du dossier contenant les fichiers buildés

Le dossier cible contenant les fichiers buildés est maintenant /dist et non plus /build.
Il est nécessaire de changer ce dossier dans le Dockerfile de la partie frontend (comme fait ici)

4/ Changement d'emplacement du fichier index.html

Le fichier html qui charge l'application était auparavant situé dans le dossier /public/index.html, il est maintenant situé directement à la racine /index.html.
Il contient également la ligne suivante en plus à la fin du body (à rajouter si ce fichier est personnalisé):

<script type="module" src="/src/index.tsx"></script>

5/ Changement des commandes de dev

Auparavant, pour démarrer le frontend en mode dev, il fallait faire yarn start, désormais il faut faire yarn dev.
La commande pour builder l'application reste inchangée : yarn build.
Une nouvelle commande yarn preview s'ajoute, pour tester l'application localement une fois buildée (voir https://vitejs.dev/guide/cli.html#vite-preview)

6/ Changement des variables d'environnement

Auparavant, les variables d'environnement (REACT_APP_MIDDLEWARE_URL et REACT_APP_MAPBOX_ACCESS_TOKEN) étaient utilisés à divers endroits du code. Désormais, elles sont regroupées dans le fichier /config/config.ts pour plus de maintenabilité. De plus, ces variables sont renommées désormais en VITE_MIDDLEWARE_URL et VITE_MAPBOX_ACCESS_TOKEN.

7/ Utilisation de Typescript

Une configuration Typescript a été mise en place (/tsconfig.json).
Pour l'instant, seuls deux fichiers ont été migrés en Typescript :

Pour les instances qui surchargent le fichier /src/config/config.js actuellement, il est nécessaire de renommer le fichier en .ts.

Le reste des fichiers sera migré dans un second temps.

8/ Utilisation de ESLint

Une configuration ESLint a été mise en place (/.eslintrc.js), ainsi qu'une configuration basique Prettier (dans package.json). Une commande yarn lint a été rajoutée permettant de valider les fichiers via ESLint. Pour l'instant le linting n'est pas automatisé. Il convient à chacun de paramétrer son IDE pour ces outils.

9/ Migrations en base de données à effectuer

Suite à la mise-à-jour de Semapps middleware en 0.7.0, il est nécessaire de faire une migration en base de données.
Celle-ci peut être effectuée via la commande yarn run dbMigrate up --name 1715265397910_archipelago-updateActivitypubCollections

mguihal commented 2 months ago

La dernière PR bloquante sur la configuration ayant été rejetée, cette release v2.0.0 d'Archipelago est désormais prête.

Voici ce que je propose dans l'ordre :

mguihal commented 2 months ago

Mmh, je viens de voir qu'une release Breaking Change de Semapps middleware (v0.7.0) est sortie il y a quelques jours (j'avais raté l'info). Je me tâte à l'intégrer dans cette release aussi si les changements sont breaking... mais ça retarderait encore une fois la release si les changements sont importants, je vais investiguer

EDIT : Proposition d'upgrade ici : https://github.com/assemblee-virtuelle/archipelago/pull/180