Skip to content

fix(changelog): regenerate cli 0.8.x entries from git history (proper PR + SHA links)#76

Merged
vivek7405 merged 1 commit into
mainfrom
fix/regen-cli-changelogs-0.8.x
May 22, 2026
Merged

fix(changelog): regenerate cli 0.8.x entries from git history (proper PR + SHA links)#76
vivek7405 merged 1 commit into
mainfrom
fix/regen-cli-changelogs-0.8.x

Conversation

@vivek7405
Copy link
Copy Markdown
Collaborator

Summary

Answering "why no PR / SHA links on the new cli entries?": I wrote those four files by hand instead of letting scripts/backfill-changelog.js do it. The pre-commit hook would have auto-generated them if I'd staged the version bump alone, but I pre-created the files in the same commits, so the hook saw them already exist and skipped regeneration. Fix: delete the hand-rolled ones, run the backfill script fresh.

Script result

ONE new file regenerated: changelog/cli/0.8.5.md, with proper ([#72](...)) and [](...) markup, body extracted from the PR's squash-merge commit message.

The intermediate 0.8.2, 0.8.3, 0.8.4 versions were ephemeral states during PR #72 development (we manually npm published each one as we iterated). The squash-merge of #72 onto main collapsed all of them into a single 0.8.1 → 0.8.5 step. From main's git history, those middle versions never existed as separate bumps, so the backfill cannot recreate per-version entries.

Visible effect

Small version gap on the website's /changelog page: 0.8.5 sits directly above 0.8.1. The intermediate versions are still installable from npm (npm i @webjsdev/cli@0.8.3 works), but they have no rendered release notes. Their changes are covered cumulatively in 0.8.5's entry.

Going forward, the standard one-bump-per-PR flow produces 1-to-1 mapping between published versions and changelog entries.

Workflow safety

The release.yml workflow's "Find new changelog files" step uses git diff --diff-filter=A, which matches ADDED files only. This PR deletes 3 files (D) and modifies 1 (M); neither matches the filter. So the workflow trigger fires (paths matched) but the publish + lockstep steps see zero new files and no-op cleanly. No risk of spurious re-publishes.

Test plan

  • npm test passes (1151/1151)
  • After merge, /changelog renders cli entries as 0.8.5 → 0.8.1 → 0.8.0 → ...

…kfill script

Following the question "why are the new cli entries missing SHA / PR
links?" the honest answer was: I wrote them by hand instead of letting
`scripts/backfill-changelog.js` do it. The hook auto-runs that script
whenever a version bump is staged, but I pre-created the files in the
same commits that bumped the version, so the hook saw the files
already exist and skipped regeneration.

Recovery: delete the four hand-rolled files (0.8.2 .. 0.8.5) and run
the backfill script fresh.

Script result: ONE new file regenerated: 0.8.5.md, with proper
([#72](pr-link)) and [`<sha>`](commit-link) markup, body extracted
from the PR's squash-merge commit message. The intermediate 0.8.2,
0.8.3, 0.8.4 versions were ephemeral states during PR #72 development
(we manually `npm publish`ed each one as we iterated), but the squash-
merge of #72 onto main collapsed all intermediate bumps into a single
0.8.1 -> 0.8.5 step. From git's perspective on main, those middle
versions never existed as separate bumps, so the backfill cannot
recreate per-version entries for them.

Result is a small "version gap" on the /changelog page: 0.8.5 sits
directly above 0.8.1. The intermediate versions are still on npm
(install of @webjsdev/cli@0.8.3 still works) but have no rendered
release notes; their changes are covered cumulatively in 0.8.5's
entry.

Going forward, the standard one-bump-per-PR flow produces 1-to-1
mapping between published versions and changelog entries.
@vivek7405 vivek7405 merged commit 5ad7280 into main May 22, 2026
@vivek7405 vivek7405 deleted the fix/regen-cli-changelogs-0.8.x branch May 22, 2026 15:33
vivek7405 added a commit that referenced this pull request May 22, 2026
…79)

The auto-generated entry from PR #76 was technically correct per the
script's rules but content-wrong for users. Three issues:

1. Title referenced intermediate names that didn't ship.
   "create-webjs-app" was renamed to "create-webjs" later in PR #72,
   and "wjs alias" was dropped (npm's name-similarity filter blocked
   the unscoped `wjs` package; we settled on `webjsdev` instead).

2. Body misrepresented what cli@0.8.5 specifically contains. The
   bullet's body was the first 4 lines of PR #72's squash commit body,
   which happens to describe the cli@0.8.2 auto-install work. 0.8.5
   specifically is the `npx webjsdev` banner fix; the rest of 0.8.2-
   0.8.4 work (bin map narrowing, output reorder) was invisible.

3. Single bullet under "Features" miscategorised a mix of feat +
   fix + breaking work.

Rewrite as a multi-section entry covering everything the cli has
gained since 0.8.1:

  Features:
    - auto-install dependencies after `webjs create`
    - next-steps banner reordered (run command lands last)
  Fixes:
    - banner uses `npx webjsdev ui` instead of broken `npx webjs ui`
  Breaking:
    - 0.8.2's `wjs` bin alias reverted in 0.8.3 (migration note)
  See also:
    - The new `create-webjs` and `webjsdev` companion packages

Underlying cause this got auto-generated wrong: PR #72 bundled four
cli version bumps (0.8.2, 0.8.3, 0.8.4, 0.8.5) into one squash-merge
commit on main. The backfill script walks main's history and sees
one squash commit for the 0.8.1 -> 0.8.5 range, so it produces one
bullet from the squash subject + first 4 lines of body. Future
releases under the "one-bump-per-PR" cadence will auto-generate
accurate entries without this hand-edit.

Companion to PR #72 title update on GitHub: the PR's title now reads
"feat: npx-first scaffold UX (create-webjs + webjsdev + auto-install)"
to match the actual deliverables (`create-webjs` not `create-webjs-app`,
`webjsdev` not `wjs`). That edit lives on the PR page only; the
squash commit's subject in main's git history is unchanged because
editing it would require a force-push to main.
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