Skip to content

Add release-notes automation, adapted from tomcardoso/watchdog - #14

Merged
tomcardoso merged 1 commit into
mainfrom
ci/release-notes
Jul 27, 2026
Merged

Add release-notes automation, adapted from tomcardoso/watchdog#14
tomcardoso merged 1 commit into
mainfrom
ci/release-notes

Conversation

@tomcardoso

Copy link
Copy Markdown
Contributor

Summary

Same as the version just added to startr (globeandmail/startr#12), adapted for a CRAN R package instead of a git-cloned template. On a v* tag push: prefers a curated ## What's new section from the version-bump PR's body (expected branch name: chore/v{VERSION}), falling back to GitHub's auto-generated PR changelog, and splices the result into .github/release-template.md before creating/updating the GitHub release.

  • Doesn't touch R-CMD-check.yaml or add any test/build/publish jobs - CRAN publication stays a manual devtools::submit_cran() step done by the maintainer; this only handles the GitHub release side.
  • release-template.md's install instructions point at install.packages() from CRAN rather than npx/pipx.
  • The env: TAG fix (passing github.ref_name through env: rather than interpolating it directly into run: shell text, to avoid a tag-name injection surface) is included from the start here, rather than being a follow-up fix like it was for startr.

Test plan

  • Validated the YAML parses correctly
  • Ran extract-whats-new.py and splice-release-notes.py end-to-end locally against a simulated PR body and generated changelog - curated bullets take precedence, raw PR list collapses into a <details> block
  • Not yet tested against a real tag push (first real run will be the actual next release)

🤖 Generated with Claude Code

Same as the version just added to startr, adapted for a CRAN R
package instead of a git-cloned template: on a v* tag push, prefers
a curated "## What's new" section from the version-bump PR's body
(expected branch name: chore/v{VERSION}), falling back to GitHub's
auto-generated PR changelog, and splices the result into
.github/release-template.md before creating/updating the release.

Doesn't touch R-CMD-check.yaml or add any test/build/publish jobs -
CRAN publication stays a manual devtools::submit_cran() step done by
the maintainer, this only handles the GitHub release side.
release-template.md's install instructions point at install.packages()
from CRAN rather than npx/pipx. The env: TAG fix from startr's version
(passing github.ref_name through env: rather than interpolating it
directly into run: shell text) is included from the start here.

Verified the extract + splice scripts end-to-end locally against a
simulated PR body and generated changelog.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@tomcardoso
tomcardoso merged commit 27ea836 into main Jul 27, 2026
7 checks passed
@tomcardoso
tomcardoso deleted the ci/release-notes branch July 27, 2026 19:05
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.

1 participant