-
-
Notifications
You must be signed in to change notification settings - Fork 250
doc: add changelog page #1256
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: next
Are you sure you want to change the base?
doc: add changelog page #1256
Conversation
|
@rajanarahul93 is attempting to deploy a commit to the 47ng Team on Vercel. A member of the Team first needs to authorize it. |
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
franky47
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks!
There are a few things to change, another thing that I couldn't comment on is that the PullRequestLine component currently doesn't render related issues the same way the changelog does, that could be a good improvement to add.
| title: 'Changelog' | ||
| } | ||
|
|
||
| export const revalidate = 3600 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
suggestion: Make the whole page static, and only invalidated (ISR) via tags when we publish a new release.
|
|
||
| type ReleaseNoteItem = { | ||
| text: string | ||
| prNumber?: number |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
suggestion: Each release note item should have a number link (either PR or issue, GitHub doesn't really make a difference), so this type could be made to be required (and the parsing code adapted accordingly).
| return [] | ||
| } | ||
|
|
||
| const data = (await response.json()) as GithubRelease[] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
suggestion: Use zod to parse the response and infer the type from its schema.
| // Headings like "### Features", "### Bug fixes", etc. | ||
| const headingMatch = /^#{2,3}\s+(.+)$/.exec(line) | ||
| if (headingMatch) { | ||
| currentCategory = classifyHeading(headingMatch[1]) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
note: This will classify unrelated headings as "other changes", like the Thanks section.
| return ( | ||
| <main className="mx-auto max-w-4xl px-4 py-10 space-y-10"> | ||
| <header className="space-y-2"> | ||
| <h1 className="text-3xl font-semibold tracking-tight">Changelog</h1> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
suggestion: Use the typography from Fumadocs (see the blog & registry pages for examples).
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
suggestion: This page should share the same layout as other pages, to include the top nav, otherwise once in the changelog there is no way back.
| className="space-y-1" | ||
| > | ||
| <p className="text-sm text-gray-800 dark:text-gray-100"> | ||
| {item.text} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.


Summary
This adds a new
/changelogpage to the documentation. It fetches published releases from GitHub, parses their release notes, and presents them in a readable, category-grouped format (Features, Bug fixes, Documentation, Other changes). The page reuses the existingPullRequestLinecomponent so each entry includes PR metadata, author attribution, and status indicators.This gives the project a clear, easy-to-scan changelog directly in the docs without relying on GitHub Releases.
Root cause
The documentation didn’t previously have a centralized changelog. Users had to browse GitHub Releases manually, which doesn’t offer the same readability, grouping, or attribution available in the docs experience.
Changes
packages/docs/src/app/changelog/page.tsx.PullRequestLine.export const revalidate = 3600so the changelog stays current.Screenshots
Click to view local rendering
Note: Vercel preview builds for PRs originating from forks do not receive
GITHUB_TOKEN.PR metadata (avatars, labels, and merge status) will not load in the preview.
The screenshot below shows the correct rendering when the token is available locally.
Testing
/changelog.PullRequestLine.Risk & Rollback
Risk: Low, the feature is isolated and does not affect existing pages.
Rollback: Simply removing
packages/docs/src/app/changelog/page.tsxfully reverts the change.Related
Closes #1251