Skip to content

Restore CHANGELOG.md stubs — fix release.yml ENOENT#496

Merged
RhysSullivan merged 1 commit intomainfrom
restore-changelog-stubs
May 4, 2026
Merged

Restore CHANGELOG.md stubs — fix release.yml ENOENT#496
RhysSullivan merged 1 commit intomainfrom
restore-changelog-stubs

Conversation

@RhysSullivan
Copy link
Copy Markdown
Owner

Summary

Reverts the CHANGELOG.md deletions from #491. Restores 31 one-line stubs.

Why

#491 deleted the empty workspace CHANGELOG.md files based on an empirical test that the changesets CLI didn't regenerate them. That test only exercised the CLI. The changesets/action@v1 GitHub Action wrapping the CLI in release.yml also reads each bumped package's CHANGELOG.md to build the Version Packages PR description, and crashes with ENOENT when any is missing.

After #491 + #495 merged, the release workflow on 4d0709b7 failed with:

Error: ENOENT: no such file or directory, open '/home/runner/work/executor/executor/apps/cli/CHANGELOG.md'
    at file:///home/runner/work/_actions/changesets/action/v1/dist/index.js:61:49311

This blocks the Version Packages PR from opening, which blocks the 1.4.14 release.

Changes

  • Restore all 31 CHANGELOG.md stubs from 1eb32c86^.
  • RELEASING.md + .skills/cli-release/SKILL.md — explain why the stubs exist (required by changesets/action@v1, not by the CLI), so this regression doesn't recur.

Test plan

  • bun run lint — clean
  • bun run lint:release-notes — clean
  • After merge: release.yml succeeds and opens the Version Packages PR for 1.4.14

#491 deleted 31 empty workspace CHANGELOG.md files based on an empirical
test that they weren't regenerated. That test only exercised the
changesets *CLI*. The `changesets/action@v1` GitHub Action wrapping the
CLI in `release.yml` ALSO reads each bumped package's CHANGELOG.md to
build the Version Packages PR description, and crashes with ENOENT when
any of them is missing.

Concretely, after #491 + #495 merged to main, release.yml failed:

  Error: ENOENT: no such file or directory, open
  '/home/runner/work/executor/executor/apps/cli/CHANGELOG.md'
      at file:///home/runner/work/_actions/changesets/action/v1/dist/index.js:61:49311

Restoring all 31 stubs unblocks the release workflow. The stubs are
required by tooling, not by humans — they hold one-line "this exists for
changesets compatibility" disclaimers and never get release content.

Updates RELEASING.md and .skills/cli-release/SKILL.md to explain why the
stubs exist so this regression doesn't recur.
@cloudflare-workers-and-pages
Copy link
Copy Markdown

cloudflare-workers-and-pages Bot commented May 4, 2026

Deploying with  Cloudflare Workers  Cloudflare Workers

The latest updates on your project. Learn more about integrating Git with Workers.

Status Name Latest Commit Updated (UTC)
✅ Deployment successful!
View logs
executor-cloud b384707 May 04 2026, 07:09 AM

@cloudflare-workers-and-pages
Copy link
Copy Markdown

cloudflare-workers-and-pages Bot commented May 4, 2026

Deploying with  Cloudflare Workers  Cloudflare Workers

The latest updates on your project. Learn more about integrating Git with Workers.

Status Name Latest Commit Preview URL Updated (UTC)
✅ Deployment successful!
View logs
executor-marketing b384707 Commit Preview URL

Branch Preview URL
May 04 2026, 07:08 AM

@RhysSullivan RhysSullivan merged commit 39938b5 into main May 4, 2026
5 of 7 checks passed
RhysSullivan added a commit that referenced this pull request May 4, 2026
…orward (#499)

release.yml failed again on the latest main with the same ENOENT — this
time on `packages/core/vite-plugin/CHANGELOG.md`. That package and
`packages/plugins/example` were added in #476 (Spec-driven plugin
loading) without stubs, after my restore PR (#496) only put back the
files #491 had deleted. Drift was inevitable as soon as the next package
landed.

This PR:
- Adds the two missing stubs.
- Adds `scripts/check-changelog-stubs.ts` and wires it into `bun run
  lint`. Fails CI when any workspace package directory lacks a
  CHANGELOG.md, with a clear message explaining why the stubs exist
  (changesets/action@v1 reads them) and pointing at the `--fix` flag.
- `--fix` mode auto-creates stubs with a templated body.

So the next time someone adds a package, lint flags it in PR rather
than release.yml crashing later.
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