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

[Release] v2.0.0 #162

Merged
merged 13 commits into from
May 15, 2024
Merged

[Release] v2.0.0 #162

merged 13 commits into from
May 15, 2024

Conversation

mguihal
Copy link
Collaborator

@mguihal mguihal commented Mar 3, 2024

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

  • Pour les dévelopements en local, il faut supprimer les dépendances du frontend et middleware (avec rm -rf node_modules), upgrader votre version de Node (si vous utilisez nvm, vous pouvez faire nvm install v20.10.0, nvm use v20.10.0, puis réinstaller les dépendances avec yarn.
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 -
  • Pour les instances en production, il faut remplacer le Dockerfile par celui présent dans le répertoire deploy.

2/ Changement d'arborescence des ressources

  • Si dans les fichiers personnalisés de votre instance Archipelago, vous appeliez les ressources avec la ligne
import * as resources from './resources';

il faut désormais utiliser

import resources from './resources';

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 :

  • /src/index.tsx : Appelé avec son extension dans le index.html, donc difficilement renommable par la suite
  • /src/config/config.ts : Potentiellement customisable et surchargé par les instances, donc autant le renommer dès maintenant

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
Copy link
Collaborator Author

mguihal commented May 6, 2024

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 :

  • Attente de quelques jours le temps qu'au moins @srosset81 et @simonLouvet approuviez ces étapes
  • Release une v1.3.0 avec la version actuelle de master
  • Création d'une branche current-v1.3.0 avec la version actuelle de master pour les personnes qui voudraient continuer d'utiliser la version 1 d'Archipelago et si nécessité d'y merger un fix de sécurité par exemple
  • Merge de cette branche sur master
  • Release une v2.0.0 tagguée comme latest
  • Communication auprès des éventuels utilisateurs de la communauté de l'Assemblée Virtuelle sur le canal Semapps (ou Général ?) ici https://forums.assemblee-virtuelle.org/chat/c/semapps/15

@mguihal
Copy link
Collaborator Author

mguihal commented May 6, 2024

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 : #180

mguihal and others added 2 commits May 14, 2024 21:52
@mguihal mguihal merged commit 36f0e06 into master May 15, 2024
@mguihal mguihal deleted the next-v2.0.0 branch May 15, 2024 20:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants