Skip to content

v0.5.0

Choose a tag to compare

@github-actions github-actions released this 04 Oct 14:36
· 2 commits to main since this release
Immutable release. Only release title and notes can be modified.
c1c9fa0

Newsgroup posting, on the same binary

protocol: nntp with newsgroups posts one article over implicit TLS (NNTPS, 563) or STARTTLS on the news port (RFC 4642, 119), authenticating with AUTHINFO USER/PASS. Transport selection is fail-closed and unchanged in shape from the SMTP path: a server that does not advertise the upgrade is refused before any credential is written.

Refusals name their own reason, including the two 4xx codes that are not retries — 440 at POST and 441 at the article, where a class-only rule would have advised a retry and duplicated the post. Malformed newsgroups and CR/LF in a header-bound value are refused before the socket is opened. The body is dot-stuffed on the wire and a Message-ID is generated per run.

The NNTP session is a second proven contract — spec/Nntp/ (6 rows implicit, 8 with STARTTLS, plus the Newsgroups grammar and newsgroupsNoInjection) — emitted into the same src/generated/smtp_fsm.zig, so the existing drift gate covers it. The SMTP section of that file is unchanged.

The Marketplace listing can finally be published

The publish form refuses a description of 125 characters or more (measured on the parsed value, so a folded scalar does not hide it) and reads action.yml from the release tag — which is why this ships as a tag rather than a commit on main. The description is now 110 characters with STARTTLS and 365 in it; the full text lives in the README, which the listing page renders. scripts/check-action.sh and the action-metadata job keep the limit from regressing, with a selftest proving 125 is refused and 124 accepted.

server_port now defaults to empty, meaning the port the protocol and transport imply: SMTP 465/587/25, NNTP 563/119.

Provenance

CI rebuilt both static musl binaries from this tag and verified they hash to exactly the SHA-256 pins inside this tag's action.yml before publishing. SHA256SUMS is attached:

2683da8f619dd5f310c9f6884da39e825c807c2c86a6319c19aba39b27f9c5c9  smtp-notify-x86_64-linux-musl
a58138308fb9832e1ceb551a12f1b04e591dc38ba5fd336c9acfb3f263161f29  smtp-notify-aarch64-linux-musl

See CHANGELOG.adoc for the full entry, and KNOWN-DEFECTS.adoc for what is not proven — notably D-015: no real news server has ever seen this code; the end-to-end evidence is a containerised fixture.