Skip to content

feat(releases): add changelog and release feeds#337

Open
bntvllnt wants to merge 1 commit into
mainfrom
feat/issue-260-changelog
Open

feat(releases): add changelog and release feeds#337
bntvllnt wants to merge 1 commit into
mainfrom
feat/issue-260-changelog

Conversation

@bntvllnt
Copy link
Copy Markdown
Collaborator

Summary

  • Promoted root CHANGELOG.md into the canonical Keep a Changelog source, added cliff.toml, and updated release docs/workflow so GitHub Release notes come from the changelog.
  • Added /changelog, /releases, /rss.xml, /atom.xml, and /docs/changelog redirect, backed by a shared changelog/release parser with GitHub Releases fallback behavior.
  • Added release discoverability across root feed alternates, sitemap, llms routes, header What's new menu, footer links, landing release strip, and package changelog notes.

Closes #260

Validation

  • pnpm -F @vllnt/ui-registry exec eslint app/changelog/page.tsx app/releases/page.tsx app/docs/changelog/page.tsx app/rss.xml/route.ts app/atom.xml/route.ts app/layout.tsx app/llms.txt/route.ts app/llms-full.txt/route.ts app/sitemap.ts components/header/header.tsx components/footer/footer.tsx components/landing/landing.tsx lib/changelog.ts PASS
  • pnpm -F @vllnt/ui-registry exec tsc --noEmit PASS
  • pnpm -F @vllnt/ui lint PASS
  • pnpm -F @vllnt/ui exec tsc --noEmit --project tsconfig.build.json PASS
  • pnpm build PASS
  • pnpm test:once PASS (216 files, 1215 tests)
  • git diff --check PASS

Notes: pnpm build confirmed /changelog, /releases, /rss.xml, and /atom.xml in the Next route output. The build emits the existing worktree multiple-lockfile warning. Vitest emits existing dialog-description, duplicate-key, and jsdom navigation warnings while passing.

Design Deviations

None.

@bntvllnt bntvllnt added documentation Improvements or additions to documentation enhancement New feature or request discoverability Site/library discoverability labels May 12, 2026
@bntvllnt bntvllnt self-assigned this May 12, 2026
@vercel
Copy link
Copy Markdown

vercel Bot commented May 12, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
storybook Ready Ready Preview, Comment May 12, 2026 6:30pm
ui.vllnt.ai Ready Ready Preview, Comment May 12, 2026 6:30pm

Request Review

` <title>${escapeXml(release.title)}</title>`,
` <link>${escapeXml(link)}</link>`,
` <guid isPermaLink="true">${escapeXml(link)}</guid>`,
` <pubDate>${escapeXml(buildRssDate(release.date))}</pubDate>`,
Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

Blocking feed correctness issue: this emits Date.now() for any release without a date via buildRssDate(release.date). The root changelog currently includes [Unreleased], which entryToReleaseRecord turns into the 0.3.0 preview release with no date; the generated RSS from this PR shows that preview entry with the current request time as pubDate (and atom.xml has the same behavior for <updated>). That makes the feeds non-deterministic and tells feed readers an unpublished preview release is newly published on every rebuild/revalidation. Please either exclude undated/unreleased records from RSS/Atom, or give them a stable explicit timestamp before emitting feed items.

@bntvllnt
Copy link
Copy Markdown
Collaborator Author

PR review fallback (formal REQUEST_CHANGES unavailable because GitHub rejects requesting changes on my own PR):

Reviewed PR #337 at 3d18139.

Blocking finding:

  • apps/registry/app/rss.xml/route.ts:39 — RSS/Atom feed items use current request time for undated release records. The current root CHANGELOG.md has [Unreleased], which becomes the 0.3.0 preview release with no date; generated RSS shows that preview item with a current pubDate, and Atom shows the same via updated. This makes the release feeds non-deterministic and advertises unpublished preview notes as newly published on every rebuild/revalidation. I left a line comment: feat(releases): add changelog and release feeds #337 (comment)

Validation evidence:

  • git diff --check origin/main...HEAD: PASS
  • pnpm -F @vllnt/ui-registry exec tsc --noEmit: PASS
  • changelog/release helper smoke: 13 entries, 14 releases, first v0.3.0 with firstDate null
  • RSS/Atom route smoke: HTTP 200, expected content-types, XML parses
  • Evidence files: /tmp/pr337-review/final-validation.txt, /tmp/pr337-review/rss.xml, /tmp/pr337-review/atom.xml

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

discoverability Site/library discoverability documentation Improvements or additions to documentation enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

feat: CHANGELOG.md + /changelog page + /rss.xml feed

1 participant