Sfoglia il codice sorgente

docs: CDC v5.1 — processus de release et phase 6

- Ajout section 16 : processus de release complet (catalogue YunoHost,
  configuration initiale, procédure de bump de version)
- Ajout phase 6 : correctifs et améliorations du 2026-07-17
- Mise à jour structure dépôt (v3/apps.json)
- Correction note technique find -printf → find + stat portable

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Cedric Hansen 2 settimane fa
parent
commit
4102fdba31
1 ha cambiato i file con 41 aggiunte e 1 eliminazioni
  1. 41 1
      doc/CDC_backupmanager_ynh.md

+ 41 - 1
doc/CDC_backupmanager_ynh.md

@@ -87,6 +87,8 @@ backupmanager_ynh/
 │       ├── remote_instances.html
 │       ├── remote_instance_form.html
 │       └── federation.html
+├── v3/
+│   └── apps.json               # Catalogue YunoHost personnalisé (version disponible)
 └── doc/
 ```
 
@@ -480,6 +482,14 @@ rsync -az -e "ssh -i $key -p $port" archive.tar archive.info.json user@host:/rem
 - [x] Rétention distante SSH : après chaque transfert rsync, nettoyage via SSH
 - [x] Vue globale des archives `/overview` : local + SSH + instances, suppression manuelle, rétention à la demande
 
+### Phase 6 — Qualité & opérations ✅ (2026-07-17)
+- [x] Vue globale par job avec onglets (par job / par destination) — indicateur de réplication coloré
+- [x] Collecte parallèle des destinations dans la vue globale (`ThreadPoolExecutor`)
+- [x] Fix timeout instances fédérées : `(connect=5s, read=15s)` au lieu de `15s` global
+- [x] Fix `core_only` : `BACKUP_CORE_ONLY` passé via `env_keep` sudoers (plus de `sudo env`)
+- [x] Fix listage SSH : remplacement de `find -printf` (GNU only) par `find + stat` portable
+- [x] Catalogue YunoHost personnalisé (`v3/apps.json`) — mises à jour détectables depuis l'interface web
+
 ### En cours / À venir
 - [ ] Script backup/restore de l'app pour YNH (SQLite + clés SSH)
 - [ ] Pagination de l'historique des runs
@@ -494,7 +504,37 @@ rsync -az -e "ssh -i $key -p $port" archive.tar archive.info.json user@host:/rem
 - **sudo rsync** : crée des fichiers `/tmp` owned root → cleanup via `sudo rm -rf` (sudoers)
 - **Runs bloqués** : nettoyés toutes les heures par APScheduler (> 6h → status error)
 - **Migration SQLite** : colonnes ajoutées à chaud via `ALTER TABLE` dans `app.py` au démarrage
-- **Rétention SSH** : utilise `find -printf '%f\t%s\n'` (GNU find, disponible sur Debian/Ubuntu)
+- **Listage SSH** : `cd {dir} && find . -maxdepth 1 -name '*.tar' | stat -c%s` — portable (pas de `find -printf` absent sur BusyBox/BSD)
+- **core_only** : variable `BACKUP_CORE_ONLY=1` transmise via `subprocess(env=)` + `env_keep` dans sudoers (pas via `sudo env` non autorisé)
+- **Vue globale** : collecte des destinations en parallèle via `ThreadPoolExecutor` — une destination lente ne bloque pas les autres
+
+---
+
+## 16. Processus de release
+
+### Configuration initiale (une seule fois par serveur YunoHost)
+
+1. Créer `/etc/yunohost/apps_catalog.yml` :
+   ```yaml
+   - id: default
+     url: https://app.yunohost.org/default
+   - id: backupmanager-hansen
+     url: https://git.hansen.tl/YunoHost-Apps/backupmanager_ynh/raw/main
+   ```
+2. Rafraîchir le cache : `sudo yunohost tools update apps`
+
+YunoHost construit l'URL du catalogue en ajoutant `/v3/apps.json` à l'URL de base,
+soit : `https://git.hansen.tl/YunoHost-Apps/backupmanager_ynh/raw/main/v3/apps.json`
+
+### À chaque release
+
+1. Bumper la version dans **deux fichiers** (ex : `1.1~ynh1` → `1.2~ynh1`) :
+   - `manifest.toml` → champ `version`
+   - `v3/apps.json` → champ `manifest.version`
+2. Committer et pousser sur `main`
+3. YunoHost détecte la différence lors du prochain rafraîchissement (quotidien automatique
+   ou manuel avec `sudo yunohost tools update apps`) et propose la mise à jour dans l'interface web
+4. L'upgrade récupère le code depuis le git et installe la nouvelle version
 
 ---