Skip to content

finding(release): no GitHub release or git tag has been created since 17.5.0 — Changesets CLI v3 stopped printing the New tag: lines changesets/action@v1 parses, so 17.6.0 and 17.7.0 reached npm with no tag and no release #11596

Description

@hotlong

What is missing

The GitHub Releases page for this repository stops at the 17.5.0 set, created on 2026-08-14. Both later versions are on npm:

version npm git tag @object-ui/core@… GitHub releases
17.5.0 2026-08-14 ✅ ✅ one per package
17.6.0 2026-08-24 ❌ ❌
17.7.0 2026-10-04 03:55Z ❌ ❌

The 17.7.0 publish run (37175007951) reports success in every step, including "Verify the release reached npm". All 39 published packages serve 17.7.0.

Why

  • changeset-release.yml publishes through changesets/action@v1 (publish: pnpm changeset:publish). v1 learns what was published by parsing the publish script's stdout for New tag: <pkg>@<version> lines. Only for the packages it finds does it push the tag (git.pushTag) and create the GitHub release.
  • objectui#5296 moved the repository to @changesets/cli v3 between the two releases. At the 17.5.0 tag, package.json declares ^2.31.1. At the 17.6.0 release commit 59f61cfb it declares ^3.0.0, and the lockfile resolves 3.0.1.
  • CLI v3's changeset publish prints through @clack/prompts and reports published packages through an output report (CHANGESETS_OUTPUT). Its dist contains no New tag string: 0 occurrences in @changesets/cli@3.0.1/dist.
  • v1 therefore sees zero published packages, pushes no tag and creates no release. Nothing fails: the npm verification step checks npm only. The workflow's own header notes this risk for v2 (feat: persist ViewConfigPanel draft to backend via DataSource.updateViewConfig #678: tags and releases "fail QUIETLY"). The CLI v3 bump triggered it under v1.

How objectstack does it (port this)

../objectstack uses the same CLI v3 and still gets releases (17.6.0 has them):

  • scripts/release-publish.sh runs changeset publish (which creates the tags locally), then ONE atomic git push origin --tags. objectstack#2191 explains why this is atomic: per-tag pushes raced GitHub's ref backend.
  • .github/workflows/release.yml step "Create GitHub Releases (bodies truncated to the API limit)" runs node scripts/release-github-releases.mjs with RELEASE_VERSION. The script creates one release per public package from its CHANGELOG entry. It is idempotent, and it truncates bodies to the API limit with a self-test battery.

Fix

  1. In the publish lane, after changesets/action@v1 publishes, push the tags changeset publish created on the runner and create one GitHub release per published package for the version the lane published (needs.lane.outputs.manifest_version). Port release-github-releases.mjs and its self-tests, adapted to this workspace's package enumeration, rather than re-deriving it. The step must run only on the publish lane (push with the version not on npm before), never on schedule / workflow_dispatch.
  2. Keep changesets/action@v1. The pin's reasoning in the workflow header is unchanged. Do not set createGithubReleases: false unless the new step fully replaces it.
  3. Backfill, after the fix lands: put each tag on the commit its version was published from, which is not always the version commit, and create releases for both versions with the ported script.
    • 17.6.0: published by run 32739909630 from b65fe911de. Its "Publish to npm" step ran 14:41:58–14:45:08Z on 2026-08-24. The version commit 59f61cfb (chore: release packages #4655) merged on 08-20, but objectui#5442's npm-keyed retry published 17.6.0 four days later from that later head.
    • 17.7.0: published by run 37175007951 from b493919c, the chore: release packages #5400 merge.

Generated by Claude Code

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    area:devpathThe road — create, dev, verify, publish/install, connect an agent, iteratebugSomething isn't workingdomain:devxobjectui devx stream: fix lands on .github/, scripts/ or release pipeline — devx lane cross-repopm:queuepriority:p1

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions