Skip to content

Automate post-release announcement fan-out (forums, chat, social, mailing list) #711

Description

@kojiromike

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:

  1. 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.
  2. 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.)
  3. 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

Metadata

Metadata

Assignees

No one assigned

    Labels

    Fields

    No fields configured for Feature.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions