docs/reference/commands
Referenz · CLI

Befehle

Build-, Beispiel-, Test-, Codegen- und Qualitätsbefehle an einem Ort.

5 Min. Lesezeit

Ihre App

Diese Steps stammen aus templates/minimal-app/build.zig der Vorlage. Der Step app wird nur für macOS-Ziele registriert.

Terminal
zig build                      # build the executable
zig build run                  # build and run
zig build app                  # package a macOS .app bundle (zig-out/)
zig build -Dtest-mode=true     # enable the automation harness (forwarded to zenit)

Beispiele im zenit-Repo

Jedes Beispiel hat zwei Steps: zig build <name> erzeugt ein ad-hoc-signiertes .app, und zig build run-<name> startet das Executable direkt.

Step.app-NameInhalt
hello-buttonHello ButtonMinimales Fenster mit Button
counter-reactiveReactive CounterSignal / Memo / Effect-Demo
virtual-list-perf100k Virtual ListVirtualList-Stresstest mit 100k Zeilen
text-inputText Input DemoInput / Textarea mit text_core
multi-windowMulti WindowZwei native Fenster, Routing pro Fenster
storybookzenit StorybookShowcase aller Komponenten und e2e-Ziel
devtools-probeDevTools ProbeAbnahme des DevTools-Performance-Panels im echten Fenster
interop-probezenit Interop ProbeSystemweite Prüfung von Rich-Clipboard / Drag-out
console-probeConsole ProbeConsole + DevTools-Prüfung im echten Fenster
design-probeDesign ProbeZiel für den Abgleich mit Design-Mockups
Terminal
zig build run-hello-button
zig build run-counter-reactive
zig build run-storybook

Tests

Suites

BefehlFunktion
testAlias für test-headless
test-headlessDeterministische Tests; kein echtes Metal-Gerät nötig
test-allDeterministische Tests plus Metal-Tests auf echtem Gerät
test-null-backendDeterministische Tests auf dem Null-GPU-Backend bauen und ausführen, um die RHI-Abstraktion zu belegen

UI und Reaktivität

BefehlFunktion
test-uiUI-Systemtests; -Dtest-filter=<substring> führt nur passende Namen aus
test-ui-coreui_core-Integrationstests (src/ui/core/tests.zig)
test-reactiveTests des reaktiven Systems
test-allocation-campaignAllocator-Fehlerpunkte an transaktionalen Framework-Grenzen durchspielen

Rendering und GPU

BefehlFunktion
test-renderTests des render-Moduls
test-gpuTests der GPU-Abstraktion
test-metalTests, die ein echtes Metal-Gerät brauchen
test-svgTests für SVG-Parser / -Rasterizer
test-timing-ringTests des Frame-Timing-Rings

Text und i18n

BefehlFunktion
test-textTests des text-Moduls (Font-Katalog / Schriftstärken)
test-text-coreTests des text_core-Moduls
test-text-propertiesDeterministische, seedbare Property-Tests für Textkoordinaten
test-i18nTests des i18n-Moduls
test-bidi-conformanceVollständige Unicode 17.0.0 UAX #9-Konformitätsdaten

Plattform, Fenster und Packaging

BefehlFunktion
test-window-lifecycleDeterministische Tests für Multi-Window-Lebenszyklus und Routing
test-text-hook-ownersProzessweiter Ownership-Stack für Textmessungs-Hooks (Schließen eines Fensters erhält die Hooks der anderen)
test-selector-scaleHiDPI-Skalierungsweitergabe für FontSelector
test-system-sdkSystem-SDK-Tests
test-system-sdk-backendsDeterministische Tests der nativen Backends
check-system-sdk-crossSystem-SDK-Tests für Linux / Windows kompilieren (ohne Ausführung)
test-harnessTests für test_harness (file-RPC)
test-package-consumerEine Downstream-App gegen direkte und Zig-gefilterte Pakete bauen und starten

Codegen und Tools

BefehlFunktion
benchPerformance-Baselines: zig build bench [-- filter] [-- json=path]
gen-iconsDas per -Dicon-set gewählte Modul neu generieren (standardmäßig lucide)
gen-icons-lucideDas öffentliche Lucide-Icon-Modul neu generieren
gen-icons-commonDas provider-neutrale common-Icon-Modul neu generieren
gen-icons-untitled / gen-icons-allInternes Icon-Set; nur in internen Checkouts
gen-component-indexsrc/ui per AST scannen und component_index_generated.zig neu generieren
capability-matrixDie generierte macOS-Fähigkeitsmatrix ausgeben
text-corpus-dumpDas eingecheckte T0-Textkoordinaten-Korpus ausgeben

Build-Optionen

OptionStandardWirkung
-Dtest-mode=truefalseAktiviert den e2e-Harness (file-RPC-Server)
-De2e-port=<n>19816E2E-Port, verwendet im Standardnamen des RPC-Verzeichnisses
-Dtest-filter=<s>—Nur test-ui-Tests ausführen, deren Name den Teilstring enthält
-Dicon-set=<name>lucideEingebauter Icon-Provider: lucide oder untitled (nur intern)
-Dgpu-backend=<name>metalGPU-Backend: metal oder null

Qualitätsskripte

SkriptWas es prüft
./scripts/check_oss_boundary.shPrüft die Imports in src/ui statisch und baut dann hello-button, um sicherzustellen, dass kein verbotenes Modul erreichbar ist
./scripts/check_style_literals.shSenkt nackte Farb- / Schriftgrößen-Literale in Beispielen nur ab, nie auf (ui.arb-Ausnahmen sind erlaubt)
bash scripts/switch_icon_set.sh lucideFührt test-headless und den storybook-Build mit einem Icon-Set aus, ohne den Worktree zu ändern

Bundle-Prüfung

Beispiel-Bundles sind ad-hoc signiert, das quarantine-Attribut ist entfernt. Diese Befehle prüfen die Signatur und listen verbliebene erweiterte Attribute auf.

Terminal
zig build hello-button
codesign --verify --deep --strict "zig-out/Hello Button.app"
xattr -lr "zig-out/Hello Button.app"
zenit · DoppellizenzKostenlos für Open-Source-Projekte unter GPL-3.0-only; Closed-Source- oder kommerzielle Produkte benötigen eine kommerzielle Lizenz.Kontakt zum Autor: zongyi.xzy#gmail.com (# durch @ ersetzen)zenit 5f9add5+wip 2026-09-30