docs: documentation fonctionnelle, technique et installation
This commit is contained in:
@@ -0,0 +1,110 @@
|
||||
# Build et compilation
|
||||
|
||||
Cette page décrit comment compiler **Pena-tauri** depuis les sources, en développement comme
|
||||
en production. Pour une installation sur un système immuable (Bazzite, Silverblue, etc.),
|
||||
voir plutôt [Installation sur Bazzite OS](3.2-Installation-Bazzite.md).
|
||||
|
||||
## Prérequis
|
||||
|
||||
| Outil | Détail |
|
||||
|---|---|
|
||||
| **Rust** | Toolchain stable, via [rustup](https://rustup.rs/) (édition 2021). |
|
||||
| **Tauri CLI v2** | `cargo install tauri-cli --version "^2"` (fournit `cargo tauri`). |
|
||||
| **Dépendances système** | WebKitGTK et libs associées (voir ci-dessous selon la distribution). |
|
||||
|
||||
Le frontend n'a **aucune dépendance Node** : c'est du JS vanilla servi statiquement depuis
|
||||
`src/`. Il n'y a donc pas de `npm install` à faire pour `Pena-tauri`.
|
||||
|
||||
### Dépendances système Linux
|
||||
|
||||
**Fedora / RHEL :**
|
||||
```bash
|
||||
sudo dnf install webkit2gtk4.1-devel \
|
||||
openssl-devel curl wget file libappindicator-gtk3-devel librsvg2-devel
|
||||
sudo dnf group install "C Development Tools and Libraries"
|
||||
```
|
||||
|
||||
**Debian / Ubuntu :**
|
||||
```bash
|
||||
sudo apt update
|
||||
sudo apt install libwebkit2gtk-4.1-dev build-essential curl wget file \
|
||||
libxdo-dev libssl-dev libayatana-appindicator3-dev librsvg2-dev
|
||||
```
|
||||
|
||||
> Sur une distribution immuable (Bazzite, Fedora Silverblue, Kinoite…), n'installez pas ces
|
||||
> paquets sur l'hôte : utilisez un container ou un Flatpak. Voir
|
||||
> [Installation sur Bazzite OS](3.2-Installation-Bazzite.md).
|
||||
|
||||
## Lancer en développement
|
||||
|
||||
Depuis `Pena-tauri/` :
|
||||
```bash
|
||||
cargo tauri dev
|
||||
```
|
||||
|
||||
- Le frontend est servi directement depuis `src/` (fichiers statiques, sans bundler).
|
||||
- La compilation Rust est lancée automatiquement et l'application s'ouvre.
|
||||
- Toute modification du Rust déclenche une recompilation.
|
||||
|
||||
## Construire une release
|
||||
|
||||
Depuis `Pena-tauri/` :
|
||||
```bash
|
||||
cargo tauri build
|
||||
```
|
||||
|
||||
L'exécutable est produit dans :
|
||||
```
|
||||
src-tauri/target/release/
|
||||
```
|
||||
|
||||
### À propos du bundling
|
||||
|
||||
Dans `src-tauri/tauri.conf.json`, le bundling est **désactivé** :
|
||||
```json
|
||||
"bundle": { "active": false, "targets": "all", "icon": [] }
|
||||
```
|
||||
|
||||
`cargo tauri build` produit donc l'**exécutable natif** (dans `target/release/`), mais ne
|
||||
génère pas de paquets `.deb`, `.rpm` ou `.AppImage`. Pour activer la génération de ces
|
||||
paquets, passer `bundle.active` à `true` et renseigner les icônes.
|
||||
|
||||
## Compiler le backend seul (sans Tauri CLI)
|
||||
|
||||
Pour de la compilation / des tests bas niveau, depuis `src-tauri/` :
|
||||
```bash
|
||||
cargo build # compilation debug
|
||||
cargo build --release # compilation optimisée
|
||||
cargo test # tests unitaires
|
||||
cargo clippy -- -D warnings # lint (zéro warning toléré)
|
||||
```
|
||||
|
||||
## Qualité et couverture
|
||||
|
||||
Le dépôt `Pena-tauri` impose un hook `pre-commit` qui bloque le commit si :
|
||||
- **Clippy** remonte le moindre warning (`-D warnings`) ;
|
||||
- la **couverture de lignes** est inférieure à **60 %** (via `cargo-llvm-cov`).
|
||||
|
||||
Installer l'outil de couverture :
|
||||
```bash
|
||||
cargo install cargo-llvm-cov
|
||||
cargo llvm-cov --summary-only
|
||||
```
|
||||
|
||||
## Récapitulatif des commandes
|
||||
|
||||
| But | Commande (depuis `Pena-tauri/`) |
|
||||
|---|---|
|
||||
| Développement | `cargo tauri dev` |
|
||||
| Release (exécutable) | `cargo tauri build` |
|
||||
| Compiler le backend | `cargo build --release` (depuis `src-tauri/`) |
|
||||
| Tests | `cargo test` (depuis `src-tauri/`) |
|
||||
| Lint | `cargo clippy -- -D warnings` |
|
||||
| Couverture | `cargo llvm-cov --summary-only` |
|
||||
|
||||
## Voir aussi
|
||||
|
||||
- [Release et distribution](3.4-Release-et-distribution.md) — portabilité du binaire et création d'un paquet Flatpak
|
||||
- [Installation (Linux générique)](3.1-Installation.md)
|
||||
- [Installation sur Bazzite OS](3.2-Installation-Bazzite.md)
|
||||
- [Architecture](../2-technique/2.1-Architecture.md)
|
||||
Reference in New Issue
Block a user