Skip to content

Latest commit

 

History

History
130 lines (86 loc) · 4.62 KB

File metadata and controls

130 lines (86 loc) · 4.62 KB

Contribuer à TPI Flow

Merci de garder les changements petits, vérifiés et faciles à relire.

Préparer l'environnement

Web (frontend + API)

  1. Installer les dépendances avec bun install.
  2. Copier .env.example vers .env.
  3. Rendre le fichier disponible pour l'API avec ln -s ../../.env apps/api/.env.
  4. Démarrer PostgreSQL avec docker compose up -d.
  5. Initialiser la base avec bun run db:push puis bun run db:seed.
  6. Lancer le projet avec bun run dev.

Desktop (Tauri — optionnel)

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)

Règles du dépôt

  • Utiliser Bun pour les commandes du monorepo.
  • Ne pas éditer les fichiers sous generated/, dist/, target/ ou node_modules/.
  • Mettre à jour packages/api-spec/openapi.yaml avant 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-*).

Vérification avant pull request

Exécuter au minimum les commandes suivantes :

bun run lint
bun run typecheck
bun run --filter @workspace/web build

Si vous modifiez le contrat OpenAPI, relancez aussi :

bun run codegen

Si vous modifiez la base de données, validez également le schéma avec :

bun run db:push

Si 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

Style de contribution

  • 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.

Pull requests

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 guard
  • fix(web): handle oauth redirect state
  • docs: document railway deployment
  • chore(ci): update checkout action

Releases

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.

Contributor License Agreement (CLA)

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.

Sécurité

Pour une faille de sécurité, ne créez pas d'issue publique. Suivez la procédure décrite dans SECURITY.md.