Skip to content

feat: automated Release Announcement draft maintained by GitHub Copilot#3640

Closed
Copilot wants to merge 5 commits into
mainfrom
copilot/update-release-announcement
Closed

feat: automated Release Announcement draft maintained by GitHub Copilot#3640
Copilot wants to merge 5 commits into
mainfrom
copilot/update-release-announcement

Conversation

Copy link
Copy Markdown

Copilot AI commented Mar 15, 2026

Adds ReleaseAnnouncement.md — a working draft of the end-user release announcement (separate from ChangeLog) that GitHub Copilot keeps up to date automatically, matching the conversational bullet-point style used in real Jamulus Discussion posts.

New files

  • ReleaseAnnouncement.md — live draft; flat bullet list; includes Windows virus-checker REMINDER and pointer to tools/get_release_contributors.py
  • .github/release-announcement-template.md — pristine blank template; copied over the draft after each full release
  • .github/prompts/release-announcement.prompt.yml — AI prompt with verbatim real Jamulus announcement examples; modelParameters.maxCompletionTokens: 16384 / temperature: 0.1 (action default of 200 tokens would truncate mid-document)

Workflow: .github/workflows/update-release-announcement.yml

  • pull_request_target: closed → main — updates draft on every merged PR; workflow + prompt always sourced from main; PR body written to $RUNNER_TEMP via env: before passing as file_input (prevents YAML injection); CHANGELOG: SKIP in PR body skips update
  • push: branches: autobuild** — updates draft on the autobuild branch itself so developers can preview how their change would read in the announcement before merging; loop prevention via github.actor != 'github-actions[bot]'; autobuild.yml already has ReleaseAnnouncement.md in paths-ignore
  • push: tags: r* + reset-after-release job — resets to template only on clean version tags (r3_12_0); pre-release tags (r3_12_0beta1, r3_12_0rc1) intentionally leave the draft intact so it accumulates through the beta/RC cycle
  • Non-empty guard before overwriting the file (protects against empty AI response wiping the draft)

autobuild.ymlReleaseAnnouncement.md, .github/release-announcement-template.md, .github/prompts/** added to paths-ignore so bot commits don't trigger builds.

CONTRIBUTING.md / .github/pull_request_template.md — note that CHANGELOG: feeds both ChangeLog and ReleaseAnnouncement.md; CHANGELOG: SKIP skips both.

CHANGELOG: SKIP

Context: Fixes an issue?

Implements the approach discussed in #3443 (comment) and https://github.com/orgs/jamulussoftware/discussions/3626.

Does this change need documentation? What needs to be documented and how?

The release process checklist at https://jamulus.io/contribute/Release-Process could reference ReleaseAnnouncement.md as the draft to polish and publish, replacing the manual "Draft an announcement" step at the RC stage.

Status of this Pull Request

Working implementation. Requires GitHub Models (models: read permission) to be enabled on the repository for actions/ai-inference@v1.

What is missing until this pull request can be merged?

Confirm GitHub Models access is available for this repo.

Checklist

  • I've verified that this Pull Request follows the general code principles
  • I tested my code and it does what I want
  • My code follows the style guide
  • I waited some time after this Pull Request was opened and all GitHub checks completed without errors.
  • I've filled all the content above

📱 Kick off Copilot coding agent tasks wherever you are with GitHub Mobile, available on iOS and Android.

Adds a working ReleaseAnnouncement.md (separate from the ChangeLog) that is
automatically updated by GitHub Copilot via actions/ai-inference whenever a PR
is merged to main. The announcement is curated for Client users and Server
operators only.

Co-authored-by: pljones <1549463+pljones@users.noreply.github.com>
Copilot AI changed the title [WIP] Add feature to update release announcement on merge Add automated Release Announcement maintained by GitHub Copilot Mar 15, 2026
Copilot AI requested a review from pljones March 15, 2026 09:47
…ase lifecycle

- Rewrite ReleaseAnnouncement.md to match the flat bullet-point, contributor-credited
  style of real Jamulus Discussion announcements (beta5 example); add Windows REMINDER
  and reference to tools/get_release_contributors.py
- Add .github/release-announcement-template.md as the pristine template for resets
- Add .github/prompts/release-announcement.prompt.yml with real Jamulus examples
  and rules; maintainable without touching workflow YAML
- Rewrite update-release-announcement.yml: use prompt-file + file_input (safe for
  any PR body content), response-file output, push:tags trigger, reset-after-release
  job that resets the draft after every full (non-prerelease) release tag
- Update autobuild.yml paths-ignore for all new documentation files

Co-authored-by: pljones <1549463+pljones@users.noreply.github.com>
Copilot AI changed the title Add automated Release Announcement maintained by GitHub Copilot Add automated working Release Announcement maintained by GitHub Copilot Mar 15, 2026
…nnouncement link

- Fix critical truncation bug: add modelParameters (maxCompletionTokens: 16384,
  temperature: 0.1) to release-announcement.prompt.yml — actions/ai-inference
  defaults max-tokens to only 200, which would cut off the document mid-write
- Add non-empty guard in workflow before overwriting ReleaseAnnouncement.md with
  the AI response, preventing accidental wipe on empty/missing model output
- Use intermediate variables for BASH_REMATCH capture groups in reset-after-release
  job for clarity
- CONTRIBUTING.md: mention that the CHANGELOG: line also feeds ReleaseAnnouncement.md
  and that CHANGELOG: SKIP skips both
- pull_request_template.md: extend CHANGELOG comment to reference Release Announcement

Co-authored-by: pljones <1549463+pljones@users.noreply.github.com>
Copilot AI changed the title Add automated working Release Announcement maintained by GitHub Copilot Add working Release Announcement draft, auto-updated by GitHub Copilot on each PR merge Mar 15, 2026
Add a new update-announcement-on-autobuild job to
update-release-announcement.yml that runs whenever a developer
pushes to an autobuild** branch.

The job checks out the pushed branch, reads the HEAD commit's
message (honouring CHANGELOG: SKIP), writes commit metadata to
a temp file via env vars (safe from YAML injection), calls
actions/ai-inference@v1 with the same prompt used for PR merges,
then commits the updated ReleaseAnnouncement.md back to the branch.

Loop prevention: the job-level if skips when
github.actor == 'github-actions[bot]'. autobuild.yml already has
ReleaseAnnouncement.md in paths-ignore, so the bot commit never
re-triggers a build run.

Co-authored-by: pljones <1549463+pljones@users.noreply.github.com>
Copilot AI changed the title Add working Release Announcement draft, auto-updated by GitHub Copilot on each PR merge feat: automated Release Announcement draft maintained by GitHub Copilot Mar 15, 2026
@pljones pljones closed this Mar 15, 2026
@pljones pljones deleted the copilot/update-release-announcement branch March 15, 2026 13:48
@pljones pljones mentioned this pull request Apr 1, 2026
65 tasks
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.

2 participants