Skip to content

improve github release changelog#6897

Merged
birkskyum merged 3 commits intomainfrom
improve-github-release
Mar 11, 2026
Merged

improve github release changelog#6897
birkskyum merged 3 commits intomainfrom
improve-github-release

Conversation

@birkskyum
Copy link
Member

@birkskyum birkskyum commented Mar 11, 2026

  • list changesets in changelog
  • add github author on each changeset entry
  • list bumped packages, instead of all workspace packages

Summary by CodeRabbit

  • Improvements
    • Enhanced release notes to properly attribute changes to authors
    • Release notes now focus only on packages with actual changes
    • Improved changelog accuracy by scoping entries to current versions

@changeset-bot
Copy link

changeset-bot bot commented Mar 11, 2026

⚠️ No Changeset found

Latest commit: 8e4949a

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Mar 11, 2026

📝 Walkthrough

Walkthrough

Refactored release script to identify bumped packages by comparing current package.json versions against the previous release, replacing commit-diff logic. Added per-commit author resolution by mapping email addresses to GitHub usernames. Reworked changelog generation to extract entries from bumped packages' CHANGELOG.md files with author annotations.

Changes

Cohort / File(s) Summary
Release Script Refactoring
scripts/create-github-release.mjs
Replaced commit-diff approach with package-centric bump detection. Added per-commit author resolution via email-to-GitHub username mapping with caching. Reworked changelog generation to extract entries from bumped packages' CHANGELOG.md scoped under current version headers with author annotations appended. Updated release body enumeration and tag creation flow.

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~60 minutes

Poem

🐰 Bumps upon the package shelf,
Authors credited by themselves,
Changelogs now tell the tale,
Of every contributor who made it sail!
One file transformed with care so fine,

🚥 Pre-merge checks | ✅ 2 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 33.33% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (2 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title 'improve github release changelog' directly relates to the main changes: enhancing changelog generation with better organization, author annotations, and bumped package listing.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
  • 📝 Generate docstrings (stacked PR)
  • 📝 Generate docstrings (commit on current branch)
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch improve-github-release

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@birkskyum birkskyum changed the title improve github release changelog and only list bumped packages improve github release changelog Mar 11, 2026
@nx-cloud
Copy link

nx-cloud bot commented Mar 11, 2026

View your CI Pipeline Execution ↗ for commit 8e4949a

Command Status Duration Result
nx run-many --target=build --exclude=examples/*... ✅ Succeeded 34s View ↗
nx affected --targets=test:eslint,test:unit,tes... ✅ Succeeded <1s View ↗

☁️ Nx Cloud last updated this comment at 2026-03-11 19:56:47 UTC

@pkg-pr-new
Copy link

pkg-pr-new bot commented Mar 11, 2026

More templates

@tanstack/arktype-adapter

npm i https://pkg.pr.new/@tanstack/arktype-adapter@6897

@tanstack/eslint-plugin-router

npm i https://pkg.pr.new/@tanstack/eslint-plugin-router@6897

@tanstack/history

npm i https://pkg.pr.new/@tanstack/history@6897

@tanstack/nitro-v2-vite-plugin

npm i https://pkg.pr.new/@tanstack/nitro-v2-vite-plugin@6897

@tanstack/react-router

npm i https://pkg.pr.new/@tanstack/react-router@6897

@tanstack/react-router-devtools

npm i https://pkg.pr.new/@tanstack/react-router-devtools@6897

@tanstack/react-router-ssr-query

npm i https://pkg.pr.new/@tanstack/react-router-ssr-query@6897

@tanstack/react-start

npm i https://pkg.pr.new/@tanstack/react-start@6897

@tanstack/react-start-client

npm i https://pkg.pr.new/@tanstack/react-start-client@6897

@tanstack/react-start-server

npm i https://pkg.pr.new/@tanstack/react-start-server@6897

@tanstack/router-cli

npm i https://pkg.pr.new/@tanstack/router-cli@6897

@tanstack/router-core

npm i https://pkg.pr.new/@tanstack/router-core@6897

@tanstack/router-devtools

npm i https://pkg.pr.new/@tanstack/router-devtools@6897

@tanstack/router-devtools-core

npm i https://pkg.pr.new/@tanstack/router-devtools-core@6897

@tanstack/router-generator

npm i https://pkg.pr.new/@tanstack/router-generator@6897

@tanstack/router-plugin

npm i https://pkg.pr.new/@tanstack/router-plugin@6897

@tanstack/router-ssr-query-core

npm i https://pkg.pr.new/@tanstack/router-ssr-query-core@6897

@tanstack/router-utils

npm i https://pkg.pr.new/@tanstack/router-utils@6897

@tanstack/router-vite-plugin

npm i https://pkg.pr.new/@tanstack/router-vite-plugin@6897

@tanstack/solid-router

npm i https://pkg.pr.new/@tanstack/solid-router@6897

@tanstack/solid-router-devtools

npm i https://pkg.pr.new/@tanstack/solid-router-devtools@6897

@tanstack/solid-router-ssr-query

npm i https://pkg.pr.new/@tanstack/solid-router-ssr-query@6897

@tanstack/solid-start

npm i https://pkg.pr.new/@tanstack/solid-start@6897

@tanstack/solid-start-client

npm i https://pkg.pr.new/@tanstack/solid-start-client@6897

@tanstack/solid-start-server

npm i https://pkg.pr.new/@tanstack/solid-start-server@6897

@tanstack/start-client-core

npm i https://pkg.pr.new/@tanstack/start-client-core@6897

@tanstack/start-fn-stubs

npm i https://pkg.pr.new/@tanstack/start-fn-stubs@6897

@tanstack/start-plugin-core

npm i https://pkg.pr.new/@tanstack/start-plugin-core@6897

@tanstack/start-server-core

npm i https://pkg.pr.new/@tanstack/start-server-core@6897

@tanstack/start-static-server-functions

npm i https://pkg.pr.new/@tanstack/start-static-server-functions@6897

@tanstack/start-storage-context

npm i https://pkg.pr.new/@tanstack/start-storage-context@6897

@tanstack/valibot-adapter

npm i https://pkg.pr.new/@tanstack/valibot-adapter@6897

@tanstack/virtual-file-routes

npm i https://pkg.pr.new/@tanstack/virtual-file-routes@6897

@tanstack/vue-router

npm i https://pkg.pr.new/@tanstack/vue-router@6897

@tanstack/vue-router-devtools

npm i https://pkg.pr.new/@tanstack/vue-router-devtools@6897

@tanstack/vue-router-ssr-query

npm i https://pkg.pr.new/@tanstack/vue-router-ssr-query@6897

@tanstack/vue-start

npm i https://pkg.pr.new/@tanstack/vue-start@6897

@tanstack/vue-start-client

npm i https://pkg.pr.new/@tanstack/vue-start-client@6897

@tanstack/vue-start-server

npm i https://pkg.pr.new/@tanstack/vue-start-server@6897

@tanstack/zod-adapter

npm i https://pkg.pr.new/@tanstack/zod-adapter@6897

commit: 21fee2b

@github-actions
Copy link
Contributor

Bundle Size Benchmarks

  • Commit: 3a2d74227f87
  • Measured at: 2026-03-11T19:55:29.279Z
  • Baseline source: history:9a4d924d2b60
  • Dashboard: bundle-size history
Scenario Current (gzip) Delta vs baseline Raw Brotli Trend
react-router.minimal 87.09 KiB 0 B (0.00%) 274.11 KiB 75.68 KiB ▁▆▆▇▇██████
react-router.full 90.08 KiB 0 B (0.00%) 284.36 KiB 78.32 KiB ▁▅▅▆▆██████
solid-router.minimal 36.42 KiB 0 B (0.00%) 109.29 KiB 32.74 KiB ▁▅▆▇▇██████
solid-router.full 40.75 KiB 0 B (0.00%) 122.27 KiB 36.58 KiB ▁▄▅▇▇██████
vue-router.minimal 52.29 KiB 0 B (0.00%) 149.34 KiB 47.01 KiB ▁▅▅▇▇██████
vue-router.full 57.08 KiB 0 B (0.00%) 164.85 KiB 51.27 KiB ▁▅▅▇▇██████
react-start.minimal 99.66 KiB 0 B (0.00%) 313.26 KiB 86.22 KiB ▁▅▅▇▇██████
react-start.full 102.97 KiB 0 B (0.00%) 322.99 KiB 89.07 KiB ▁▅▅▆▆██████
solid-start.minimal 48.75 KiB 0 B (0.00%) 146.89 KiB 43.14 KiB ▁▅▅▇▇██████
solid-start.full 54.21 KiB 0 B (0.00%) 162.75 KiB 47.88 KiB ▁▅▅▇▇██████

Trend sparkline is historical gzip bytes ending with this PR measurement; lower is better.

@codspeed-hq
Copy link

codspeed-hq bot commented Mar 11, 2026

Merging this PR will not alter performance

✅ 6 untouched benchmarks


Comparing improve-github-release (8e4949a) with main (9a4d924)1

Open in CodSpeed

Footnotes

  1. No successful run was found on main (3a2d742) during the generation of this report, so 9a4d924 was used instead as the comparison base. There might be some changes unrelated to this pull request in this report.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@scripts/create-github-release.mjs`:
- Around line 57-60: The regex currently captures only the 7-char displayed SHA
from the link text (commitMatch) which can be ambiguous; update the parsing so
you extract the full 40-character SHA from the link target/URL in the same line
before calling resolveAuthorForCommit. Locate the block that defines commitMatch
and the call to resolveAuthorForCommit, change the regex to capture the link
target (or separately parse the URL portion) and pull the 40-char hex SHA
(a-f0-9{40}) from that URL, then pass that full SHA into resolveAuthorForCommit
instead of the short hash.

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 17c70583-4252-4d76-83ec-c65604a3cdb7

📥 Commits

Reviewing files that changed from the base of the PR and between 3a2d742 and 8e4949a.

📒 Files selected for processing (1)
  • scripts/create-github-release.mjs

Comment on lines +57 to +60
// Match commit hash links like [`9a4d924`](url)
const commitMatch = line.match(/\[`([a-f0-9]{7,})`\]/)
if (commitMatch && line.startsWith('- ')) {
const author = await resolveAuthorForCommit(commitMatch[1])
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
python <<'PY'
import pathlib
import re
import subprocess
import sys

all_shas = subprocess.check_output(["git", "rev-list", "--all"], text=True).splitlines()

shorts = sorted(set(
    m.group(1)
    for p in pathlib.Path("packages").glob("*/CHANGELOG.md")
    for m in re.finditer(r'\[`([a-f0-9]{7,})`\]\(', p.read_text())
))

ambiguous = []
for short in shorts:
    count = sum(sha.startswith(short) for sha in all_shas)
    if count != 1:
        ambiguous.append((short, count))

if ambiguous:
    print("Ambiguous short SHAs referenced from changelogs:")
    for short, count in ambiguous:
        print(f"{short}: {count} matching commits")
    sys.exit(1)

print("All current changelog short SHAs resolve uniquely; parsing the full SHA is still safer.")
PY

Repository: TanStack/router

Length of output: 146


Parse the full commit SHA from the link target instead of the abbreviated hash.

The current regex extracts only the 7-character display hash. While all short SHAs in the current changelogs resolve uniquely, parsing the full 40-character SHA from the link URL is safer and avoids potential ambiguities if the repository grows.

Suggested change
-    const commitMatch = line.match(/\[`([a-f0-9]{7,})`\]/)
+    const commitMatch = line.match(
+      /\[`[a-f0-9]{7,}`\]\([^)]*\/commit\/([a-f0-9]{40})\)/
+    )
     if (commitMatch && line.startsWith('- ')) {
       const author = await resolveAuthorForCommit(commitMatch[1])
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@scripts/create-github-release.mjs` around lines 57 - 60, The regex currently
captures only the 7-char displayed SHA from the link text (commitMatch) which
can be ambiguous; update the parsing so you extract the full 40-character SHA
from the link target/URL in the same line before calling resolveAuthorForCommit.
Locate the block that defines commitMatch and the call to
resolveAuthorForCommit, change the regex to capture the link target (or
separately parse the URL portion) and pull the 40-char hex SHA (a-f0-9{40}) from
that URL, then pass that full SHA into resolveAuthorForCommit instead of the
short hash.

@birkskyum birkskyum merged commit bb291c6 into main Mar 11, 2026
15 checks passed
@birkskyum birkskyum deleted the improve-github-release branch March 11, 2026 20:55
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