# 🔄 Mises à jour automatiques Plus besoin d'envoyer un `.exe` à chaque correctif. L'application va chercher elle-même la dernière version publiée. ``` Toi Ton collègue ─── ──────────── npm run release -- 0.3.0 "…" │ ├─ construit + signe l'installeur ├─ le dépose sur Supabase └─ écrit latest.json au lancement : lit latest.json → 0.3.0 > 0.2.0 🔔 « Version 0.3.0 disponible » clic → installe → redémarre ``` --- ## Installation (une seule fois) ### 1. Créer le bucket Supabase → **SQL Editor** → **New query** → colle [`supabase/releases_bucket.sql`](supabase/releases_bucket.sql) → **Run**. ### 2. Donner au script la clé de publication Supabase → **Settings → API** → copie la clé **`service_role`**. Mets-la dans le fichier `.env.local` à la racine du projet : ```env SUPABASE_SERVICE_ROLE_KEY=eyJhbGciOi... ``` > `.env.local` est ignoré par git (règle `*.local`). Cette clé sert **uniquement** > à téléverser depuis ta machine : elle n'entre jamais dans l'application > distribuée à l'équipe. ### 3. 🔑 Sauvegarder la clé de signature — **le point important** Le fichier `.tauri-signing-key.local` à la racine du projet signe chaque mise à jour. Les applications déjà installées **n'acceptent que** les paquets signés avec cette clé. > ⚠️ **Si tu la perds, aucune mise à jour ne pourra plus être installée.** > Il faudrait générer une nouvelle clé, reconstruire, et redistribuer un `.exe` > à la main à chaque membre de l'équipe. Copie-la maintenant dans un endroit sûr — gestionnaire de mots de passe, clé USB, disque de sauvegarde. **Pas** dans le dépôt git. ### 4. La dernière distribution manuelle Les versions déjà installées chez tes collègues ne connaissent pas encore le système de mise à jour. Il faut donc leur livrer **une dernière fois** un installeur à la main : ```bash npm run tauri:build ``` Envoie le fichier `src-tauri/target/release/bundle/nsis/GameDev Tracker_0.2.0_x64-setup.exe`. C'est le dernier. À partir de cette version, tout est automatique. --- ## Publier une nouvelle version ```bash npm run release -- 0.3.0 "Filtres multiples sur les tâches, correction du Kanban" ``` Le script : 1. écrit `0.3.0` dans `package.json` et `tauri.conf.json` ; 2. construit et **signe** l'installeur (quelques minutes) ; 3. le téléverse dans le bucket `releases` ; 4. écrit `latest.json` — c'est ce fichier que les applications lisent. Ensuite, pense à valider les deux fichiers de version : ```bash git add package.json src-tauri/tauri.conf.json && git commit -m "v0.3.0" ``` ### Quel numéro de version ? Format `X.Y.Z`, toujours croissant. | Ce que tu as fait | Numéro | |---|---| | Correction de bug | `0.2.0` → `0.2.1` | | Nouvelle fonctionnalité | `0.2.1` → `0.3.0` | | Refonte, changement cassant | `0.3.0` → `1.0.0` | Le texte entre guillemets s'affiche dans le bandeau chez tes collègues : écris ce qui **change pour eux**, pas le détail technique. --- ## Côté équipe : ce qu'ils voient Une bande fine en haut de l'application : ``` ┌────────────────────────────────────────────────────────────────────┐ │ ✨ Version 0.3.0 disponible. Filtres multiples sur les tâches │ │ [⬇ Installer et redémarrer] [✕ plus tard]│ └────────────────────────────────────────────────────────────────────┘ ``` - Jamais de fenêtre bloquante : on peut ignorer et continuer à travailler. - « Plus tard » masque le bandeau ; la proposition revient au lancement suivant. - Vérification au démarrage, puis toutes les 2 heures pour les sessions longues. - Le menu **Aide** (touche `?`) affiche la version installée et un bouton « Rechercher une mise à jour ». --- ## En cas de problème | Symptôme | Cause probable | Solution | |---|---|---| | Aucun bandeau n'apparaît | `latest.json` absent ou version identique | Ouvre l'URL du manifeste dans un navigateur, vérifie le champ `version` | | « Signature invalide » | L'installeur a été signé avec une autre clé | Republie avec la bonne `.tauri-signing-key.local` | | Le script dit « bucket not found » | Étape 1 non faite | Exécute `supabase/releases_bucket.sql` | | Le script dit « clé introuvable » | `.tauri-signing-key.local` absent | Restaure ta sauvegarde (étape 3) | | Le téléchargement échoue chez un membre | Bucket non public | Rejoue `releases_bucket.sql` | URL du manifeste (à ouvrir dans un navigateur pour vérifier) : ``` https://.supabase.co/storage/v1/object/public/releases/latest.json ``` --- ## Coût Un installeur pèse ~8 Mo. L'offre gratuite Supabase donne 1 Go de stockage et 5 Go de transfert par mois : à 6 personnes, c'est environ **100 mises à jour par mois** avant de s'en approcher. Tu peux supprimer les vieux installeurs du bucket de temps en temps (garde le dernier).