Skip to content

ci: publish version from package.json (drop dirty-tree auto-bump)#135

Merged
JohnMcLear merged 1 commit into
mainfrom
fix/publish-workflow
May 16, 2026
Merged

ci: publish version from package.json (drop dirty-tree auto-bump)#135
JohnMcLear merged 1 commit into
mainfrom
fix/publish-workflow

Conversation

@JohnMcLear
Copy link
Copy Markdown
Member

Summary

Replace the broken `pnpm version patch` auto-bump in `npmpublish.yml` with a simpler tag-and-publish-from-package.json flow.

Why

The previous Bump-version step ran `pnpm i` and then `pnpm version patch`. Under pnpm 11, `pnpm i` dirties `pnpm-workspace.yaml` on every invocation (the build-script approval wizard re-emits its prompt), so `pnpm version` then aborts with:

```
[ERR_PNPM_UNCLEAN_WORKING_TREE] Working tree is not clean. Commit or stash your changes.
```

That's how 4.0.3 failed to publish after #131 merged — the test job ran fine, publish-npm bailed on the dirty tree, npm still has 4.0.2.

New flow

  1. Read the version from `package.json` directly. If a matching `vX.Y.Z` tag already exists, exit cleanly (no-op).
  2. Otherwise tag the merge commit and push the tag.
  3. `pnpm i --frozen-lockfile` then `pnpm publish --no-git-checks` (the latter so transient pnpm working-tree state can't block).

Practical effect: contributors bump the version in the PR that needs to ship (we already did this for 4.0.3 in #131), and merging publishes it.

Test plan

  • Workflow YAML parses (validated locally)
  • After merge: `v4.0.3` tag created on main, `etherpad-cli-client@4.0.3` lands on npm

Refs the dead 25965886065 publish run.

The previous \`pnpm version patch\` step ran \`pnpm i\` first, which
under pnpm 11 dirties pnpm-workspace.yaml (the build-script approval
wizard re-emits its prompt every install). \`pnpm version\` then
aborts with \`ERR_PNPM_UNCLEAN_WORKING_TREE\` and the publish never
runs — that's how 4.0.3 failed to ship after PR #131 merged.

Switch to a simpler model: bump the version manually in the PR that
needs to ship, then publish whatever version is in package.json on
merge to main. Tag the commit only if no \`vX.Y.Z\` tag exists yet,
and use \`pnpm publish --no-git-checks\` so transient working-tree
state from pnpm itself doesn't block the publish.
@qodo-code-review
Copy link
Copy Markdown

Qodo reviews are paused for this user.

Troubleshooting steps vary by plan Learn more →

On a Teams plan?
Reviews resume once this user has a paid seat and their Git account is linked in Qodo.
Link Git account →

Using GitHub Enterprise Server, GitLab Self-Managed, or Bitbucket Data Center?
These require an Enterprise plan - Contact us
Contact us →

@JohnMcLear JohnMcLear merged commit 9be4596 into main May 16, 2026
2 checks passed
@JohnMcLear JohnMcLear deleted the fix/publish-workflow branch May 16, 2026 15:43
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