Restaure les vraies URL, et documente la production d'une copie publique
Pendant du commit du paquet. Les passages qui PARLAIENT du placeholder annoncaient desormais la vraie URL comme etant un placeholder : ils sont reecrits pour dire ce qui est. docs/publier-une-version.md porte maintenant la marche a suivre pour produire une copie publique — depot neuf sans historique, URL neutralisees, identite a revoir — avec le rm -rf .git AVANT le git init : un git clone ne conviendrait pas, l'historique portant les URL reelles dans chaque ancien commit. CLAUDE.md consigne l'erreur et la regle qui en sort : on anonymise une copie, jamais l'original. 626 tests au vert. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
+4
-4
@@ -37,7 +37,7 @@ version ultérieures fonctionnent normalement.
|
||||
|
||||
## Le paquet YunoHost
|
||||
|
||||
MaBibli se déploie via un **second dépôt**, [`mabibli_ynh`](https://forge.example.org/mabibli_ynh),
|
||||
MaBibli se déploie via un **second dépôt**, [`mabibli_ynh`](https://git.akbar.nohost.me/mathieu/mabibli_ynh),
|
||||
qui **ne contient aucun code C#** : il porte le manifeste, les configurations nginx et
|
||||
systemd, et les scripts d'installation. Toute la documentation, elle, vit ici — ce
|
||||
fichier est le point d'entrée unique du projet.
|
||||
@@ -178,7 +178,7 @@ Vérification, à faire **sans être authentifié** (autre navigateur, ou `curl`
|
||||
ci-dessous) :
|
||||
|
||||
```bash
|
||||
curl -fsSLI "https://forge.example.org/mabibli/releases/download/v0.1.0/mabibli-0.1.0-linux-x64.tar.gz" | head -1
|
||||
curl -fsSLI "https://git.akbar.nohost.me/mathieu/mabibli/releases/download/v0.1.0/mabibli-0.1.0-linux-x64.tar.gz" | head -1
|
||||
```
|
||||
|
||||
Attendu : `HTTP/2 200`. Un 404 signifie soit que la release n'est pas déposée, soit que
|
||||
@@ -200,13 +200,13 @@ Le contrôle qui tranche, quel que soit le chemin suivi — c'est le manifeste *
|
||||
serveur le lira** :
|
||||
|
||||
```bash
|
||||
curl -fsSL "https://forge.example.org/mabibli_ynh/raw/branch/main/manifest.toml" | grep amd64
|
||||
curl -fsSL "https://git.akbar.nohost.me/mathieu/mabibli_ynh/raw/branch/main/manifest.toml" | grep amd64
|
||||
```
|
||||
|
||||
#### A.5 Installer
|
||||
|
||||
```bash
|
||||
sudo yunohost app install https://forge.example.org/mabibli_ynh --debug
|
||||
sudo yunohost app install https://git.akbar.nohost.me/mathieu/mabibli_ynh --debug
|
||||
```
|
||||
|
||||
YunoHost demande le domaine (celui créé en A.1) et le groupe autorisé (`all_users`).
|
||||
|
||||
+41
-30
@@ -11,41 +11,52 @@ Pour vous, qui sortez les versions. Pour installer, voir
|
||||
| [La chaîne de publication](#publication) | ce que `publier.sh` fait, et ce qu'il refuse |
|
||||
| [Monter de version](#b-monter-de-version) | pas à pas |
|
||||
|
||||
## Avant de publier ce projet quelque part
|
||||
## L'URL du dépôt, et la copie publique
|
||||
|
||||
Les URL de dépôt sont un **placeholder volontaire**, `https://forge.example.org/mabibli`
|
||||
(le domaine `example.org` est réservé à la documentation par la RFC 2606, donc
|
||||
définitivement injoignable). Rien ne fonctionnera tant qu'il n'est pas remplacé.
|
||||
Ce dépôt est le dépôt **de travail** : il porte les URL réelles du serveur de son auteur,
|
||||
`https://git.akbar.nohost.me/mathieu/…`, et c'est ce qui le rend opérationnel.
|
||||
|
||||
**Une seule ligne commande tout le reste** — `depot_code`, en tête de
|
||||
`mabibli_ynh/build/publier.sh`. Elle produit les URL de release, celles d'archive, et le
|
||||
message de fin. Pour un essai ponctuel, `--depot-code https://…` fait la même chose sans
|
||||
modifier le fichier.
|
||||
**Une seule ligne les commande toutes** — `depot_code`, en tête de `build/publier.sh`.
|
||||
Les URL de release, d'archive et le message de fin en dérivent. `--depot-code URL` fait la
|
||||
même chose sans modifier le fichier, pour un essai ponctuel.
|
||||
|
||||
⚠️ **`publier.sh` refuse de publier tant que le placeholder est en place**, et il refuse
|
||||
*avant* de compiler. C'est délibéré : publier avec une URL morte écrirait dans
|
||||
`manifest.toml` une `amd64.url` que personne ne peut télécharger, et l'échec surviendrait
|
||||
bien plus tard, à l'installation, sous la forme d'un `ynh_setup_source` en erreur — sans
|
||||
rapport apparent avec la cause.
|
||||
⚠️ **`amd64.url` dans `manifest.toml` ne se change JAMAIS à la main** : `publier.sh` la
|
||||
réécrit à chaque publication. La modifier hors de ce chemin produit un manifeste qui pointe
|
||||
une archive introuvable — l'échec survient alors **bien plus loin**, à l'installation, dans
|
||||
`ynh_setup_source`, sans rapport apparent avec la cause. C'est arrivé le 2026-08-22.
|
||||
|
||||
Restent à changer à la main, une fois seulement :
|
||||
### Produire une copie publique
|
||||
|
||||
| Fichier | Quoi |
|
||||
|---|---|
|
||||
| `mabibli_ynh/manifest.toml` | `code = "…"`, et `maintainers` |
|
||||
| `mabibli_ynh/conf/systemd.service` | `Documentation=…` |
|
||||
| `mabibli_ynh/doc/ADMIN.md` | le lien de bas de page |
|
||||
| `mabibli_ynh/README.md`, ce fichier | les liens et les commandes d'exemple |
|
||||
| `MaBibli.Client/Pages/APropos.razor` | `Depot`, `Site`, et l'adresse de contact |
|
||||
Pour publier le projet à destination de tiers, on **copie** — on ne transforme pas le dépôt
|
||||
de travail :
|
||||
|
||||
⚠️ **`amd64.url` dans le manifeste n'est PAS à changer à la main** : `publier.sh` la
|
||||
réécrit à chaque publication. La corriger donnerait l'illusion que c'est fait alors que la
|
||||
source du problème est ailleurs.
|
||||
```bash
|
||||
cd ~/Code && rm -rf mabibli-public && cp -r mabibli mabibli-public
|
||||
rm -rf mabibli-public/.git
|
||||
```
|
||||
|
||||
⚠️ **Le dépôt du code doit être PUBLIC.** `ynh_setup_source` télécharge sans jeton, et
|
||||
Gitea comme GitHub répondent **404** — pas 403 — à un anonyme sur un dépôt privé. Le
|
||||
symptôme est alors rigoureusement identique à « la release n'existe pas ». Contrôle qui
|
||||
tranche, hors session authentifiée : `curl -fsSLI "<url de l'archive>"`.
|
||||
⚠️ **Le `rm -rf .git` vient AVANT le `git init`**, et un `git clone` ne conviendrait pas :
|
||||
l'historique porte les URL réelles dans chaque ancien commit — et, côté paquet, une archive
|
||||
de 68 Mo committée par erreur à la 0.1.0 puis retirée.
|
||||
|
||||
Puis neutraliser les URL et l'identité :
|
||||
|
||||
```bash
|
||||
cd mabibli-public
|
||||
grep -rl 'git\.akbar\.nohost\.me' . | xargs sed -i \
|
||||
-e 's|https://git\.akbar\.nohost\.me/mathieu/mabibli_ynh|https://forge.example.org/mabibli_ynh|g' \
|
||||
-e 's|https://git\.akbar\.nohost\.me/mathieu/mabibli|https://forge.example.org/mabibli|g'
|
||||
git init -b main && git add -A && git commit -m "MaBibli"
|
||||
```
|
||||
|
||||
`forge.example.org` est injoignable par construction — `example.org` est réservé à la
|
||||
documentation par la **RFC 2606**. C'est voulu : `publier.sh` **refuse de publier** tant
|
||||
qu'une URL en `example.org` est en place, et il refuse **avant de compiler**. Celui qui
|
||||
reprend le projet doit donc renseigner `depot_code` avant sa première release, plutôt que
|
||||
de découvrir le problème à l'installation.
|
||||
|
||||
Restent à revoir à la main dans la copie : `maintainers` dans `manifest.toml`, et l'adresse
|
||||
de contact et le site dans `MaBibli.Client/Pages/APropos.razor`.
|
||||
|
||||
## Compilation
|
||||
|
||||
@@ -242,7 +253,7 @@ Créer la release `v0.1.1` dans Gitea, y téléverser
|
||||
`build/dist/mabibli-0.1.1-linux-x64.tar.gz`, puis vérifier sans authentification :
|
||||
|
||||
```bash
|
||||
curl -fsSLI "https://forge.example.org/mabibli/releases/download/v0.1.1/mabibli-0.1.1-linux-x64.tar.gz" | head -1
|
||||
curl -fsSLI "https://git.akbar.nohost.me/mathieu/mabibli/releases/download/v0.1.1/mabibli-0.1.1-linux-x64.tar.gz" | head -1
|
||||
```
|
||||
|
||||
#### B.5 Pousser le paquet
|
||||
@@ -263,7 +274,7 @@ sudo yunohost backup create --apps mabibli
|
||||
```
|
||||
|
||||
```bash
|
||||
sudo yunohost app upgrade mabibli -u https://forge.example.org/mabibli_ynh --debug
|
||||
sudo yunohost app upgrade mabibli -u https://git.akbar.nohost.me/mathieu/mabibli_ynh --debug
|
||||
```
|
||||
|
||||
⚠️ **L'option `-u` n'est pas facultative ici.** MaBibli n'est pas dans le catalogue
|
||||
|
||||
Reference in New Issue
Block a user