mirror of
https://github.com/Comfy-Org/comfy-typescript-sdk.git
synced 2026-11-04 23:47:27 +00:00
[PR #212] ci(publish): refuse a release whose version has no CHANGELOG section #212
Labels
No labels
audit:ai-readiness
audit:community
audit:github
audit:health-scoring
audit:policy
audit:release
audit:supply-chain
bug
cursor-review-pin
effort:medium
effort:small
effort:trivial
priority:nice-to-have
priority:recommended
pull-request
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
Comfy-Org/comfy-typescript-sdk#212
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
📋 Pull Request Information
Original PR: https://github.com/Comfy-Org/comfy-typescript-sdk/pull/212
Author: @mattmillerai
Created: 10/10/2026
Status: 🔄 Open
Base:
main← Head:matt/publish-requires-changelog-section📝 Commits (2)
e748dddci(publish): refuse a release whose version has no CHANGELOG sectiondd0d45eci(publish): validate before the changelog gate, anchor it, tag prereleases next📊 Changes
2 files changed (+42 additions, -2 deletions)
View changed files
📝
.github/workflows/publish.yml(+38 -1)📝
AGENTS.md(+4 -1)📄 Description
Summary
Releases are tag-driven, and until now nothing tied the release tag to
CHANGELOG.md. v0.4.0 shipped straight off## [Unreleased], so the changelog never got a 0.4.0 section; it is being reconstructed separately.publish.yml: new stepRequire a CHANGELOG section for the release version. It runs onreleaseevents only, right afterSet version from release taghas validated the tag as SemVer, and it reads that step's output instead of re-deriving the version. It fails with an actionable error, including how to recover once the Release is already published, unlessCHANGELOG.mdat the tagged commit has a## [X.Y.Z]heading line. The match is anchored to a level-2 heading, so a### [X.Y.Z]heading or a passing mention does not count. Prerelease versions (-rc.1and the like) are exempt, and+buildmetadata is ignored when matching.publish.yml, publish job: a prerelease is now published under thenextdist-tag (latestotherwise), so a release candidate the gate waves through never becomes what a plainnpm installresolves to.version" note now says what a release does need: cut the changelog in a PR before tagging.The
workflow_dispatchdry run is unaffected.ELI5
You can no longer publish version 0.5.0 unless the changelog has a 0.5.0 section. It stops us from shipping a release nobody wrote down.
Provenance
Asked to make the TypeScript release depend on the changelog, after finding that 0.4.0 had no changelog section.
Verified:
CHANGELOG.md.0.3.0,0.2.0and0.3.0+build.1pass.0.4.0fails with the actionable error.1.0.0-rc.1is skipped.### [9.9.9]and a prose mention of## [9.9.9]fails the gate.pnpm format:checkandpnpm lintpass.Deviations:
🤖 Generated with Claude Code
🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.