fix(deploy): migrate-to-sovereign résout la version cible sur le registry #32

Merged
kevin merged 1 commit from fix/migrate-sovereign-latest into main 2026-07-21 15:55:51 +00:00
Owner

Panne (terrain — install Yannick, 2026-07-21)

bash migrate.sh échoue à l'étape 4/5 : registry.scarletwolf.cloud/gungnir:5.108.2: not found. Le script vise par défaut une version figée en dur au moment de son écriture (5.108.2), or la rétention du registry (mise en place après l'incident disque plein) ne garde que les versions récentes — le tag a été purgé. Tout self-hosteur qui migre « tard » tombe dessus. Le rollback automatique du script a bien fonctionné (rien de cassé chez Yannick).

Fix

Sans argument, la version cible est résolue en direct sur le registry : GET /v2/gungnir/tags/list (pull anonyme, pas de jq — grep/sort semver), plus grand tag retenu. Repli sur latest si le catalogue est injoignable. L'argument [version] reste prioritaire. Commentaire d'en-tête gravé : ne jamais remettre de défaut en dur ici.

Testé : résolution live → 5.134.1 ; hôte injoignable → repli latest ; bash -n OK.

Effet

Yannick re-télécharge le script depuis raw/branch/main à chaque tentative → après merge, ses deux commandes d'origine remarchent telles quelles (sans argument). Une fois migré en version courante, ses mises à jour passent par l'UI (Settings → Mises à jour, sidecar updater + update_checker.py sur Forgejo) — plus aucun CLI.

🤖 Generated with Claude Code

## Panne (terrain — install Yannick, 2026-07-21) `bash migrate.sh` échoue à l'étape 4/5 : `registry.scarletwolf.cloud/gungnir:5.108.2: not found`. Le script vise par défaut une version **figée en dur au moment de son écriture** (5.108.2), or la rétention du registry (mise en place après l'incident disque plein) ne garde que les versions récentes — le tag a été purgé. Tout self-hosteur qui migre « tard » tombe dessus. Le rollback automatique du script a bien fonctionné (rien de cassé chez Yannick). ## Fix Sans argument, la version cible est résolue **en direct sur le registry** : `GET /v2/gungnir/tags/list` (pull anonyme, pas de jq — grep/sort semver), plus grand tag retenu. Repli sur `latest` si le catalogue est injoignable. L'argument `[version]` reste prioritaire. Commentaire d'en-tête gravé : ne jamais remettre de défaut en dur ici. Testé : résolution live → `5.134.1` ; hôte injoignable → repli `latest` ; `bash -n` OK. ## Effet Yannick re-télécharge le script depuis `raw/branch/main` à chaque tentative → après merge, **ses deux commandes d'origine remarchent telles quelles** (sans argument). Une fois migré en version courante, ses mises à jour passent par l'UI (Settings → Mises à jour, sidecar updater + `update_checker.py` sur Forgejo) — plus aucun CLI. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
fix(deploy): migrate-to-sovereign résout la version cible sur le registry
All checks were successful
CI / Backend — pytest (pull_request) Successful in 45s
CI / i18n — usage → locales (pull_request) Successful in 19s
5fa08cb61d
Le défaut en dur (5.108.2, figé à l'écriture du script) est mort avec la
rétention du registry (seules les versions récentes sont gardées) → pull
« not found » garanti pour toute install qui migre tard (cas Yannick).
Sans argument, le script interroge désormais /v2/gungnir/tags/list (pull
anonyme) et prend le plus grand tag semver ; repli sur « latest » si le
catalogue est injoignable. L'argument [version] reste prioritaire.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
kevin merged commit e3f0338034 into main 2026-07-21 15:55:51 +00:00
kevin deleted branch fix/migrate-sovereign-latest 2026-07-21 15:55:51 +00:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
kevin/Gungnir!32
No description provided.