A published release announces itself on pbus has been fixed.
See more details at : https://github.com/pdulvp/prel/issues/14
the last step of a release that really went out: nothing for a --draft or
under --no-release, and prel release -n says which applies
- pbus missing or the event undeclared is silence; a daemon that is not
running, a missing key or a refused payload is a warning naming the emit to
repeat, never a failed release
- sudo prel init-pbus register declares the event once per machine, with a
payload pattern of the shape a version has, and hands the key to the account
that called sudo - the one that runs prel release
- pbus added to the .deb's Recommends, beside gh and jq
A published release announces itself on pbus
<sub>2026-10-26-2225-pbus-release-published.md — 2026-10-26 22:25</sub>
pbus is an event dispatcher for Debian (/mnt/Data/Works/pbus-events): a
command registers against an event name and the daemon launches it when that
event is emitted. A release is exactly such a moment -- the site rebuilds, a
notification pops -- and none of it is prel's work to wait for.
So a release that went out emits prel.release.published with the version as
its payload, and sudo prel init-pbus register is what declares the event
once per machine.
prel release 0.2.7 # ... then: pbus emit prel.release.published
sudo prel init-pbus register # declare the event, hand the key over
prel init-pbus status # what a release would emit, and to whom
Nothing here may stop or fail a release. pbus not installed, the event not
declared, the daemon not running, the key not found: the release is already
out by then, so the first two are silence and the last two a warning naming
the pbus emit to retry by hand. pbus is a Recommends of the package, not
a Depends, for the same reason.
The event is emitted only where the release was really published: not on a
dry run, not under --no-release, and not for a --draft, which has not
shipped.
Steps
- [x] scripts/init-pbus.sh -- prel init-pbus [usage|register|unregister|status]
- no pbus shortcut function: prel.sh sources every script into
one shell, and a function of that name would shadow the binary
release.sh emits through
- register: pbus register-event prel.release.published with a
description, --payload-pattern for the version shape and --save;
an event already there is reported and left alone, since re-declaring
it would rotate the key under whoever already holds it
- register under sudo also hands the key to $SUDO_USER's keyring
through pbus save-key, so the unprivileged prel release that
emits can find it
- status: unprivileged, says whether pbus is there, whether the event is
declared, whether this account holds a key, and what a release would do
- unregister: pbus unregister-event, pointing at --purge-listeners
- [x] scripts/release.sh
- _REL_PBUS_EVENT, _rel_pbus_available, _rel_pbus_event_known
(pbus show-event exits non-zero on an event the machine does not know)
- the report block gains a pbus: line, so a dry run says what would be
emitted and why it would not be
- the emit itself as the last step of a published release, after the
milestone: warn-only, never a non-zero return
- usage text
- [x] packaging/build-deb.sh -- pbus added to Recommends
- [x] README.md -- the pbus section, and prel init-pbus in the command list
- [x] checked: bash -n on all three files (shellcheck is not installed here),
prel release -n with the event declared, as a draft, under
--no-release and with pbus out of PATH, and the emit itself end to
end against a private pbusd under /tmp - accepted, refused by the
pattern, and no daemon at all
- [x] docs/plans/sumup.md, plan marked complete and archived
<sub>Filed by prel from the completed plans at commit time.</sub>