feat(publish): send this version's changelog to the Comfy Registry — every release has shipped blank - #810
Open
artokun wants to merge 1 commit into
Open
feat(publish): send this version's changelog to the Comfy Registry — every release has shipped blank#810artokun wants to merge 1 commit into
artokun wants to merge 1 commit into
Conversation
…every release has shipped blank artokun: "i noticed that we NEVER send any changelogs along with our registry updates like other apps do, they are always blank." Confirmed against comfy-cli's own source (comfy_cli/registry/api.py, comfy_cli/command/custom_nodes/command.py): `comfy node publish` has always accepted `--changelog` / `--changelog-file`, and the Registry shows it in the pack's Updates section — that surface already exists, we simply never fed it. The cause: our publish step used `Comfy-Org/publish-node-action@main`, a thin composite wrapper that runs `comfy node publish --token ...` with nothing else. Its action.yml exposes only `personal_access_token`/`skip_checkout` — no changelog input, ever. Every publish through it was structurally incapable of sending one. Fixed by inlining the three steps the wrapper performed (install comfy-cli, `comfy env`, `comfy node publish`) and adding a changelog extraction step ahead of it, rather than gambling on undocumented env-var propagation into a third-party composite action's internals — checked GitHub's own docs first and could not get a clean confirmation either way. New `scripts/changelog-section.mjs` prints exactly one version's CHANGELOG.md section (ported from comfyui-mcp's script of the same name, written for the same defect on that repo's GitHub Release bodies — mcp#1138 is this fix's twin). `.comfyignore` already excludes `scripts/`, so this never reaches the published pack — it only runs during CI/publish. Fails open: a missing or empty CHANGELOG section logs a `::warning::` and publishes with no changelog rather than failing the release over missing notes — a release with no changelog is recoverable; one that never ships because notes were absent is not. Verified locally against the real pyproject.toml + CHANGELOG.md: extracts 0.11.45's section (2314 chars, headers and bullets intact). Control-byte scan clean on both changed files. YAML re-parses. `scripts/changelog-section.mjs` parses as ESM. Related: #758 (in-panel "what's new" — a bigger, separate UI surface; this is upstream of it, not the same task — it makes the Registry's own changelog field non-empty, which any future in-panel or Manager-side surface can then read). Not merged; the next merge to main that also touches pyproject.toml fires the publish workflow that exercises this. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
There was a problem hiding this comment.
Pull request overview
Publishes each release’s matching CHANGELOG.md section to the Comfy Registry.
Changes:
- Adds version-specific changelog extraction.
- Inlines the Registry publish command with
--changelog-file. - Falls back to publishing without notes when extraction fails.
Reviewed changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated 1 comment.
| File | Description |
|---|---|
scripts/changelog-section.mjs |
Extracts one version’s changelog body. |
.github/workflows/publish_action.yml |
Supplies extracted notes during Registry publishing. |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
Comment on lines
+3
to
+5
| * Print ONE version's section from CHANGELOG.md — used as the Comfy Registry | ||
| * `changelog` field on publish (the Registry's "Updates" section for this pack) | ||
| * and as a GitHub Release body. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Why
Checked comfy-cli's own source rather than guessing:
comfy node publishhas always accepted--changelog/--changelog-file, and the Registry shows it in the pack's Updates section — that surface already exists, it's just been empty.Root cause
Our publish step used
Comfy-Org/publish-node-action@main— a thin composite wrapper that runscomfy node publish --token ...and nothing else. Itsaction.ymlexposes onlypersonal_access_token/skip_checkout. No changelog input, ever. Every publish through it was structurally incapable of sending one.Fix
Inlined the three steps the wrapper performed (install
comfy-cli,comfy env,comfy node publish), and added an extraction step ahead of it that pulls this version's section out ofCHANGELOG.md.I deliberately did not try to pass the changelog through the wrapper action via an env var set on the calling step — I checked GitHub's own composite-action docs first and couldn't get a clean confirmation that a calling step's
env:propagates into a third-party composite action's internal steps. Rather than ship something resting on unverified behavior, I dropped the wrapper.New
scripts/changelog-section.mjs— ported fromcomfyui-mcp's script of the same name, written for the identical defect on that repo's GitHub Release bodies (artokun/comfyui-mcp#1138is this fix's twin: a version's notes should describe that version, not the whole file or a synthesised diff).Fails open. A missing or empty CHANGELOG section logs
::warning::and publishes with no changelog rather than failing the release over absent notes. A release with no changelog is recoverable; one that never ships because notes were missing is not.Verified
pyproject.toml+CHANGELOG.md: 0.11.45 → 2,314 chars, headers and bullets intact..comfyignorealready excludesscripts/, so the new script never reaches the published pack — it only runs during CI/publish.scripts/changelog-section.mjsparses as ESM.Related, not the same task
#758— an in-panel "what's new" surface — is bigger and separate UI work. This is upstream of it: it makes the Registry's own changelog field non-empty, which any future in-panel or Manager-side reader can then consume.Not merged. The next merge to
mainthat also touchespyproject.tomlfires the publish workflow and exercises this for real.