Documenter la compilation et la publication dans le README
Ajoute les sections Compilation (dotnet build/test, publish self-contained linux-x64) et Publication (script publier-release.sh de mabibli_ynh, renvoi vers PUBLICATION.md pour la marche complète). Corrige au passage la mention du scanner (ZXing.Net -> zbar), devenue inexacte depuis la bascule documentée dans CLAUDE.md. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This commit is contained in:
co-authored by
Copilot
parent
a0cb727ff0
commit
cf5ada8bab
@@ -17,7 +17,7 @@ Gérer une bibliothèque personnelle (livres physiques et numériques), avec :
|
||||
|
||||
- **Langage** : C# / ASP.NET Core
|
||||
- **Frontend** : Blazor WebAssembly, en **PWA** (installable, utilisable hors-ligne pour la consultation de la bibliothèque déjà enregistrée)
|
||||
- **Scan code-barres** : **ZXing.Net** (décodage EAN-13 en C#, pas de bibliothèque JS tierce)
|
||||
- **Scan code-barres** : **zbar** (WebAssembly, LGPL-2.1) — voir `CLAUDE.md` pour l'historique de la bascule depuis ZXing.Net
|
||||
- **Accès** : smartphone (GSM) et PC, via navigateur
|
||||
- **Multi-utilisateur** : géré via le SSO de **YunoHost** (en-têtes SSOwat, pas d'auth custom) — **collection commune** au foyer, avec traçabilité de qui a ajouté chaque livre
|
||||
- **Base de données** : **SQLite**
|
||||
@@ -25,6 +25,69 @@ Gérer une bibliothèque personnelle (livres physiques et numériques), avec :
|
||||
- **Sources ISBN** : cascade **BnF (SRU) puis OpenLibrary** — bases libres, sans clé API, pas de dépendance à Google Books. La BnF passe en premier pour la couverture du fonds francophone. Voir `CLAUDE.md` pour le détail
|
||||
- **Ebooks** : fiches d'inventaire uniquement, les fichiers ne sont pas hébergés par l'application
|
||||
|
||||
## Compilation
|
||||
|
||||
Prérequis : le SDK **.NET 10** (`dotnet --version`).
|
||||
|
||||
### En développement
|
||||
|
||||
```bash
|
||||
dotnet build
|
||||
dotnet test
|
||||
```
|
||||
|
||||
Pour lancer l'application en local (l'API sert aussi le client Blazor compilé) :
|
||||
|
||||
```bash
|
||||
dotnet run --project MaBibli.Api
|
||||
```
|
||||
|
||||
### Publication self-contained (ce que le serveur reçoit réellement)
|
||||
|
||||
Le serveur YunoHost ne compile jamais : il télécharge une archive déjà publiée et la
|
||||
déploie telle quelle (voir « Publication » ci-dessous). Pour produire ce même artefact
|
||||
en local, à des fins de vérification :
|
||||
|
||||
```bash
|
||||
dotnet publish MaBibli.Api --configuration Release --runtime linux-x64 --self-contained
|
||||
```
|
||||
|
||||
`MaBibli.Api` référence `MaBibli.Client` : le client Blazor WebAssembly est compilé au
|
||||
passage et atterrit dans `wwwroot/` du publish. Un seul projet à publier suffit donc
|
||||
pour les trois (`MaBibli.Client`, `MaBibli.Shared`, `MaBibli.Api`). `--self-contained`
|
||||
embarque le runtime .NET dans le dossier produit : aucun `dotnet-runtime` n'est requis
|
||||
côté serveur.
|
||||
|
||||
⚠️ **Ne jamais compiler sur le serveur YunoHost lui-même** : ce serait imposer le SDK
|
||||
complet à une machine qui n'en a pas besoin, pour une compilation lente. Voir
|
||||
`CLAUDE.md`, section « Chaîne de publication ».
|
||||
|
||||
## Publication
|
||||
|
||||
MaBibli se publie et se déploie via un **second dépôt**, `mabibli_ynh` (le paquet
|
||||
YunoHost), qui contient le script réutilisable `build/publier-release.sh` :
|
||||
|
||||
```bash
|
||||
cd ../mabibli_ynh
|
||||
./build/publier-release.sh
|
||||
```
|
||||
|
||||
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
|
||||
archive `.tar.gz` reproductible, calcule son `sha256`, et met à jour `version`,
|
||||
`amd64.url` et `amd64.sha256` dans `mabibli_ynh/manifest.toml`.
|
||||
|
||||
Reste ensuite, à la main : créer le tag et la release Git correspondants sur ce dépôt,
|
||||
y téléverser l'archive, puis committer et pousser `manifest.toml` dans `mabibli_ynh`
|
||||
(YunoHost lit le manifeste **depuis Gitea**, jamais une copie locale).
|
||||
|
||||
**La marche à suivre complète et éprouvée** — première mise en production, montée de
|
||||
version, retour arrière, désinstallation — est dans `mabibli_ynh/PUBLICATION.md`. Ne
|
||||
pas la reproduire ici : ce sont des gestes propres au paquet YunoHost, pas au code de
|
||||
ce dépôt.
|
||||
|
||||
## Statut
|
||||
|
||||
Projet en tout début de structuration. Voir `CLAUDE.md` pour le contexte complet à destination de Claude Code.
|
||||
Voir `CLAUDE.md` pour le contexte complet et l'historique des décisions à destination
|
||||
de Claude Code.
|
||||
|
||||
Reference in New Issue
Block a user