Skip to content

ci(release): post release notes to the announcements discussion board - #3707

Merged
yonib05 merged 3 commits into
strands-agents:mainfrom
yonib05:feature/announcements-discussion-bcd9b
Aug 11, 2026
Merged

ci(release): post release notes to the announcements discussion board#3707
yonib05 merged 3 commits into
strands-agents:mainfrom
yonib05:feature/announcements-discussion-bcd9b

Conversation

@yonib05

@yonib05 yonib05 commented Aug 7, 2026

Copy link
Copy Markdown
Member

Description

Release announcements on the Discussions board stopped after python/v1.45.0 and typescript/v1.7.0: those posts were created manually via the "create a discussion for this release" checkbox on the release page, and the automated release workflows never picked that step up. This links each release to a discussion in the existing Announcements category at creation time, so the announcement happens as part of the release instead of depending on someone remembering.

The linked discussion has the same shape as the historical posts: title is the tag, body is the release notes. The announcement is posted in its own non-fatal step after the release exists, mirroring the changelog dispatch: a missing or renamed category degrades to a warning instead of failing a release whose tag is already pushed. On forks the step is skipped, since Discussions or the category may not exist there.

Related Issues

None.

Documentation PR

No documentation changes needed.

Type of Change

Other (please describe): release workflow change

Testing

How have you tested the change? Verify that the changes do not break functionality or introduce new warnings.

  • actionlint passes on all three release workflows.

  • Exercised the linking mechanism against throwaway releases on a fork: a category PATCH on a published release creates and links the discussion (title is the release title, body is the notes), re-running the PATCH is a no-op returning the same discussion, and an unknown category returns HTTP 404 without touching the release, which is the path the non-fatal warning covers. Probe releases and discussions were deleted afterwards.

  • Simulated the step's failure path under set -euo pipefail with a stubbed failing gh: the warning is emitted and the step exits 0.

  • The full workflow path cannot be exercised before merge: dry runs skip create-gh-release, and fork runs skip the announcement step by design.

  • I ran hatch run prepare (not applicable: no Python SDK changes)

Checklist

  • I have read the CONTRIBUTING document
  • I have reviewed and understand every line of code in this PR, including any generated by AI tools, and I can explain why it works
  • My change is focused and reasonably small; I have split unrelated work into separate PRs
  • I have added any necessary tests that prove my fix is effective or my feature works
  • I have updated the documentation accordingly
  • I have added an appropriate example to the documentation to outline the feature, or no new docs are needed
  • My changes generate no new warnings
  • Any dependent changes have been merged and published

By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

@github-actions github-actions Bot added area-community Related to community and contributor health chore Maintenance tasks, dependency updates, CI changes, refactoring with no user-facing impact size/s labels Aug 7, 2026
@yonib05
yonib05 marked this pull request as ready for review August 7, 2026 16:03
@yonib05
yonib05 requested a review from a team as a code owner August 7, 2026 16:03
Link each GitHub release to a discussion in the Announcements category
so the announcement post happens automatically at release time. Guarded
off on forks, where the category may not exist and an unknown category
fails release creation.
@yonib05
yonib05 force-pushed the feature/announcements-discussion-bcd9b branch from 19c7aea to 1494780 Compare August 7, 2026 16:07
@github-actions

github-actions Bot commented Aug 7, 2026

Copy link
Copy Markdown
Contributor

Issue: The same three-line block (permission + env var + flag) is now copy-pasted identically across release-mcp.yml, release-python.yml, and release-typescript.yml. A future change such as renaming the category or adjusting the fork guard must be made in three places and can silently drift.

Suggestion: This is a pre-existing structural pattern (the release workflows are already largely duplicated), so not blocking here — but if these keep growing in lockstep, a reusable/composite workflow for the shared "tag + create release + announce" step would remove the drift risk.

Comment thread .github/workflows/release-python.yml Outdated
@github-actions

github-actions Bot commented Aug 7, 2026

Copy link
Copy Markdown
Contributor

Assessment: Comment

Clean, small, and unusually well-documented change that closes a real gap (announcements silently stopping after the manual step was dropped). The permission scoping, the ${VAR:+...} conditional-flag idiom (correctly quoted for spaces), and the fork guard are all sound, and all three release workflows that create GitHub releases are covered.

Review Categories
  • Correctness: Bash expansion, fork detection, and discussions: write scope are all correct. No functional issues found.
  • Resilience (main theme): The announcement now shares a failure fate with critical release creation — an unknown/renamed category hard-fails gh release create after the tag is already pushed. Worth considering whether this secondary concern should be non-fatal, consistent with the changelog-sync step. (see inline)
  • Maintainability: Identical block duplicated across three workflow files; drift risk, though pre-existing structure. (see inline)
  • Testing: End-to-end can't be exercised pre-merge by nature; acknowledged and reasonable.

Nice attention to detail on the comments explaining why at each step — it made this easy to review.

Creating the release with --discussion-category made the category's
existence a release-blocking invariant: an unknown category fails
gh release create after the tag is already pushed. Create the release
without the flag and link the discussion afterwards via a category
PATCH, downgrading failures to a warning like the changelog dispatch.
@yonib05
yonib05 enabled auto-merge (squash) August 11, 2026 14:19
@yonib05
yonib05 merged commit cf4a68a into strands-agents:main Aug 11, 2026
16 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area-community Related to community and contributor health chore Maintenance tasks, dependency updates, CI changes, refactoring with no user-facing impact size/s

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants