Tracked under #706 (gap #8).
Problem
Step 19 of the release runbook — announcing a release across six channels (forums, chat, Twitter/X, Facebook, LinkedIn group + company, registered-users mailing list) — is fully manual. It's also the most error-prone of the post-release steps: each channel has its own format conventions, the maintainer has to copy/paste the same content six ways, and channels routinely get missed or fall days behind the release.
Proposed workflow
A workflow consuming openemr-tag (after the docs PR's DRAFT → FINAL flip lands, so the release notes URL resolves) that:
- Renders an announcement from a templated source-of-truth file in
openemr-devops (e.g. tools/release/templates/announcement.md.twig), interpolating version, headline features (from the release notes), and links.
- Posts the announcement to each channel via that channel's API:
- Forums — phpBB API or per-board API
- Chat — webhook into the project chat (Discord/Matrix/Slack — confirm)
- Twitter / X — X API v2
- Facebook — Graph API
- LinkedIn — Marketing Developer Platform API (group + company page)
- Mailing list — outbound SMTP or a list-management API (Mailchimp / Sendy / etc.)
- Logs each post (URL/permalink) back into the workflow run for audit.
Open questions
- Per-channel content review: do we want a 24h dry-run window where the rendered announcement is posted as a draft / opened as a PR for human review before going out? My instinct is yes for the social channels (Twitter/X especially), no for the forum/chat/mailing-list channels where the content is more uniform.
- Credential storage and rotation: each channel needs an API token / OAuth app, owned by the project (not an individual maintainer's account).
- Failure handling: if 2 of 6 channels fail to post, do we retry just those two, retry all six, or surface the failure for manual handling.
This is the largest of the umbrella's sub-issues; might want to split per-channel once we start scoping.
References
Tracked under #706 (gap #8).
Problem
Step 19 of the release runbook — announcing a release across six channels (forums, chat, Twitter/X, Facebook, LinkedIn group + company, registered-users mailing list) — is fully manual. It's also the most error-prone of the post-release steps: each channel has its own format conventions, the maintainer has to copy/paste the same content six ways, and channels routinely get missed or fall days behind the release.
Proposed workflow
A workflow consuming
openemr-tag(after the docs PR's DRAFT → FINAL flip lands, so the release notes URL resolves) that:openemr-devops(e.g.tools/release/templates/announcement.md.twig), interpolating version, headline features (from the release notes), and links.Open questions
This is the largest of the umbrella's sub-issues; might want to split per-channel once we start scoping.
References
docs/RELEASE_PROCESS.md§ Release runbook step 19