Commit Graph
22 Commits
Author SHA1 Message Date
mathieuandClaude Opus 5 1f115790ee Range --archive-seule au lieu de le supprimer, et mesure la RAM
Le mode etait justifie dans CLAUDE.md comme « la brique reutilisable en CI ».
C'etait faux : le README du depot du code s'en sert depuis toujours comme
chemin de reprise a la main quand publier.sh echoue en cours de route. Il a
donc failli partir sur une justification erronee.

Garde et range : 8 ramifications ramenees a 5, dont une seule assouplit encore
un garde-fou, contre trois auparavant. Deux defauts reels en sont sortis — un
depot sale n'etait PAS signale dans ce mode, et la version y retombait sur
celle deja publiee, piege que le README documentait au lieu de le corriger.

refuser() separe le constat du conseil : le constat vaut dans les deux modes,
« choisissez un numero libre » est faux en reprise, ou le tag vise est
justement celui qu'on veut retrouver.

Le depot git devient une exigence inconditionnelle en tete, ce qui supprime
quatre tests -d .git disperses plus bas.

Les cinq variables d'environnement jumelles disparaissent : chacune doublait
une option qu'elle repetait, l'aide en listait dix pour cinq reglages, et rien
ne disait laquelle l'emportait.

ram.runtime passe de 200M a 256M. Mesure sur le serveur : pic reel de
208 793 600 o, soit 199,1 Mio, contre 200M declares — 0,4 % de marge, c'est-a-
dire aucune. systemctl show -p MemoryPeak ne renvoie rien sur ce serveur et
reussit en silence ; c'est le cgroup qui garde le maximum.

Les deux doc/*_fr.md, identiques octet pour octet a leurs jumeaux, sont
supprimes : YunoHost retombe sur les fichiers par defaut, deja en francais.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-22 12:15:24 +02:00
mathieu fac694da03 Publier la version 0.4.3 2026-08-22 02:17:01 +02:00
mathieu 6d94080d8a Publier la version 0.4.2 2026-08-22 00:55:53 +02:00
mathieuandClaude Opus 5 7c7e686c7a Fonds les deux scripts de publication en un seul, qui refuse de mentir
Il y en avait deux, et le mauvais portait le nom le plus convaincant :
`publier-release.sh` compilait, archivait et réécrivait le manifeste, à
charge pour l'appelant de committer. Lancé seul, il a produit les deux
moitiés de la panne du 2026-08-21 — un manifeste corrigé mais non poussé,
et une release v0.4.0 contenant six commits de plus que son tag.

`publier.sh` absorbe l'étape et refuse désormais de publier, avant de
compiler, si le tag de la version existe déjà (en nommant le commit du tag
et celui de HEAD) ou si le dépôt du code n'est pas propre. `--archive-seule`
garde la brique réutilisable en CI, sous le même nom : ni manifeste, ni
commit, ni tag, donc rien à moitié publié.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-21 23:12:41 +02:00
mathieu 81108d7879 Publier la version 0.4.1 2026-08-21 23:06:58 +02:00
mathieuandClaude Opus 5 4a97b21ca3 Aligne l'empreinte du manifeste sur l'archive réellement publiée
L'asset de la release v0.4.0 a été remplacé sur Gitea ; le sha256 du
manifeste désignait encore l'archive précédente, d'où l'échec de
`yunohost app upgrade` (et de son retour arrière, qui retélécharge la
même source).

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-21 23:01:16 +02:00
mathieuandClaude Opus 5 a805721f04 Injecte la version et l'horodatage de build dans l'assembly
La page « À propos » de l'application affiche la version publiée : encore
faut-il que le binaire la connaisse. Le publish reçoit donc, à côté de
`-p:Version` déjà présent, `-p:MaBibliDateBuild`.

⚠️ Cet horodatage est le témoin de l'injection : sans lui, l'application se
déclare « version de développement » plutôt que d'afficher le « 1.0.0 » que le
SDK pose par défaut, lequel se lirait comme une vraie version alors qu'il ne
désigne rien.

`SOURCE_DATE_EPOCH` est respecté, comme pour l'archive : sinon deux
compilations du même commit donneraient deux sha256 différents pour la seule
raison que l'heure a changé, et la reproductibilité visée par les options de
`tar` ne vaudrait plus rien.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-21 14:50:34 +02:00
mathieu 2daacd847f Publier la version 0.4.0 2026-08-21 11:48:48 +02:00
mathieu c00abb4006 Publier la version 0.3.3 2026-08-20 22:22:28 +02:00
mathieu 2858bd0755 Publier la version 0.3.2 2026-08-20 21:31:15 +02:00
mathieu 2d98f5c987 Publier la version 0.3.1 2026-08-20 19:51:27 +02:00
mathieuandClaude Opus 5 712741a883 Renvoie la documentation vers le README du dépôt du code
publier.sh enchaîne la publication de bout en bout : version déduite de la
précédente, archive, manifeste, commit et push du paquet, tag et push du code,
avec vérification côté distant. Seul le dépôt de l'archive dans la release
Gitea reste manuel — l'URL est rappelée en fin de sortie.

PUBLICATION.md et A_FAIRE.md sont supprimés : leur contenu vit désormais dans
le README de mabibli, point d'entrée unique du projet. doc/DESCRIPTION.md et
doc/ADMIN.md restent ici, YunoHost les lisant lui-même.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-20 19:49:38 +02:00
mathieu 0c2e94431b Publier la version 0.3.0 2026-08-20 18:18:01 +02:00
LIMONIER MathieuandCopilot 3d4ccd32ed Ajouter le logo de l'application (256x256, fond transparent)
Meme pictogramme de livre ouvert que MaBibli.Client (favicon, icones PWA) : deux pages
en V dans le bleu d'accent de l'app, tranche centrale blanche. Convention du catalogue
d'applications YunoHost : logo.png a la racine du depot.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-08-20 13:03:21 +02:00
mathieuandClaude Opus 5 3fcb447bb8 Rappeler l'option -u à la mise à jour, l'app n'étant pas au catalogue
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-19 22:52:33 +02:00
mathieu 6f58527206 Publier la version 0.2.0 2026-08-19 22:48:50 +02:00
mathieuandClaude Opus 5 54a22b1579 Écrire la marche à suivre : mise en production et montée de version
PUBLICATION.md donne les gestes pas à pas, avec le contrôle attendu à
chaque étape : première mise en production, montée de version (0.1.0 →
0.1.1), retour arrière si la mise à jour échoue, désinstallation.

Deux points qui se paient cher s'ils sont oubliés y sont explicites :
`--version` est obligatoire pour une nouvelle version applicative (sans
lui le script reproduit celle du manifeste), et la sauvegarde de sécurité
pré-upgrade ne contient PAS le répertoire de données.

README et A_FAIRE renvoient au fichier plutôt que de tripler la
procédure. Dernière URL fictive éliminée : gitea.exemple.org subsistait
dans l'exemple CI de publier-release.sh.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-18 21:05:56 +02:00
mathieuandClaude Opus 5 7ab423783f Rendre le data_dir visible au service : ProtectHome=tmpfs + BindPaths
Le data_dir de YunoHost vit sous /home/yunohost.app/mabibli, or
ProtectHome=yes rend /home vide dans le namespace du service : le démarrage
mourait sur « SQLite Error 14: unable to open database file ».

ReadWritePaths ne perce pas ProtectHome — vérifié sur une unité de test :
`yes` + ReadWritePaths échoue, `tmpfs` + BindPaths réussit. La forme retenue
garde les répertoires personnels du serveur invisibles au service.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-18 19:26:48 +02:00
mathieuandClaude Opus 5 4e9bd8be71 Guillemeter la chaîne de connexion dans l'unité systemd
`Environment=` découpe sur les espaces : sans guillemets, la ligne
définissait `ConnectionStrings__MaBibli=Data` et une variable parasite
`Source=…`. L'application recevait la chaîne de connexion `Data` et mourait
au démarrage en ArgumentException, faisant échouer l'installation à l'étape
« Démarrage de mabibli » (constaté sur le serveur, reproduit isolément sur
une unité de test).

Version de paquet à ~ynh2 : l'archive est inchangée, seule la conf bouge.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-18 19:21:38 +02:00
mathieuandClaude Opus 5 33bab173bc Pointer réellement le manifeste vers la release Gitea
Le commit précédent portait le bon message mais pas les modifications :
manifest.toml, README.md, conf/systemd.service et la valeur par défaut de
--base-url référençaient encore gitea.example.org, ce qui faisait échouer
l'installation au Prefetching asset main.

A_FAIRE.md est réécrit : la visibilité privée du dépôt du code devient le
point bloquant restant (Gitea répond 404, pas 403, à un anonyme).

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-18 19:16:13 +02:00
mathieu ffc3db2dcc Manifeste pointe vers la bonne release 2026-08-18 19:14:14 +02:00
mathieu f942f41f34 premier essaie 2026-08-18 15:15:53 +02:00