Skip to content

docs(changelog): add changelog page with release-stub automation - #66

Open
djsauble wants to merge 3 commits into
mainfrom
docs/changelog-migration
Open

docs(changelog): add changelog page with release-stub automation#66
djsauble wants to merge 3 commits into
mainfrom
docs/changelog-migration

Conversation

@djsauble

@djsauble djsauble commented Aug 7, 2026

Copy link
Copy Markdown
Contributor

Migrates flox.dev/changelog into the docs as a Changelog tab at /docs/changelog, built on Mintlify <Update> components — per-entry anchors, product-tag filters, and a subscribable RSS feed at /docs/changelog/rss.xml.

What's here

  • changelog.mdx — all 29 entries from floxwebsite's src/data/changelog.yaml backfilled (Mar 2024 → May 2026), merged by date with each feature as a ## heading (Mintlify emits one RSS item per heading, so the feed keeps the old per-feature granularity) — plus the May → August gap: flox v1.12.1–v1.14.0 and flox-skills v1.0.0, generated through the stub pipeline below and then written up from the actual release notes.
  • docs.json — a third nav tab, Changelog.
  • .github/workflows/changelog-stubs.yml — daily cron (08:00 UTC, after the 06:00/07:00 sibling jobs) that polls the latest GitHub release of flox/flox, floxhub, floxenvs, flox-plugins, flox-skills, and flox-vscode, and opens a FloxBot draft PR with a pre-filled <Update> stub for a human to turn into real copy. Repos without releases no-op; if one adopts releases later it lights up with no changes here.
  • scripts/changelog-stub.sh — the stub generator (runs locally too). Inserts in date order so out-of-order merges keep the timeline sorted, and flags same-date collisions for the editor.

How dedupe works (no state file)

Each published entry embeds {/* changelog-id: owner/repo@tag */}; the workflow greps the page for it. Stub PR lifecycle:

  • merge → marker lands on main, release never stubs again
  • close unmerged → declined; a PR-exists guard stops recreation
  • leave open → reruns skip it entirely (the branch is never force-reset, so hand-written copy on an open draft is safe)

The second commit exercised this end-to-end: polling found exactly seven missing releases across the six repos, the script inserted them in scrambled order and produced correct reverse-chronological output, and all seven markers now dedupe — so the workflow's first scheduled run after merge should be a clean no-op, and the next real release (flox is due ~Aug 11 on its biweekly cadence) opens the first live draft PR.

After merge

Separate floxwebsite PR: 301 /changelog/docs/changelog in public/netlify.toml, delete the old page + YAML, repoint nav links.

Open calls flagged for review: product-tag taxonomy (Kubernetes and MCP server cover two backfill entries that fit no source repo), and the page stays indexable (Mintlify noindexes theirs).

🤖 Generated with Claude Code

https://claude.ai/code/session_01WN847FP3AM81Qg6J11uxoh

Migrates the flox.dev/changelog timeline into the docs as a Changelog tab
built on Mintlify <Update> components (per-entry anchors, tag filters, and
an RSS feed at /docs/changelog/rss.xml).

All 29 entries from floxwebsite's changelog.yaml are backfilled, merged by
date, with each feature as a heading so the RSS feed keeps the old
per-feature granularity.

A daily scheduled workflow (changelog-stubs.yml) polls each source repo's
latest GitHub release and opens a draft PR pre-filling an <Update> stub
for a human to turn into real copy — same shape and FloxBot token as the
sibling update-flox-version.yml and sync-man-pages.yml workflows.
Embedded {/* changelog-id: owner/repo@tag */} markers make the page itself
the dedupe state.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WN847FP3AM81Qg6J11uxoh
@mintlify

mintlify Bot commented Aug 7, 2026

Copy link
Copy Markdown

Preview deployment for your docs. Learn more about Mintlify Previews.

Project Status Preview Updated (UTC)
flox 🟢 Ready View Preview Aug 7, 2026, 6:57 PM

💡 Tip: Enable Workflows to automatically generate PRs for you.

Exercises the new automation end-to-end: polled all six source repos for
releases published since the old changelog went stale, ran
scripts/changelog-stub.sh for each of the seven found (six flox/flox
releases v1.12.1-v1.14.0 plus flox-skills v1.0.0, inserted in scrambled
order to prove the date-ordered insertion), then replaced the generated
placeholders with copy written from the actual release notes.

All seven changelog-id markers are now present, so the scheduled
workflow's first run after merge will be a clean no-op.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WN847FP3AM81Qg6J11uxoh
…ative

Verified in-browser on the PR preview:

- The intro "RSS feed" link hardcoded the production URL, which 404s until
  this PR merges (and always would on previews). Root-relative
  /changelog/rss.xml resolves on every deployment.
- Mintlify's RSS generator renders MDX comments inside an <Update> body as
  literal text, so every feed item led with its {/* changelog-id */}
  marker. Markers now sit after each entry's closing tag — invisible on
  the page, absent from the feed, and the workflow's file-wide grep is
  unaffected. changelog-stub.sh emits the same placement.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WN847FP3AM81Qg6J11uxoh
@djsauble
djsauble marked this pull request as ready for review August 7, 2026 23:54
@djsauble djsauble self-assigned this Aug 8, 2026
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