releasing-clickup-cli
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
-
npm run typecheckpasses -
npm run lintpasses -
npm testpasses (includes version sync test) -
npm run buildsucceeds - New commands added to
src/commands/metadata.ts(completion test will fail otherwise)
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:
docs/commands.mdquick reference tableskills/clickup-cli/SKILL.mdversion header (line 6)skills/clickup-cli/SKILL.mdversion check hint (line 10).claude-plugin/plugin.jsonversion field
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:
npm cifails: peer dep conflict (typescript-eslint vs TypeScript 6)..npmrchaslegacy-peer-deps=true.- Completion test fails:
metadata.tsis missing a new command or flag. Add it, amend, re-tag, force push. - 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
git commitbeforenode --import tsx scripts/sync-command-docs.ts(use the script to sync everything) - 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
More from krodak/clickup-cli
clickup
Use when managing ClickUp tasks, sprints, or comments via the `cup` CLI tool. Triggers: task queries, status updates, sprint tracking, creating subtasks, posting comments, threaded replies, standup summaries, searching tasks, checking overdue items, assigning tasks, listing spaces and lists, opening tasks in browser, checking auth or config, setting custom fields, deleting tasks, managing tags, managing checklists, editing comments, task links, time tracking, attachments, file uploads, listing members, listing fields, duplicating tasks, bulk operations, goals, key results, saved filters, favorites.
11testing-clickup-cli
Run and manage tests for clickup-cli. Covers unit tests, e2e tests against a real ClickUp workspace, and the test data setup. Use when running tests, adding test coverage, debugging test failures, or setting up test fixtures.
1