diff --git a/.claude/skills/release/SKILL.md b/.claude/skills/release/SKILL.md index e052ec2..2b1dddc 100644 --- a/.claude/skills/release/SKILL.md +++ b/.claude/skills/release/SKILL.md @@ -2,7 +2,7 @@ name: release description: Release a new version of Simpl-Resultat (bump, changelog, tag, push) user-invocable: true -updated: 2026-07-01 +updated: 2026-07-13 --- # /release — Release Simpl-Resultat @@ -15,6 +15,7 @@ updated: 2026-07-01 ## Workflow +0. **Pré-vol — revalider le tip localement.** `check.yml` ne tourne pas sur `main` : le tip mergé n'a jamais été vu par le CI (le dernier run vert portait sur la branche d'issue avant merge), et le tag grave ce tip exact dans des binaires distribués. Lancer `npm run build && npm test` (vitest) + `cd src-tauri && cargo check && cargo test`. Vérifier aussi que `.claude/worktrees/` est vide (worktrees leftover → vitest récurse et gonfle le compteur). Ne tagger que sur un tip vert. 1. Determiner la nouvelle version (argument utilisateur ou demander) 2. Bump version dans les 5 fichiers : - `src-tauri/Cargo.toml` (ligne `version = "..."`) @@ -37,6 +38,9 @@ updated: 2026-07-01 ``` 7. Push : `git push origin main && git push origin vX.Y.Z` 8. Forgejo CI build automatique (Windows + Linux) via `release.yml` sur `on: push: tags: v*` +9. **Post-CI — vérifier la release publiée.** Surveiller `release.yml` (outil `Monitor` sur le run), puis vérifier la release réellement attachée — `status=success` du workflow ne suffit pas : + - Les **7 artefacts** attendus : `.exe` NSIS, `.deb`, `.rpm`, leurs 3 signatures `.sig`, et `latest.json`. + - Le contenu de `latest.json` (il pilote l'auto-update des installations existantes) : champ `version` correct, signatures non vides pour les deux plateformes, URLs pointant vers les bons binaires, notes extraites du CHANGELOG. ## Regles @@ -45,7 +49,9 @@ updated: 2026-07-01 - Format Keep a Changelog : `## [X.Y.Z] - YYYY-MM-DD` - Les changelogs sont bundles dans `public/` pour l'affichage in-app - Tag **annote** (`-a`), pas lightweight : les artefacts CI reference le tag pour les release notes +- **Tagger publie vers l'extérieur** : `release.yml` pousse le JSON d'updater, donc les utilisateurs installés reçoivent la mise à jour automatiquement. Confirmer avec Max avant de tagger. ## Changelog - 2026-04-19 — Added Cargo.lock + package-lock.json to bump list, `npm install --package-lock-only` fallback when lockfile stale, explicit `[Unreleased]` migration pattern, annotated tags (#102/#112 release cycle) - 2026-07-01 — Documenter que le header FR est `## [Non publié]` (≠ `[Unreleased]`), pour éviter le faux diagnostic « changelog FR vide » lors de la migration. Source : session 5466da98. +- 2026-07-13 — Étape 0 (pré-vol) : revalider le tip localement avant de tagger — `check.yml` ne tourne pas sur `main`, le tip mergé n'a jamais été vu par le CI ; vérifier `.claude/worktrees/` vide (vitest récurse sinon). Étape 9 (post-CI) : vérifier la release publiée — 7 artefacts attendus + contenu de `latest.json` (pilote l'auto-update) ; `status=success` ne suffit pas. Règle : tagger publie vers l'extérieur (updater automatique) → confirmer avec Max avant de tagger. Source : session fdda84cb (release v0.13.0).