Agents for developpement added + frontend add + backend added. Git viewer created + agent and template creator + layout and project creator
4.4 KiB
4.4 KiB
L11 — Packaging & livraison
Binôme : dev-packaging / test-packaging
Zones : app-tauri (bundle), CI
Dépendances amont : transverse (mûrit avec les autres lots) ; finalisé en fin de cycle.
Objectif
Livrer IdeA : setup.exe (NSIS) Windows et AppImage Linux multi-distro. macOS plus tard.
Périmètre (DEV)
- Config bundle Tauri v2 : NSIS (Windows), AppImage (Linux).
- Vendoring statique des deps natives (git2/openssl → préférer
rustlspour russh ; features git2) pour la portabilité AppImage. - Pipeline CI : build Linux + Windows, artefacts publiés.
Périmètre (TEST)
- Le bundle se construit sur Linux et Windows (CI verte).
- L'AppImage démarre sur ≥3 distros (Ubuntu, Fedora, Arch) — smoke test.
- L'installeur Windows installe/lance/désinstalle proprement.
Definition of Done
- CI produit un
setup.exeet un AppImage fonctionnels ; smoke tests multi-distro verts.
Spike (cf. ARCHITECTURE §13)
- AppImage multi-distro : glibc/openssl/libgit2 liés dynamiquement = risque ; valider le vendoring statique tôt (coordonné avec L8/L9).
Notes de build vérifiées (2026-06-04, premier build sur Arch)
- CLI :
@tauri-apps/cliv2 installé en devDependency frontend ; binaire àfrontend/node_modules/.bin/tauri. - Hooks
tauri.conf.json: Tauri exécutebeforeBuildCommand/beforeDevCommandavec cwd =IdeA/crates/. Les chemins npm doivent donc être--prefix ../frontend(et NON../../frontendnifrontend). - Arch Linux —
linuxdeploystrip échoue : lestripembarqué danslinuxdeploy-x86_64.AppImagene comprend pas la section ELF.relr.dyndes libs Arch modernes (libzstd.so.1,libyuv.so…) → erreurunknown type [0x13] section .relr.dyn. Parade : exporterNO_STRIP=trueavanttauri build. À intégrer dans la CI/scripts de build Linux. - Build de référence OK :
cd crates/app-tauri && NO_STRIP=true tauri build --bundles appimage→target/release/bundle/appimage/IdeA_0.1.0_amd64.AppImage(~101 Mo). - Le 1er échec
failed to run linuxdeploymasquait le vrai message (strip) ;--verboseest nécessaire pour le voir. - Écran blanc au lancement (Linux/WebKitGTK) : le renderer DMABUF de WebKitGTK rend une fenêtre blanche sur beaucoup de configs Linux récentes (Mesa/Nvidia, fréquent sur Arch). Fix baké dans
crates/app-tauri/src/main.rs: on positionneWEBKIT_DISABLE_DMABUF_RENDERER=1au début demain()(cfgtarget_os = "linux", seulement si non déjà défini) avant l'init du webview. Plus besoin de variable d'env côté utilisateur. Vérifié visuellement OK sur Arch (UI projets + health-check rendus).
Avancement (2026-06-05)
✅ Fait
- Icônes générées (
tauri icon→crates/app-tauri/icons/, monogramme « IA » sombre/accent) — manquaient, requises par le bundle. - AppImage Linux reconstruite :
target/release/bundle/appimage/IdeA_0.1.0_amd64.AppImage(~103 Mo), validée (ELF AppImage-runtime, libfuse2 présent, se lance directement).git2lié à la libgit2 système via.cargo/config.toml(LIBGIT2_SYS_USE_PKG_CONFIG=1). beforeBuildCommand/beforeDevCommandconfirmés à--prefix ../frontend(cwd des hooks =IdeA/crates/).- Refonte disposition IDE (passe UI/altitude) ✅ :
ProjectsViewréécrit en disposition d'IDE — barre d'onglets projets en haut, sidebar (onglets Projects/Agents/Templates/Git, un panneau à la fois) + zone principale =LayoutGrid(grille de terminaux) qui remplit la hauteur. App shell enh-full. ComposantsProjectLauncher/ProjectTabs/Workspaceextraits. Hooks de test préservés ; front 158 tests verts,tscclean. (Note :beforeBuildCommandretiré detauri.conf.json— chemins de hook ambigus selon le cwd d'invocation ; on build le front manuellement (npm --prefix frontend run build) avanttauri buildlancé depuis la racine du repo. C'est le recette déterministe vérifiée.)
⏳ Reste
- Vendoring statique pour AppImage portable multi-distro : passer git2 en
vendored-libgit2(nécessite cmake, absent de la machine actuelle) +rustlspour russh (L9). Aujourd'hui l'AppImage lie la libgit2 système → portable seulement vers des distros fournissant libgit2 ≥ 1.9. - Windows
setup.exe(NSIS) : non constructible ici (Linux) → CI Windows. - CI Linux+Windows (avec
NO_STRIP=truecôté Linux) + smoke tests ≥3 distros.