Das Repository
in Zahlen
Gezählt auf dem Hauptbranch. Als Zeilen gelten nicht leere Zeilen Quellcode, ohne Lockfiles, Build-Ausgaben und eingebundenen Fremdcode.
Projekte
Programmiersprachen
Commits
versionierte Dateien
Codezeilen
Dreißig Projekte,
fünf Verzeichnisse
Jedes Verzeichnis steht für genau eine Sache, und ein Projekt liegt in dem, das sagt, was es ist.
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
interne Projekte, hier nicht aufgeführt
Worin es
geschrieben ist
Codezeilen nach Sprache, über das gesamte Repository.
| Sprache | Codezeilen |
|---|---|
| 372.597 | |
| 75.395 | |
| 65.277 | |
| 44.834 | |
| 44.535 | |
| 24.050 | |
| 23.939 | |
| 21.831 | |
| 11.234 | |
| 17.952, C++, SQL, Dart, Swift |
Der Graphhat keine Kanten
Nx sieht dreißig Projekte und keine Abhängigkeiten zwischen ihnen. Das ist der gemessene Zustand, und so soll er bleiben: Kein Produkt importiert Code aus einem anderen Produkt.
Den Graphen unverbunden lassen. Keine Kanten erfinden, nur damit es nach einem Monorepo aussieht.
Die einzige echte Verbindung ist ein Protokoll
Sunflow spricht mit Flokzy über HTTP, mit einem versionierten Protokoll, einer Test-Fixture und einer Outbox für die Zustellung. Zwei Programme, die über das Netzwerk miteinander sprechen, sind kein Import. Der Graph zeichnet diese Verbindung also zu Recht nicht ein.
Was ein einziges Repository bringt
- Ein Klon
- Ein Toolchain-Setup
- Eine CI
- Ein Ort zum Suchen
Vier Regeln,
die alles zusammenhalten
Kein Produkt importiert ein anderes
Ein Produkt darf libs/ und seinen eigenen Code nutzen. Produkte sprechen miteinander über eine API, einen Event-Vertrag oder einen generierten Client.
libs/ muss man sich verdienen
Code wandert erst nach libs/, wenn ein zweites Produkt aus einem anderen Bereich ihn bereits nutzt. Eine gemeinsame Ablage für alles gibt es nicht.
Jedes Projekt installiert selbst
Jedes Projekt behält seinen eigenen Paketmanager und sein eigenes Lockfile. Im Root-Verzeichnis wird Nx installiert und sonst nichts.
Secrets bleiben draußen
Umgebungsdateien, Schlüssel und Keystores werden von git ignoriert, und jeder Push durchsucht die gesamte Historie nach Lecks.
Sieben Befehle
für dreißig Projekte
Die Task-Namen sind in jedem Projekt gleich, egal was darunter läuft: Gradle, Go, pnpm, Maven oder pytest.
Überall dieselben Targets
- build
- test
- lint
- typecheck
- format
- dev
- e2e
- integration-test
- package
- deploy
pnpm bootstrap# Toolchains, Installation, Git-Hooks, Health-Checkpnpm env:check# was mit diesem Rechner nicht stimmt, und die Lösungpnpm projects# was es gibtpnpm graph# wie alles zusammenhängtpnpm affected# Lint, Typecheck, Tests und Build, nur für das Geändertepnpm check# Abhängigkeitsgrenzen und der Strukturvertragnpx nx run <project>:<target># ein Projekt, eine Aufgabe
Jeder Push,
eine Pipeline
Die CI führt dieselben Skripte aus, die Sie auf Ihrem Rechner ausführen, und zwar nur für die Projekte, die die Änderung berührt.
Secret-Scan
gitleaks durchsucht die gesamte Historie, nachdem ein Kontrolltest bewiesen hat, dass es einen absichtlich platzierten Schlüssel findet.
gitleaks git .Toolchains
mise installiert genau die Versionen, die in mise.toml festgelegt sind.
mise installGrenzen
pnpm check baut zuerst eine bekannte fehlerhafte Abhängigkeit ein. Ein sauberes Ergebnis heißt also, dass die Regeln wirklich gelaufen sind.
pnpm checkBetroffene Projekte
Nx ermittelt, welche Projekte die Änderung berührt.
nx show projects --affectedInstallation
Nur die betroffenen Projekte installieren ihre Abhängigkeiten.
pnpm install:affectedPrüfung
Lint, Typecheck, Tests und Build, jeweils drei Projekte gleichzeitig.
pnpm affected --parallel=3
Möchten Siehier mitarbeiten?
Derzeit sind keine offenen Stellen ausgeschrieben, aber Initiativbewerbungen werden gelesen. Sagen Sie uns, an welchem Produkt Sie arbeiten möchten.