Migrer depuis l'ancienne structure multi-dépôts¶
En juin 2026, Silex est passé d'un méta-dépôt d'environ 25 sous-modules git (sous packages/*) à
un monorepo unique. L'historique git complet et la paternité (authorship) de chaque contributeur
ont été préservés.
Ce guide s'adresse aux contributeurs qui avaient un clone local, une branche ou une pull request avant la bascule. Si vous partez de zéro, rien de tout ceci ne vous concerne — suivez simplement la configuration de développement, vous êtes déjà sur la nouvelle structure.
Ce qui a changé¶
- L'application Silex est désormais un seul package (un
package.json, un seul build). Le code est réparti par rôle :editor/,server/,common/,grapesjs-plugins/,server-rust/,desktop/. Les anciens sous-modulespackages/<sous-projet>/ont disparu. - La branche par défaut
maina été repointée vers l'historique du monorepo. L'ancienmaindu méta-dépôt est conservé sous la branchelegacy-mainet le tagpre-monorepo— rien n'est perdu. - Comme
mainporte maintenant un historique sans ancêtre commun, un simplegit pullsur un ancien clone tenterait de fusionner deux historiques disjoints. Ne faites pas ça — suivez les étapes ci-dessous.
Mettre à jour votre clone local¶
Option A — Clone neuf (le plus simple)¶
git clone https://github.com/silexlabs/Silex.git
cd Silex
pnpm install
pnpm build && pnpm start # éditeur sur http://localhost:6805
Les sous-modules dashboard ne sont nécessaires que pour faire tourner le SaaS multi-sites complet,
pas pour développer l'éditeur. Si vous les voulez : git submodule update --init.
Option B — Mettre à jour votre clone existant¶
git fetch origin --prune
git switch main
git reset --hard origin/main # l'ancien main est conservé sur origin sous 'legacy-main' / tag 'pre-monorepo'
rm -rf node_modules
pnpm install # la toolchain est désormais pnpm
Si vous aviez une branche ou une pull request en cours¶
Votre branche repose sur l'ancienne arborescence packages/<sous-projet>/…, qui ne correspond
pas un-pour-un aux nouveaux chemins. Ne faites pas de rebase ni de cherry-pick à travers la
réorganisation — réappliquez plutôt votre changement sous forme de patch sur la nouvelle structure :
git diff legacy-main...ma-feature > mon-changement.patch # exportez votre travail en diff
git switch main && git switch -c ma-feature-monorepo
git apply --reject mon-changement.patch # corrigez les chemins, résolvez les .rej
Pour de petits changements, il est souvent plus rapide de refaire l'édition à la main sur la nouvelle
structure. Ouvrez votre PR sur main — on vous aide volontiers à porter votre travail, demandez sur
le chat.
Où sont passés les anciens dépôts¶
- Ancien
maindu méta-dépôt → branchelegacy-main+ tagpre-monorepo(référence en lecture seule). - Sous-dépôts par package (
silex-lib,grapesjs-*, …) → consolidés dans le monorepo. Les dépôts autonomes restent en ligne pendant la transition et seront archivés en lecture seule plus tard ; tout le nouveau travail se fait dans le monorepo.
Pourquoi un monorepo¶
Consolider Silex en un monorepo unique est une étape de la sortie des plateformes propriétaires (GitHub, npm) vers une infrastructure libre — qui fait partie des travaux financés par NLnet (NGI0 Commons Fund, projet 2025-10-133).
Éditer cette page sur GitLab