Le dépôt
en chiffres
Décompte sur la branche main. Les lignes sont les lignes non vides de code source, sans les fichiers de verrouillage, les artefacts de build ni le code tiers embarqué.
projets
langages de programmation
commits
fichiers suivis
lignes de code
Trente projets,
cinq répertoires
Chaque répertoire a un sens précis, et un projet vit dans celui qui dit ce qu’il est.
flokzy
products/flokzy
- TypeScript
- Kotlin
sunflow
products/sunflow
- Go
- TypeScript
crypto-ide
products/crypto-ide
- TypeScript
lavender
products/lavender
- Rust
- TypeScript
kvbnews
products/kvbnews
- Go
- TypeScript
- Python
drukko
products/drukko
- TypeScript
noir-app
products/noir-app
- TypeScript
noirwallet
products/noirwallet
- TypeScript
pikajuoksu
products/pikajuoksu
- TypeScript
pikajuoksu-server
products/pikajuoksu-server
- TypeScript
levonne
products/levonne
- Go
- Dart
foldtools
products/foldtools
- Kotlin
- Swift
noir-bots
products/noir-bots
- Python
flokzyweb
products/flokzyweb
- TypeScript
etat
products/etat
- Java
- Python
bookdiscord
products/bookdiscord
- JavaScript
noirsystems-site
web/noirsystems-site
- TypeScript
noir-bzh
web/noir-bzh
- TypeScript
redstone-site
web/redstone-site
- TypeScript
xandra-css
libs/xandra-css
- CSS
- JavaScript
pikajuoksu-core
libs/pikajuoksu-core
- TypeScript
gitcom
tools/gitcom
- Python
gity
tools/gity
- JavaScript
migration
tools/migration
- Shell
- Python
gopolars
research/gopolars
- Go
+5
projets internes, non listés ici
En quoi
c’est écrit
Lignes de code par langage, sur l’ensemble du dépôt.
| Langage | Lignes de code |
|---|---|
| 372 597 | |
| 75 395 | |
| 65 277 | |
| 44 834 | |
| 44 535 | |
| 24 050 | |
| 23 939 | |
| 21 831 | |
| 11 234 | |
| 17 952, C++, SQL, Dart, Swift |
Le graphen’a aucune arête
Nx voit trente projets et aucune dépendance entre eux. C’est l’état mesuré, et nous le gardons ainsi : aucun produit n’importe le code d’un autre produit.
Laisser le graphe déconnecté. Ne pas fabriquer d’arêtes pour qu’il ait l’air d’un monorepo.
Le seul vrai lien est un protocole
Sunflow dialogue avec Flokzy en HTTP, via un protocole versionné, une fixture de test et une file d’envoi. Deux programmes qui communiquent par le réseau, ce n’est pas un import : le graphe a donc raison de ne pas le tracer.
Ce qu’apporte un seul dépôt
- Un seul clone
- Une seule installation des outils
- Une seule CI
- Un seul endroit où chercher
Quatre règles
qui tiennent le tout
Aucun produit n’en importe un autre
Un produit peut utiliser libs/ et son propre code. Les produits communiquent entre eux par une API, un contrat d’événements ou un client généré.
libs/ se mérite
Du code passe dans libs/ quand un deuxième produit, dans un autre domaine, l’utilise déjà. Il n’y a pas de fourre-tout partagé.
Chaque projet gère son installation
Chaque projet garde son propre gestionnaire de paquets et son propre fichier de verrouillage. La racine installe Nx, et rien d’autre.
Les secrets restent dehors
Les fichiers d’environnement, les clés et les magasins de clés sont ignorés par git, et chaque push analyse tout l’historique à la recherche de fuites.
Sept commandes
pour trente projets
Les noms de tâches sont les mêmes dans tous les projets, quel que soit l’outil en dessous : Gradle, Go, pnpm, Maven ou pytest.
Les mêmes cibles partout
- build
- test
- lint
- typecheck
- format
- dev
- e2e
- integration-test
- package
- deploy
pnpm bootstrap# chaînes d’outils, installation, hooks git, bilan de santépnpm env:check# ce qui ne va pas sur cette machine, et comment le corrigerpnpm projects# ce qui existepnpm graph# comment tout s’articulepnpm affected# lint, typecheck, tests et build, uniquement sur ce qui a changépnpm check# frontières de dépendances et contrat de structurenpx nx run <project>:<target># un projet, une tâche
À chaque push,
un seul pipeline
La CI exécute les mêmes scripts que vous sur votre machine, et uniquement pour les projets touchés par le changement.
Analyse des secrets
gitleaks analyse tout l’historique, après qu’un test témoin a prouvé qu’il détecte une clé placée exprès.
gitleaks git .Chaînes d’outils
mise installe les versions exactes fixées dans mise.toml.
mise installFrontières
pnpm check introduit d’abord une dépendance interdite connue : un résultat propre prouve que les règles ont vraiment tourné.
pnpm checkProjets affectés
Nx détermine quels projets le changement touche.
nx show projects --affectedInstallation
Seuls les projets affectés installent leurs dépendances.
pnpm install:affectedVérification
Lint, typecheck, tests et build, trois projets à la fois.
pnpm affected --parallel=3
Envie de travaillerdans ce dépôt ?
Aucun poste n’est ouvert pour le moment, mais les candidatures spontanées sont lues. Dites-nous sur quel produit vous voulez travailler.