Référence : commandes
sidekicks
sidekicks [--config <fichier>]
| Option / variable | Effet |
|---|---|
--config <fichier> |
Fichier de configuration à utiliser. Prioritaire sur tout le reste. |
SIDEKICKS_CONFIG |
Fichier de configuration quand --config n'est pas donné. |
| (aucune) | <dossier de config utilisateur>/sidekicks/config.yaml, créé avec des commentaires s'il manque. |
L'ordre est détaillé dans la référence de la configuration.
Cibles make
| Cible | Effet |
|---|---|
help |
Liste les cibles. |
install |
pnpm install dans frontend/ (binaires natifs macOS et Linux). |
bindings |
Régénère frontend/bindings à partir des services et événements Go (wails3 generate bindings -clean=true -ts -i). |
frontend |
install, puis construit frontend/dist. |
dev |
wails3 dev : l'application avec rechargement à chaud. |
build |
wails3 build : bin/sidekicks. |
package |
wails3 package : sous macOS bin/sidekicks.app. |
package-linux |
scripts/package.sh linux : .deb, .rpm, .AppImage et .tar.gz pour l'architecture de la machine, dans dist/. Demande file (AppImage) et rpm. |
package-windows |
scripts/package.sh windows : installateur NSIS et .zip pour Windows amd64, compilés depuis Linux ou macOS, dans dist/. Demande makensis et zip. |
release-build |
scripts/build-release.sh : sur le Mac, tous les paquets de release dans dist/ et SHA256SUMS. |
release-tag |
scripts/tag-release.sh : tague v<version> sur main et le pousse. |
package-macos |
scripts/package.sh macos : .dmg et .zip universels (arm64 + amd64, signés ad hoc), dans dist/. macOS seulement. |
install-test-config |
scripts/install-test-config.sh : écrit examples/test-agents.yaml à l'emplacement par défaut de la configuration, avec des chemins absolus vers le dépôt : chaque agent est mm -acp -config agent.yaml lancé dans son dossier, avec afterStop: [<dépôt>/scripts/agents.sh, unload, <agent>] pour décharger son modèle à l'arrêt, mm écrit avec son chemin absolu (MM_BIN, ou celui du PATH), et le PATH courant dans l'env de chaque agent ; un fichier existant est gardé sous config.yaml.<date>.bak. |
check |
lint puis test. |
test |
test-go, test-frontend, test-scripts. |
test-go |
go test ./... (construit frontend/dist d'abord s'il manque). |
test-frontend |
vitest run dans frontend/. |
test-scripts |
scripts/agents_test.sh, scripts/check-license-headers_test.sh, scripts/package_test.sh et scripts/tag-release_test.sh. |
test-real |
go test -tags realagents -count=1 ./... — nécessite mm et llmman. |
lint |
lint-go, lint-frontend, lint-headers. |
lint-go |
golangci-lint v2.14.0 (tools/go.mod), configuration .golangci.yml. |
lint-frontend |
svelte-check. |
lint-headers |
scripts/check-license-headers.sh. |
bindings-check |
bindings, puis échoue si frontend/bindings diffère de la version commitée. |
scripts/check-license-headers.sh
scripts/check-license-headers.sh [racine du dépôt]
Liste les fichiers sources (.go .ts .js .svelte .css .html .sh .py .yml .yaml, Makefile) connus de git dont les trois premières lignes ne contiennent pas Sidekicks Source-Available License, et se termine avec le code 1 s'il y en a. Non vérifiés : frontend/bindings, build/ et Taskfile.yml de Wails, *.d.ts, pnpm-lock.yaml, vite.config.ts, svelte.config.js, agents/, */testdata/*, git.sh, new.*.sh, tag-step.sh, .claude/, .tickets/.
scripts/package.sh
scripts/package.sh linux | windows | macos
scripts/package.sh names <système> <arch>
scripts/package.sh version
| Commande | Effet |
|---|---|
linux, windows, macos |
Construit les paquets de ce système dans dist/ (voir les cibles package-*), puis liste dist/. |
names <système> <arch> |
Affiche les noms des fichiers qu'un build produit, un par ligne ; ne construit rien. |
version |
Affiche info.version de build/config.yml. |
| Système | Fichiers (<v> = version) |
|---|---|
linux |
sidekicks_<v>_linux_<arch>.deb, .rpm, .tar.gz, Sidekicks-<v>-<x86_64|aarch64>.AppImage |
windows |
Sidekicks-<v>-windows-amd64-installer.exe, sidekicks_<v>_windows_amd64.zip |
macos |
Sidekicks-<v>-macos-universal.dmg, Sidekicks-<v>-macos-universal.zip |
scripts/build-release.sh
[LINUX_ARCHES="amd64 arm64"] [SKIP="macos windows linux"] scripts/build-release.sh
Vide dist/, puis construit : macOS avec scripts/package.sh macos (macOS seulement), Windows avec scripts/package.sh windows (demande makensis), Linux avec scripts/package.sh linux dans un conteneur par architecture de LINUX_ARCHES (par défaut amd64), construit depuis scripts/linux-packages.Dockerfile (ubuntu:26.04, Go de go.mod, pnpm de frontend/package.json, CLI Wails) avec le dépôt monté sur /src et le cache des modules Go dans le volume sidekicks-gomod-<arch>. Écrit enfin dist/SHA256SUMS. SKIP laisse de côté les systèmes qu'il nomme. Échoue si makensis manque ou si Docker ne tourne pas, en nommant le système à laisser de côté.
scripts/tag-release.sh
scripts/tag-release.sh [--remote <nom>] [--no-push]
Crée le tag annoté v<version> (info.version de build/config.yml, message Sidekicks <version>) et le pousse sur --remote (par défaut origin). Refuse si des fichiers suivis sont modifiés, si la branche courante n'est pas main, si main diffère de <remote>/main après un fetch, ou si le tag existe en local. Avertit, sans refuser, s'il manque dans dist/ un paquet de la version ou SHA256SUMS. --no-push tague en local seulement.
CI
.github/workflows/ci.yml, à chaque push et merge request, dans un conteneur ubuntu:26.04 (GTK ≥ 4.10) : installe git, un compilateur C, les paquets de build GTK 4 / WebKitGTK 6, Node et npm depuis apt, Go depuis go.dev (version de go.mod), pnpm (version de frontend/package.json) et la CLI Wails, puis lance make bindings-check et make check.
Workflow de release
.github/workflows/release.yml, au push d'un tag v*, avec permissions: contents: write : échoue si le tag n'est pas v + info.version de build/config.yml, puis crée la release <tag> nommée Sidekicks <tag> (softprops/action-gh-release@v2, via l'API compatible GitHub de Rickub derrière GITHUB_API_URL), avec des notes qui donnent le commit, les guides d'installation et le tableau des fichiers attendus (tirés de scripts/package.sh names). Il n'attache aucun fichier : les paquets sont attachés à la main.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 |
|