CI / No em/en dashes (push) Successful in 3s
CI / Build & test (Node 24) (push) Successful in 10m27s
CI / Build & test (Node 22) (push) Successful in 10m58s
VSCode Release / Package VSIX (push) Successful in 9m57s
Release / Publish to Gitea npm registry (push) Successful in 10m16s
CI / Pack & boot smoke (Node 22) (push) Successful in 10m16s
Desktop Release / Build Linux (AppImage + deb) (push) Failing after 8m31s
Desktop Release / Build Windows (NSIS + portable) (push) Canceled after 0s
Desktop Release / Publish floating desktop-latest release (push) Skipped
`win.artifactName` s'applique aux deux cibles : l'installeur NSIS et le build portable produisaient tous deux `Arboretum-<version>-x64.exe`, donc une collision où l'un écrase l'autre. Le portable prend un suffixe explicite. Les liens de la vitrine visent l'installeur NSIS, dont le nom ne change pas.
119 lines
5.5 KiB
YAML
119 lines
5.5 KiB
YAML
appId: fr.lidge.arboretum
|
|
productName: Arboretum
|
|
copyright: Copyright © 2026 Johan Leroy
|
|
|
|
directories:
|
|
output: release
|
|
buildResources: resources
|
|
|
|
# Le bundle esbuild (dist/) va dans l'ASAR ; le daemon et le runtime Node restent des fichiers
|
|
# reels sur disque (extraResources, hors ASAR) : les binaires natifs (.node de node-pty) se
|
|
# chargent proprement, ce qu'un .asar interdirait.
|
|
files:
|
|
- dist/**/*
|
|
- "!**/*.map"
|
|
asar: true
|
|
|
|
extraResources:
|
|
- from: build/server
|
|
to: server
|
|
- from: build/node
|
|
to: node
|
|
- from: resources/icon.png
|
|
to: icon.png
|
|
- from: resources/trayTemplate.png
|
|
to: trayTemplate.png
|
|
- from: resources/trayTemplate@2x.png
|
|
to: trayTemplate@2x.png
|
|
|
|
# Icônes : générées par `python3 brand/build-assets.py` depuis le logo source.
|
|
# - `resources/icons/` : jeu Linux aux TAILLES STANDARD hicolor (16→512). Indispensable : sans lui,
|
|
# electron-builder installe l'unique taille du PNG source (895x895), or `hicolor/index.theme` ne
|
|
# déclare pas ce répertoire, donc la spécification freedesktop l'ignore et AUCUN logo n'apparaît
|
|
# au lanceur (c'était le bug du .deb 0.1.x).
|
|
# - `resources/icon.png` (1024) : source macOS et dérivations.
|
|
# - `resources/icon.ico` : Windows (installeur NSIS + fenêtre).
|
|
linux:
|
|
target: [AppImage, deb]
|
|
category: Development
|
|
icon: resources/icons
|
|
# `executableName` explicite : sinon electron-builder le dérive du `name` SCOPÉ du package
|
|
# (@arboretum/desktop → « @arboretumdesktop »), qui se retrouvait dans /usr/bin, le .desktop et son
|
|
# `Icon=` · un nom d'icône commençant par « @ » n'est pas résoluble.
|
|
executableName: arboretum
|
|
artifactName: ${productName}-${version}-${arch}.${ext}
|
|
synopsis: Self-hosted multi-project AI IDE for git worktrees
|
|
# Entrée .desktop (forme plate, mergée telle quelle par electron-builder 25). StartupWMClass DOIT
|
|
# correspondre à l'app_id runtime (posé par app.setName('Arboretum') dans src/main/main.ts) pour
|
|
# que GNOME/Wayland associe la fenêtre au lanceur et affiche le logo. Redondant avec le défaut
|
|
# (productName) mais explicite et robuste à un futur changement de productName.
|
|
desktop:
|
|
StartupWMClass: Arboretum
|
|
GenericName: AI IDE for git worktrees
|
|
Keywords: git;worktree;claude;ide;terminal;
|
|
# Pas de `Comment` ici : electron-builder l'écrase systématiquement après la surcharge
|
|
# (LinuxTargetHelper : desktopMeta.Comment = deb.description || package.json description). C'est
|
|
# donc la description du package.json qui fait foi, et elle DOIT rester sur une seule ligne : un
|
|
# texte multi-lignes produirait une entrée .desktop invalide (lignes suivantes lues comme clés).
|
|
# Note : avec des tailles standard, GTK/KDE résolvent l'icône même sans cache d'icônes rafraîchi
|
|
# (le postinst d'electron-builder n'appelle pas gtk-update-icon-cache). L'AppImage, lui, n'installe
|
|
# aucun .desktop sans intégration (appimaged) : sur Debian, préférer le .deb.
|
|
|
|
deb:
|
|
# git est requis pour les operations de worktree ; claude n'est pas dans les depots (documente).
|
|
depends: [git]
|
|
# Mainteneur .deb explicite (electron-builder l'exige ; sinon derive de author.email du package.json).
|
|
maintainer: Johan LEROY <contact@johanleroy.fr>
|
|
# `synopsis` alimente la description COURTE du paquet : sans lui, `apt show` affichait une ligne
|
|
# vide (electron-builder concatène `synopsis || ''` puis la description longue).
|
|
# `synopsis` = description COURTE du paquet : sans elle, `apt show` affichait une ligne vide
|
|
# (electron-builder concatène `synopsis || ''` puis la description longue). La description longue
|
|
# reste celle du package.json, volontairement sur une seule ligne (cf. note sur Comment ci-dessus).
|
|
synopsis: Self-hosted multi-project AI IDE for git worktrees
|
|
# electron-builder nomme ce champ `packageCategory` (et non `section`) : il alimente le champ
|
|
# Section: du paquet, qui valait « default » jusqu'ici.
|
|
packageCategory: devel
|
|
priority: optional
|
|
|
|
win:
|
|
target:
|
|
- target: nsis
|
|
arch: [x64]
|
|
- target: portable
|
|
arch: [x64]
|
|
icon: resources/icon.ico
|
|
# Affiché par SmartScreen et dans les métadonnées de l'exécutable. Le binaire n'est PAS signé :
|
|
# SmartScreen montrera « éditeur inconnu » (documenté dans le README).
|
|
publisherName: Johan LEROY
|
|
artifactName: ${productName}-${version}-${arch}.${ext}
|
|
|
|
# Le build portable produit lui aussi un .exe : sans nom distinct, il entrerait en collision avec
|
|
# l'installeur NSIS (les deux cibles héritent de `win.artifactName`) et l'un écraserait l'autre.
|
|
portable:
|
|
artifactName: ${productName}-${version}-${arch}-portable.${ext}
|
|
|
|
nsis:
|
|
oneClick: false
|
|
perMachine: false
|
|
allowToChangeInstallationDirectory: true
|
|
shortcutName: Arboretum
|
|
uninstallDisplayName: Arboretum ${version}
|
|
createDesktopShortcut: true
|
|
license: ../../LICENSE
|
|
|
|
mac:
|
|
target: [dmg, zip]
|
|
icon: resources/icon.png
|
|
category: public.app-category.developer-tools
|
|
# macOS best-effort : non signe (documente : clic droit -> Ouvrir, ou xattr -dr com.apple.quarantine)
|
|
identity: null
|
|
hardenedRuntime: false
|
|
|
|
# Auto-update (electron-updater) : provider generic pointant sur un tag FLOTTANT `desktop-latest`,
|
|
# que la CI recrée à chaque release en y attachant les installeurs et les `latest*.yml`. Ce tag doit
|
|
# exister, sinon l'updater reçoit un 404 (c'était le cas jusqu'en 0.1.3) : voir
|
|
# .gitea/workflows/desktop-release.yml, étape « Publish floating desktop-latest release ».
|
|
publish:
|
|
provider: generic
|
|
url: https://git.lidge.fr/johanleroy/arboretum/releases/download/desktop-latest
|