Consigne ce que le paquet YunoHost a appris de sa propre mesure
Trois items ouverts d'IDEES.md instruits sur pieces, et deux conclusions renversees en chemin — c'est ce que ces notes servent a ne pas refaire. Le paquet n'avait presque rien a simplifier : neuf fichiers, 209 lignes de code, de 9 a 49 lignes chacun. Ce qui donnait l'impression de volume, ce sont les 306 lignes de commentaires, qui documentent chacune une panne reellement constatee. Tout le poids etait dans publier.sh, 1,4 fois le paquet reuni. Le menu interactif de choix de version paraissait le meilleur candidat a la coupe, jusqu'a ce que les neuf montees de version montrent six correctifs ET trois sauts mineurs. Il sert une fois sur trois : mesurer avant de tailler vaut aussi pour l'outillage. L'icone du paquet : logo.png n'est lu par personne. Les logos du catalogue vivent dans le depot YunoHost/apps, ou MaBibli n'est pas ; la tuile du portail accepte un logo televerse depuis la 12.1, et le manifeste exige deja 12.1.38. Il n'y a donc rien a corriger dans le depot. La RAM est mesuree et ram.runtime porte a 256M. Le pic n'est pas le lookup ISBN, contrairement a l'intuition, mais « Nouveautes » sur un auteur tres reedite — cas qui n'a pas encore ete mesure et qui croit avec le fonds. Le README cesse de decrire --archive-seule comme une brique de CI et retire le « --version est obligatoire ici », piege qui n'existe plus. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -95,7 +95,7 @@ fichier est le point d'entrée unique du projet.
|
||||
| `conf/nginx.conf` | Reverse proxy et intégration SSOwat |
|
||||
| `scripts/_common.sh` | Variables partagées et sauvegarde/restauration cohérente de la base SQLite |
|
||||
| `scripts/install` `remove` `upgrade` `backup` `restore` | Cycle de vie de l'application |
|
||||
| `build/publier.sh` | **Seul script de publication** : version, archive, manifeste, commit et push du paquet, tag et push du code. `--archive-seule` compile sans rien publier |
|
||||
| `build/publier.sh` | **Seul script de publication** : version, archive, manifeste, commit et push du paquet, tag et push du code. `--archive-seule` compile et archive sans rien publier, pour reprendre après un échec |
|
||||
| `doc/DESCRIPTION.md` `doc/ADMIN.md` | Textes affichés par YunoHost lui-même (catalogue et interface d'administration) — ils doivent rester dans ce dépôt |
|
||||
|
||||
### Points de conception
|
||||
@@ -136,8 +136,8 @@ a existé jusqu'au 2026-08-21 : il compilait, archivait et réécrivait le manif
|
||||
charge pour l'appelant de committer. Son nom inspirait plus confiance que celui du vrai
|
||||
point d'entrée, et lancé seul il produisait exactement la panne du 2026-08-21 — un
|
||||
`manifest.toml` corrigé mais non poussé, et une release `v0.4.0` contenant en réalité six
|
||||
commits de plus que son tag. Les deux scripts sont fondus ; la brique réutilisable
|
||||
subsiste sous la même commande :
|
||||
commits de plus que son tag. Les deux scripts sont fondus ; ce que le second savait
|
||||
faire subsiste sous la même commande :
|
||||
|
||||
```bash
|
||||
./build/publier.sh --archive-seule
|
||||
@@ -146,6 +146,17 @@ subsiste sous la même commande :
|
||||
Ce mode compile et archive, **sans toucher ni au manifeste ni à git** : il ne peut donc
|
||||
rien laisser à moitié publié.
|
||||
|
||||
⚠️ **À quoi il sert vraiment** : à **reprendre une publication à la main** quand
|
||||
`publier.sh` a échoué en cours de route (voir B.3). Ce n'est pas « une brique pour une
|
||||
CI » — c'était la justification écrite jusqu'au 2026-08-22, et elle désignait un usage
|
||||
qui n'a jamais eu lieu, là où la reprise après échec, elle, est documentée pas à pas.
|
||||
|
||||
⚠️ **Les contrôles ne sont PAS désactivés dans ce mode**, contrairement à ce qui a été
|
||||
vrai jusqu'au 2026-08-22 : ils s'exécutent tous, et **avertissent** au lieu de refuser,
|
||||
puisque rien n'est publié et que rien ne peut donc mentir. Le dépôt sale, en
|
||||
particulier, n'était alors pas signalé du tout — l'archive contenait en silence du
|
||||
travail non committé.
|
||||
|
||||
Ce script compile ce dépôt (`mabibli`) en `Release` self-contained, **vérifie** le
|
||||
résultat (binaire présent, `wwwroot/` embarqué, toutes les ressources d'`index.html`
|
||||
réellement sur disque, aucun placeholder d'empreinte non substitué), produit une
|
||||
@@ -175,7 +186,10 @@ Il refuse par ailleurs de publier dans deux cas, **avant de compiler** :
|
||||
| le tag `vX.Y.Z` existe déjà | une release qui ne contient pas le code que son tag désigne — arrivé le 2026-08-21, six commits d'écart, sans que rien ne le signale |
|
||||
| le dépôt du code a des modifications non committées | une archive contenant du travail que le tag, lui, ne contient pas |
|
||||
|
||||
Dans les deux cas il nomme le commit en cause et rappelle `--patch` ou `--archive-seule`.
|
||||
Dans les deux cas il nomme le commit en cause et rappelle `--patch`. ⚠️ En
|
||||
`--archive-seule`, les mêmes contrôles **avertissent** au lieu de refuser — le constat
|
||||
s'affiche, le conseil « choisissez un numéro libre » non : en reprise, le tag visé
|
||||
est justement celui qu'on veut retrouver.
|
||||
|
||||
**La marche à suivre complète et éprouvée**, pour les cas que `publier.sh` ne couvre
|
||||
pas — première mise en production, montée de version pas à pas, retour arrière,
|
||||
@@ -343,11 +357,15 @@ cours de route.
|
||||
Le code est prêt et committé dans `mabibli`. Depuis `mabibli_ynh` :
|
||||
|
||||
```bash
|
||||
./build/publier.sh --archive-seule --version 0.1.1
|
||||
./build/publier.sh --archive-seule --patch
|
||||
```
|
||||
|
||||
⚠️ **`--version` est obligatoire ici.** En `--archive-seule`, sans lui, le script déduit
|
||||
la version de `manifest.toml` et reproduirait 0.1.0.
|
||||
⚠️ **`--version` n'est plus obligatoire ici, depuis le 2026-08-22.** Le mode reprenait
|
||||
alors la version de `manifest.toml` — c'est-à-dire celle **déjà publiée** — et
|
||||
reproduisait donc 0.1.0 tant qu'on ne le corrigeait pas à la main. Les deux modes
|
||||
calculent maintenant la version de la même façon : `--patch` propose 0.1.1, et
|
||||
`--version` ne sert plus qu'à viser un autre numéro (par exemple celui d'un tag déjà
|
||||
créé, si la publication a échoué après le tag).
|
||||
|
||||
⚠️ **`--archive-seule` ne touche pas au manifeste** : `version` (avec son suffixe
|
||||
`~ynh1` — une nouvelle version applicative repart toujours de 1), `amd64.url` et
|
||||
|
||||
Reference in New Issue
Block a user