Événements pbus d'une release : payloads JSON, un événement par artefact has been fixed.
See more details at : https://github.com/pdulvp/prel/issues/21
- prel.release.published émet un payload JSON {"version": "0.2.13"} au lieu
de la version nue ; un listener lit le champ avec jq -r .version, et le
pattern déclaré par prel init-pbus register matche cette forme
- chaque artefact publié émet aussi prel.release.artifact.<ext>.published
(ex. .deb), hors --draft et --no-release, avec un payload
{"version": "0.2.13", "repository": "pdulvp/prel"} : la version et le dépôt
owner/repo lu dans l'URL de push du remote GitHub
- émissions warn-only comme avant : événement non déclaré = silence, émission
refusée = avertissement avec la commande pbus emit à rejouer ; vérifié de
bout en bout contre un pbusd privé (payloads acceptés et capturés, version
nue refusée rc 6)
- prel init-pbus status/register signalent un pattern d'ancienne forme qui
refuserait le payload JSON, et prel init-pbus usage + README documentent la
déclaration des événements artefact avec leur payload pattern
Événement prel.release.published : payload JSON avec un attribut version
<sub>2026-11-07-1319-pbus-payload-json-version.md — 2026-11-07 13:19</sub>
Objectif : le payload émis n'est plus la version nue (0.2.12) mais un objet
JSON {"version": "0.2.12"}, pour qu'un listener lise un champ nommé avec
jq -r .version plutôt que de parser la chaîne entière.
Étapes :
- [x] scripts/release.sh
- _rel_pbus_payload <version> : construit {"version": "<version>"} par
printf (la forme d'une version n'admet aucun caractère à échapper dans
une chaîne JSON)
- _rel_pbus_emit : émet --payload "$payload" ; la commande de reprise
manuelle affiche le payload entre apostrophes
- rapport de prel release -n (ligne pbus:) : affiche le payload JSON
- texte d'usage, étape 9 ; commentaire d'en-tête de la section pbus
- [x] scripts/init-pbus.sh
- _PREL_PBUS_PATTERN : nouvelle forme ^\{"version": "..."\}$ (backslash
simple — pbusd matche via [[ =~ $pat ]] sur une variable)
- commentaires et usage : payload = objet JSON, lecture via jq -r .version
- register (branche « déjà déclaré ») et status : signaler quand le
pattern déclaré diffère de celui attendu, puisqu'il refuserait le payload
JSON émis par une release
- [x] README.md : étape 9, section pbus (forme du payload, exemple
d'avertissement, pattern, exemple de listener)
- [x] Vérifié : bash -n sur les deux scripts, pattern testé contre des
payloads valides et refusés, _rel_pbus_payload appelé en shell, rendu de
prel release usage et prel init-pbus usage, prel release -n micro
(ligne pbus: avec le payload JSON), et émission de bout en bout contre un
pbusd privé sous /tmp (payload JSON accepté et capturé par un listener,
jq -r .version -> 0.2.12, version nue refusée rc=6 ; pattern de l'ancienne
forme refuse le payload JSON, note affichée par status et register)
- [x] Marqué complete, docs/plans/sumup.md écrit, plan archivé
Événements prel.release.artifact.<ext>.published pour chaque artefact publié
<sub>2026-11-07-1327-pbus-artifact-published-events.md — 2026-11-07 13:27</sub>
Objectif : quand une release publie des artefacts, émettre pour chacun une
evento prel.release.artifact.<extension>.published (ex. .deb pour
build/prel_0.2.13_all.deb), avec un payload JSON contenant version et le
dépôt GitHub owner/repo sur lequel la release a été publiée :
{"version": "0.2.13", "repository": "pdulvp/prel"}.
Étapes :
- [x] scripts/release.sh
- _rel_github_repo : owner/repo lu dans l'URL de push du remote
(testé sur https, scp-like git@, ssh:// avec et sans port ; refusé hors
github.com ou sans deux composants propres)
- _rel_pbus_event_known accepte un nom d'événement en argument
- _rel_pbus_send <event> <payload> <warning> : émission brute warn-only ;
_rel_pbus_emit et _rel_pbus_emit_artifact l'appellent
- _rel_pbus_artifact_event <fichier> : extension = suffixe après le dernier
point, en minuscules, caractères valides pbus ; pas d'extension (ou suffixe
purement numérique comme myapp-1.0) -> pas d'événement
_PREL_PBUS_ARTIFACT_PATTERN testé : payload émis accepté, payload sans
repository, version préfixée v, repo mal formé refusés
- boucle sur _REL_ASSETS à la fin de la release (hors draft et
--no-release, une émission par extension distincte)
- rapport prel release -n : ligne pbus: par extension de pattern ;
vérifié : prel.release.artifact.deb.published avec
{"version": "0.2.13", "repository": "pdulvp/prel"} ; usage étape 9
_PREL_PBUS_ARTIFACT_PATTERN ; usage : exemple de déclaration d'un événement
artefact (rendu vérifié)
- [x] README.md : étape 9, section pbus (événements par artefact, payload,
exemple de déclaration), section prel init-pbus
- [x] Vérifié de bout en bout contre un pbusd privé : événement
prel.release.artifact.deb.published déclaré avec le pattern -> payload JSON
accepté, capturé par le listener, jq -r .version / .repository lus ;
extension non déclarée -> silence ; payload nu refusé (rc 6) ; avertissement
de reprise avec la commande quotée
- [x] Marqué complete, docs/plans/sumup.md écrit, plan archivé
<sub>Filed by prel from the completed plans at commit time.</sub>