---
title: "Commandes — Docs zenit Zig UI"
description: "Les commandes de build, d'exemples, de tests, de codegen et de qualité, réunies en un seul endroit."
url: https://zenit.z.express/fr/docs/reference/commands
language: fr
alternate_en: https://zenit.z.express/docs/reference/commands.md
alternate_zh: https://zenit.z.express/zh/docs/reference/commands.md
alternate_es: https://zenit.z.express/es/docs/reference/commands.md
alternate_ja: https://zenit.z.express/ja/docs/reference/commands.md
alternate_ko: https://zenit.z.express/ko/docs/reference/commands.md
alternate_de: https://zenit.z.express/de/docs/reference/commands.md
project: zenit v0.1.0-alpha (Zig 0.15.2, macOS)
source: https://github.com/version-next/zenit
---

# Commandes

Les commandes de build, d'exemples, de tests, de codegen et de qualité, réunies en un seul endroit.

## Votre application

Ces steps proviennent du fichier `templates/minimal-app/build.zig` du modèle. Le step `app` n’est enregistré que pour les cibles macOS.

```sh
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)
```

## Exemples du dépôt zenit

Chaque exemple a deux steps : `zig build <name>` produit un `.app` signé ad hoc, et `zig build run-<name>` lance directement l’exécutable.

| Step | Nom du .app | Description |
| --- | --- | --- |
| `hello-button` | Hello Button | Fenêtre minimale et bouton |
| `counter-reactive` | Reactive Counter | Démo Signal / Memo / Effect |
| `virtual-list-perf` | 100k Virtual List | Test de charge VirtualList à 100k lignes |
| `text-input` | Text Input Demo | Input / Textarea avec text\_core |
| `multi-window` | Multi Window | Deux fenêtres natives, routage par fenêtre |
| `storybook` | zenit Storybook | Vitrine de tous les composants et cible e2e |
| `devtools-probe` | DevTools Probe | Recette en fenêtre réelle du panneau de performances DevTools |
| `interop-probe` | zenit Interop Probe | Vérification système du presse-papiers riche / glisser vers l'extérieur |
| `console-probe` | Console Probe | Vérification en fenêtre réelle de Console + DevTools |
| `design-probe` | Design Probe | Cible de comparaison avec les maquettes |

```sh
zig build run-hello-button
zig build run-counter-reactive
zig build run-storybook
```

## Tests

### Suites

| Commande | Rôle |
| --- | --- |
| `test` | Alias de test-headless |
| `test-headless` | Tests déterministes ; aucun appareil Metal réel requis |
| `test-all` | Tests déterministes plus tests Metal sur appareil réel |
| `test-null-backend` | Compile et exécute les tests déterministes sur le backend GPU Null pour valider l'abstraction RHI |

### UI et réactivité

| Commande | Rôle |
| --- | --- |
| `test-ui` | Tests du système UI ; -Dtest-filter=<substring> n'exécute que les noms correspondants |
| `test-ui-core` | Tests d'intégration ui\_core (src/ui/core/tests.zig) |
| `test-reactive` | Tests du système réactif |
| `test-allocation-campaign` | Balaye les points d'échec d'allocation aux frontières transactionnelles du framework |

### Rendu et GPU

| Commande | Rôle |
| --- | --- |
| `test-render` | Tests du module render |
| `test-gpu` | Tests de l'abstraction GPU |
| `test-metal` | Tests nécessitant un appareil Metal réel |
| `test-svg` | Tests du parseur / rastériseur SVG |
| `test-timing-ring` | Tests de l'anneau de timing des frames |

### Texte et i18n

| Commande | Rôle |
| --- | --- |
| `test-text` | Tests du module text (catalogue de polices / graisses) |
| `test-text-core` | Tests du module text\_core |
| `test-text-properties` | Tests de propriétés des coordonnées de texte, déterministes et paramétrables par graine |
| `test-i18n` | Tests du module i18n |
| `test-bidi-conformance` | Données de conformité UAX #9 complètes d'Unicode 17.0.0 |

### Plateforme, fenêtres et packaging

| Commande | Rôle |
| --- | --- |
| `test-window-lifecycle` | Tests déterministes du cycle de vie et du routage multifenêtre |
| `test-text-hook-owners` | Pile de propriété du hook de mesure de texte à l'échelle du processus (fermer une fenêtre conserve les hooks des autres) |
| `test-selector-scale` | Propagation de l'échelle FontSelector en HiDPI |
| `test-system-sdk` | Tests System SDK |
| `test-system-sdk-backends` | Tests déterministes des backends natifs |
| `check-system-sdk-cross` | Compile les tests System SDK pour Linux / Windows (sans exécution) |
| `test-harness` | Tests de test\_harness (file-RPC) |
| `test-package-consumer` | Compile et lance une application en aval avec des paquets directs et filtrés par Zig |

## Codegen et outils

| Commande | Rôle |
| --- | --- |
| `bench` | Références de performance : zig build bench \[-- filter\] \[-- json=path\] |
| `gen-icons` | Régénère le module choisi par -Dicon-set (lucide par défaut) |
| `gen-icons-lucide` | Régénère le module public d'icônes Lucide |
| `gen-icons-common` | Régénère le module d'icônes common, indépendant du provider |
| `gen-icons-untitled / gen-icons-all` | Jeu d'icônes interne ; checkouts internes uniquement |
| `gen-component-index` | Analyse l'AST de src/ui et régénère component\_index\_generated.zig |
| `capability-matrix` | Affiche la matrice de capacités macOS générée |
| `text-corpus-dump` | Affiche le corpus T0 de coordonnées de texte versionné |

## Options de build

| Option | Défaut | Effet |
| --- | --- | --- |
| `-Dtest-mode=true` | `false` | Active le harness e2e (serveur file-RPC) |
| `-De2e-port=<n>` | `19816` | Port E2E, utilisé dans le nom du répertoire RPC par défaut |
| `-Dtest-filter=<s>` | — | N'exécute que les tests test-ui dont le nom contient la sous-chaîne |
| `-Dicon-set=<name>` | `lucide` | Provider d'icônes intégré : lucide ou untitled (interne uniquement) |
| `-Dgpu-backend=<name>` | `metal` | Backend GPU : metal ou null |

> NOTE
> 
> **Transmettez explicitement les options de dépendance.** Zig isole les options de build des dépendances. Une application en aval doit transmettre `.@"test-mode"` et `.@"e2e-port"` dans `b.dependency("zenit", ...)` pour que `zig build -Dtest-mode=true` atteigne zenit ; le modèle le fait déjà.

## Scripts qualité

| Script | Ce qu'il vérifie |
| --- | --- |
| `./scripts/check_oss_boundary.sh` | Vérifie statiquement les imports de src/ui, puis compile hello-button pour confirmer qu'aucun module interdit n'est atteignable |
| `./scripts/check_style_literals.sh` | Fait baisser, jamais monter, le nombre de littéraux bruts de couleur / taille de police dans les exemples (les échappements ui.arb sont permis) |
| `bash scripts/switch_icon_set.sh lucide` | Lance test-headless et le build storybook avec un jeu d'icônes, sans toucher au worktree |

> TIP
> 
> **Remplacez avec ZIG.** Les scripts du dépôt utilisent le `zig` du PATH. Pour imposer une toolchain précise, définissez `ZIG=/absolute/path/to/zig`.

## Vérification du bundle

Les bundles d’exemple sont signés ad hoc et leur attribut quarantine est supprimé. Ces commandes vérifient la signature et listent les attributs étendus restants.

```sh
zig build hello-button
codesign --verify --deep --strict "zig-out/Hello Button.app"
xattr -lr "zig-out/Hello Button.app"
```
