Aller au contenu

Contribuer

Le guide complet est .github/CONTRIBUTING.md, et c’est lui qui est tenu à jour. Cette page donne la forme du cycle, pour que vous sachiez dans quoi vous entrez avant de cloner. Le code, les commentaires et la documentation s’écrivent en anglais ; l’interface est livrée en français et en anglais, le français étant la langue source.

Il vous faut Node 22.12 ou plus récent, pnpm 12.5.1, et Docker pour le PostgreSQL local.

  1. pnpm install, puis docker compose -f docker-compose.dev.yml up -d pour la base de données. Cette pile tourne sous son propre projet compose, si bien qu’elle se tient à côté d’une instance auto-hébergée.

  2. Copiez apps/api/.env.example vers apps/api/.env et renseignez ses secrets, sinon l’étape suivante s’arrête sur une URL de base de données vide.

  3. pnpm --filter @badlen/shared build, avant que quoi que ce soit d’autre ne passe le typage : l’API lit ce paquet à travers sa sortie compilée.

  4. pnpm --filter @badlen/api exec prisma migrate dev pour le schéma, puis pnpm dev, qui sert l’API sur :3001 et l’application web sur :5173.

L’espace de travail compte cinq paquets : apps/api (NestJS, Prisma), apps/web (React, Vite, Tailwind), packages/shared (les types du domaine, le schéma d’import, la monnaie en Decimal), packages/mcp, et docs (Astro et Starlight), qui est ce site ; tools/ à côté d’eux porte les balayages lancés contre une instance vivante.

Ce site s’écrit dans le même dépôt que le code qu’il décrit. Ses pages sont les fichiers Markdown de docs/src/content/docs/, imbriqués un niveau plus bas que ce chemin ne le laisse croire : la documentation est dans docs/src/content/docs/docs/, sa version française dans docs/src/content/docs/fr/docs/, et pnpm --filter @badlen/docs dev sert l’ensemble. L’anglais fait foi et le français le suit ; pnpm translations dit quelles pages ont pris du retard. Le guide porte le reste, sous The documentation site.

Les mêmes contrôles que lance la CI, depuis la racine du dépôt :

Fenêtre de terminal
pnpm format:check
pnpm -r lint
pnpm -r typecheck
pnpm -r test
pnpm -r build

Les suites qui demandent un vrai PostgreSQL s’excluent elles-mêmes de ce passage, et la CI vérifie qu’aucune ne l’a fait. Rejouez-les comme le fait la CI, sur un port à vous : PG_PORT=55613 pnpm live.

Un changement de schéma livre sa migration générée sous apps/api/prisma/migrations, une nouvelle chaîne visible par l’utilisateur existe à la fois dans locales/fr et locales/en avec les mêmes clés, et aucun chiffre réel, numéro de compte ou secret ne va dans le diff. Les sujets de commit sont concis et à l’impératif, comme dans Add cost basis to positions view. Gardez la prose en anglais, gardez-en les tirets dehors, et n’ajoutez aucune ligne de co-auteur.

Les contributions sont sous licence AGPL-3.0, et le code de conduite s’applique. Un problème de sécurité passe par SECURITY.md, jamais par une pull request publique.

Confidentialité