Clickup-cli releasing-clickup-cli
Publishes a new version of clickup-cli to npm, updates Homebrew tap, writes release notes, and syncs the agent skill. Use when releasing a new version, bumping version, or verifying a release.
install
source · Clone the upstream repo
git clone https://github.com/krodak/clickup-cli
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/krodak/clickup-cli "$T" && mkdir -p ~/.claude/skills && cp -r "$T/.agents/skills/releasing-clickup-cli" ~/.claude/skills/krodak-clickup-cli-releasing-clickup-cli && rm -rf "$T"
manifest:
.agents/skills/releasing-clickup-cli/SKILL.mdsource content
Versioning
| Change type | Bump |
|---|---|
| Bug fix | patch (x.y.Z) |
| New feature, backward compatible | minor (x.Y.0) |
| Breaking change | major (X.0.0) |
Pre-release checklist
-
passesnpm run typecheck -
passesnpm run lint -
passes (includes version sync test)npm test -
succeedsnpm run build - New commands added to
(completion test will fail otherwise)src/commands/metadata.ts
Release steps
1. Commit feature/fix changes first
Do NOT mix feature commits with version bump commits.
2. Bump version
npm version <version> --no-git-tag-version
3. Sync all version-tracked files
node --import tsx scripts/sync-command-docs.ts
This updates:
quick reference tabledocs/commands.md
version header (line 6)skills/clickup-cli/SKILL.md
version check hint (line 10)skills/clickup-cli/SKILL.md
version field.claude-plugin/plugin.json
The
version synchronization test in tests/unit/ verifies these stay in sync.
4. Commit and tag
git add package.json package-lock.json .claude-plugin/plugin.json docs/commands.md skills/clickup-cli/SKILL.md git commit -m "bump v<version>" git tag v<version> git push origin main --tags
5. Wait for CI
gh run watch --repo krodak/clickup-cli --exit-status $(gh run list --repo krodak/clickup-cli --workflow release.yml --limit 1 --json databaseId -q '.[0].databaseId')
The release workflow runs: typecheck, test, build, npm publish (OIDC), GitHub Release creation.
6. If CI fails
Common failures:
fails: peer dep conflict (typescript-eslint vs TypeScript 6).npm ci
has.npmrc
.legacy-peer-deps=true- Completion test fails:
is missing a new command or flag. Add it, amend, re-tag, force push.metadata.ts - npm publish fails "already published": Version already exists on npm from a previous attempt. Bump to next version.
Fix, then:
git commit --amend --no-edit # or new commit git tag -d v<version> git tag v<version> git push origin main --tags --force
7. Write release notes
gh release edit v<version> --repo krodak/clickup-cli --notes "$(cat <<'EOF' ## Heading Description and code examples. Test count. EOF )"
Style: H2 per feature, code block with 2-3 examples, test count at bottom, no emojis.
8. Update Homebrew
SHA=$(curl -sL https://registry.npmjs.org/@krodak/clickup-cli/-/clickup-cli-<version>.tgz | shasum -a 256 | cut -d' ' -f1)
Then update
~/repositories/homebrew-tap/Formula/clickup-cli.rb:
- Change version in URL
- Change sha256
git -C ~/repositories/homebrew-tap add Formula/clickup-cli.rb git -C ~/repositories/homebrew-tap commit -m "clickup-cli <version>" git -C ~/repositories/homebrew-tap push origin main
9. Install updated skill
cp skills/clickup-cli/SKILL.md ~/.config/opencode/skills/clickup/SKILL.md
Common mistakes to avoid
- Running
beforegit commit
(use the script to sync everything)node --import tsx scripts/sync-command-docs.ts - Not adding new commands to
src/commands/metadata.ts - Bumping version in the same commit as feature changes
- Force-pushing tags without deleting old tag first