Skip to content

Fix 207#223

Merged
oberstet merged 3 commits into
crossbario:masterfrom
oberstet:fix_207
Jun 18, 2026
Merged

Fix 207#223
oberstet merged 3 commits into
crossbario:masterfrom
oberstet:fix_207

Conversation

@oberstet

Copy link
Copy Markdown
Contributor

fixes #207

oberstet added 3 commits June 18, 2026 11:07
…rio#207)

Port the release-announcement workflow used by autobahn-python / zlmdb to
txaio, adapted for a pure-Python project:

- New .github/workflows/release-post-comment.yml: triggered on completion
  of the `release` workflow (+ manual dispatch). An early-exit job finds a
  freshly-created GitHub Release for the head commit — stable (vX.Y.Z) or
  nightly (master-YYYYMMDDHHMM) — and a second job fetches the release
  notes, renders them via a Jinja2 template and creates a GitHub Discussion
  for both nightly and stable releases.
- New .github/templates/discussion-post.md.j2: minimal announcement body
  (release notes + links) suitable for a pure-Python package.

The target Discussions category is resolved by name (case-insensitive,
default "cicd") via GraphQL rather than a hard-coded repo-specific category
id; this removes the repo-specific id and is immune to the category-name
casing pitfall. A workflow_dispatch input allows overriding the name.

Prerequisite (repo setting): GitHub Discussions must be enabled with a
"cicd" category. This workflow only runs on release events, so it is
exercised at the next nightly/stable release rather than on this PR.

Verified locally: both YAML files parse; the embedded github-script JS
passes `node --check` (wrapped as github-script executes it).

Note: This work was completed with AI assistance (Claude Code).
…sbario#207)

Expand crossbario#207 beyond Discussions to bring the release pipeline into structural
alignment with the rest of the WAMP group: build once, upload-verified,
download-verified, publish the same bytes.

Previously main.yml uploaded a verified package artifact that nothing ever
downloaded (orphaned chain-of-custody), and release.yml rebuilt the wheel,
sdist and docs from source — so the published bytes were not the ones tested.

main.yml:
- build-package: drop the redundant 3x interpreter matrix (the universal
  py3-none-any wheel is identical across interpreters) and build the full
  release fileset once — wheel AND source distribution — uploaded verified
  as `package`. (The documentation job already uploads the built HTML as a
  verified `documentation` artifact.)

release.yml (both the nightly and the stable/PyPI jobs):
- Replace the inline rebuilds (just build / build-sourcedist / docs) with
  download-artifact-verified of `package` and `documentation` from the
  triggering main run (run id from check-main-workflow.main_run_id), then
  archive the downloaded docs and publish those exact artifacts. The PyPI
  job still runs check-release-fileset on the verified payload.

download-artifact-verified prefix-matches the meta-checksum-suffixed names,
so `name: package` / `name: documentation` resolve without a discovery job.

Verified locally: both workflows parse as valid YAML; `just build` +
`just build-sourcedist` produce exactly the wheel + sdist that the release
now downloads; no `just build*`/`just docs` remain in release.yml. The
cross-run download path is release-event-only and will be exercised at the
next nightly/stable release.

Note: This work was completed with AI assistance (Claude Code).
@oberstet
oberstet merged commit 508bc01 into crossbario:master Jun 18, 2026
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Release workflow alignment: GitHub Discussions announcements + verified artifact chain-of-custody

1 participant