V0.3
This commit is contained in:
+148
@@ -0,0 +1,148 @@
|
||||
# 🔄 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://<ton-projet>.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).
|
||||
Reference in New Issue
Block a user