feat(releases): add changelog and release feeds#337
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
| ` <title>${escapeXml(release.title)}</title>`, | ||
| ` <link>${escapeXml(link)}</link>`, | ||
| ` <guid isPermaLink="true">${escapeXml(link)}</guid>`, | ||
| ` <pubDate>${escapeXml(buildRssDate(release.date))}</pubDate>`, |
There was a problem hiding this comment.
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.
|
PR review fallback (formal REQUEST_CHANGES unavailable because GitHub rejects requesting changes on my own PR): Blocking finding:
Validation evidence:
|
Summary
CHANGELOG.mdinto the canonical Keep a Changelog source, addedcliff.toml, and updated release docs/workflow so GitHub Release notes come from the changelog./changelog,/releases,/rss.xml,/atom.xml, and/docs/changelogredirect, backed by a shared changelog/release parser with GitHub Releases fallback behavior.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.tsPASSpnpm -F @vllnt/ui-registry exec tsc --noEmitPASSpnpm -F @vllnt/ui lintPASSpnpm -F @vllnt/ui exec tsc --noEmit --project tsconfig.build.jsonPASSpnpm buildPASSpnpm test:oncePASS (216 files, 1215 tests)git diff --checkPASSNotes:
pnpm buildconfirmed/changelog,/releases,/rss.xml, and/atom.xmlin 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.