Merci de garder les changements petits, vérifiés et faciles à relire.
- Installer les dépendances avec
bun install. - Copier
.env.examplevers.env. - Rendre le fichier disponible pour l'API avec
ln -s ../../.env apps/api/.env. - Démarrer PostgreSQL avec
docker compose up -d. - Initialiser la base avec
bun run db:pushpuisbun run db:seed. - Lancer le projet avec
bun run dev.
Pour travailler sur l'application desktop, il faut en plus :
| Prérequis | Version | Installation |
|---|---|---|
| Rust (rustc + cargo) | >= 1.77.2 | rustup.rs |
| Linux : WebKitGTK 4.1, librsvg2, etc. | — | sudo apt install libwebkit2gtk-4.1-dev librsvg2-dev libayatana-appindicator3-dev libjavascriptcoregtk-4.1-dev libsoup-3.0-dev libxdo-dev libssl-dev |
| Windows : MSVC Build Tools | VS 2022+ | Visual Studio Installer → « Desktop development with C++ » |
Ensuite :
bun run tauri:dev # Build frontend + sidecar + lance l'app desktop (premier cargo build ~10 min)- Utiliser Bun pour les commandes du monorepo.
- Ne pas éditer les fichiers sous
generated/,dist/,target/ounode_modules/. - Mettre à jour
packages/api-spec/openapi.yamlavant de régénérer les clients. - Garder les changements concentrés sur un seul sujet par pull request.
- Ne jamais committer
.env,cert.pfx,*.key, credentials, exports utilisateurs, fichiers uploadés ou binaires sidecar (desktop-api-*).
Exécuter au minimum les commandes suivantes :
bun run lint
bun run typecheck
bun run --filter @workspace/web buildSi vous modifiez le contrat OpenAPI, relancez aussi :
bun run codegenSi vous modifiez la base de données, validez également le schéma avec :
bun run db:pushSi vous modifiez le code desktop (Rust, desktop-db, desktop-api) :
cargo check --manifest-path apps/desktop/src-tauri/Cargo.toml # Vérifie le code Rust
bun run build:desktop # Vérifie la compilation du sidecar- TypeScript uniquement.
- Respecter le formatage existant : indentation à 2 espaces, guillemets doubles, point-virgules, virgules terminales.
- Nommer les fichiers en kebab-case, les composants React en PascalCase et les hooks avec le préfixe use.
- Ajouter des commentaires uniquement lorsqu'un bloc n'est pas évident à lire.
Chaque pull request devrait contenir :
- un résumé clair de l'impact utilisateur ;
- les commandes de vérification exécutées ;
- les changements de schéma ou d'OpenAPI, si applicables ;
- une capture d'écran pour les changements frontend visibles.
Les messages de commit suivent le style Conventional Commits, par exemple feat:, fix:, docs: ou chore:.
Le dépôt valide les messages de commit via un hook commit-msg installé par bun install.
Format recommandé :
type(scope): résumé court
Exemples valides :
feat(api): add attachment size guardfix(web): handle oauth redirect statedocs: document railway deploymentchore(ci): update checkout action
Les releases et le changelog sont générés automatiquement à partir des Conventional Commits fusionnés sur main.
- Workflow GitHub Actions :
.github/workflows/release-please.yml - Config Release Please :
release-please-config.json - Changelog généré :
CHANGELOG.md
Si vous voulez qu'un changement apparaisse correctement dans les notes de release, utilisez un type de commit explicite comme feat, fix ou perf.
Toute contribution extérieure au dépôt est soumise à un Contributor License Agreement. Lors de l'ouverture d'un premier PR, le bot CLA Assistant commentera automatiquement avec les instructions — il suffit de répondre :
I have read the CLA Document and I hereby sign the CLA
pour signer. La signature est enregistrée dans signatures/v1/cla.json du dépôt et vaut pour tous vos PRs futurs.
En signant, vous confirmez :
- que vos contributions sont votre création originale ;
- que vous autorisez l'éditeur à les redistribuer (y compris à les relicencier sous une autre licence, par exemple commerciale) ;
- que vous accordez la licence de brevet nécessaire.
Les bots (Dependabot, Copilot, CodeRabbit, github-actions, Renovate) sont exemptés via l'allowlist du workflow.
Pour une faille de sécurité, ne créez pas d'issue publique. Suivez la procédure décrite dans SECURITY.md.