Ticket #43 carnet reflects activationScope in the plugin manifest example; ticket #140 closed; skills index/content refreshed. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
35 lines
2.6 KiB
Markdown
35 lines
2.6 KiB
Markdown
# Build de l'AppImage IdeA (Linux)
|
|
|
|
Commande **validée bout-en-bout** (mise à jour 2026-08-03) pour reconstruire l'AppImage Linux d'IdeA. À utiliser à chaque fois qu'un correctif backend/front doit être rendu actif dans l'app (rappel : **le binaire qui tourne = l'AppImage installée, pas les sources** — un correctif n'est actif qu'après rebuild + remplacement + relance d'IdeA).
|
|
|
|
## Procédure (2 étapes, depuis le project root `/home/anthony/Documents/Projects/IdeA`)
|
|
|
|
### 1. Build du frontend (génère `frontend/dist/`)
|
|
```bash
|
|
npm --prefix frontend run build
|
|
```
|
|
|
|
### 2. Bundle Tauri AppImage (depuis `crates/app-tauri/`)
|
|
```bash
|
|
cd crates/app-tauri
|
|
mkdir -p /tmp/idea-cargo-home
|
|
CARGO_HOME=/tmp/idea-cargo-home APPIMAGE_EXTRACT_AND_RUN=1 NO_STRIP=1 ../../frontend/node_modules/.bin/tauri build --bundles appimage
|
|
```
|
|
|
|
## Pourquoi ces options (ne pas les retirer)
|
|
- `--bundles appimage` : **exclut NSIS** (installeur Windows) — sinutile et cassant sur Linux.
|
|
- `APPIMAGE_EXTRACT_AND_RUN=1 NO_STRIP=1` : **workaround FUSE obligatoire**. Sans ça, l'étape finale `linuxdeploy` (elle-même une AppImage montée via FUSE) échoue avec `failed to run linuxdeploy`. Le compile Rust réussit avant ce point ; seul le bundling casse (l'`AppDir` est généré mais pas le `.AppImage`).
|
|
- `CARGO_HOME=/tmp/idea-cargo-home` : **workaround sandbox/permissions** pour les environnements où `/home/<user>/.cargo` est monté en lecture seule. Sans ça, `tauri build` peut échouer pendant le téléchargement/unpack Cargo avec `Read-only file system (os error 30)`.
|
|
|
|
## Artefact produit
|
|
```
|
|
target/release/bundle/appimage/IdeA_0.3.0_amd64.AppImage
|
|
```
|
|
(Le build est long : compile Rust release ~1 min + bundling. Lancer en arrière-plan.)
|
|
|
|
## Étape suivante = MANUELLE (ne PAS l'automatiser sans demander)
|
|
Pour rendre le correctif actif, il faut **remplacer l'AppImage installée** `/home/anthony/Documents/IdeA_0.1.0_amd64.AppImage` par l'artefact, puis **relancer IdeA**. ⚠️ Relancer IdeA **tue l'orchestrateur en cours** (le serveur qui héberge la session active et les ponts MCP) : à faire par l'utilisateur quand il est prêt, pas en pleine session multi-agents. Garder un backup de l'ancienne AppImage avant remplacement (cf. convention `.old-<raison>`).
|
|
|
|
## Piège env (si on lance un binaire ensuite)
|
|
La session shell hérite des variables de l'AppImage montée (`APPDIR`, `LD_LIBRARY_PATH`, `PYTHONHOME` → `/tmp/.mount_IdeA_*`). Pour lancer un binaire app-tauri compilé sans crash WebKit, partir d'un env propre (`env -i PATH=/usr/bin:/bin HOME=$HOME XDG_RUNTIME_DIR=/run/user/1000 …`) et préférer `jq` à `python3`.
|