release
Release a new version of the VS Code extension to the marketplace. Runs checks, compares changes, updates changelog/version, commits, and publishes.
When & Why to Use This Skill
This Claude skill automates the entire release lifecycle for VS Code extensions, streamlining the transition from local development to the Visual Studio Marketplace. It ensures high code quality by executing pre-release checks (linting, testing, and building) and manages the complexities of versioning, changelog updates, and Git synchronization, providing a reliable and efficient CI/CD workflow for extension developers.
Use Cases
- Automating the multi-step publishing process to the VS Code Marketplace to eliminate manual errors and save developer time.
- Enforcing consistent code quality by automatically running lint and test suites before allowing a new version release.
- Managing semantic versioning (patch, minor, major) and generating structured changelogs based on Git commit history.
- Synchronizing repository states by automatically creating Git tags and pushing release commits to remote branches.
- Standardizing the release workflow across a development team to ensure every version follows the same build and verification protocols.
| name | release |
|---|---|
| description | Release a new version of the VS Code extension to the marketplace. Runs checks, compares changes, updates changelog/version, commits, and publishes. |
| user_invocable | true |
| - Bash(git * | *) |
| - Bash(npm run build | *) |
| - Bash(npm run lint | *) |
| - Bash(npm run test | *) |
| - Bash(npx vsce * | *) |
| disable_sandbox | true |
Release Command
This skill handles the full release workflow for the OpenAPI LSP VS Code extension.
Workflow Steps
1. Run Pre-commit Checks
First, run all pre-commit hooks to ensure code quality, without sandboxing:
npm run lint
npm run test
# Run this without sandbox
npm run build
If any checks fail, stop and report the errors.
2. Get Changes Since Last Release
Find the last git tag and show commits since then:
# Get the latest tag
git describe --tags --abbrev=0
# Show current changes
git diff
# Show commits since last tag
git log <last-tag>..HEAD --oneline
3. Ask User for Changelog and Version
Present the changes to the user and ask:
- Confirm the changelog entries to add
- Choose version bump type: patch (0.0.x), minor (0.x.0), or major (x.0.0)
4. Update Files
Update these files in packages/client/:
CHANGELOG.md - Add new version section at the top:
# <new-version>
1. <changelog entry 1>
2. <changelog entry 2>
...
# <previous-version>
...
package.json - Update the version field to the new version.
5. Commit Changes
git add packages/client/CHANGELOG.md packages/client/package.json
git commit -m "chore: release v<new-version>"
git tag v<new-version>
6. Publish to VS Code Marketplace
cd packages/client
npx vsce publish --no-dependencies
This runs vsce publish --no-dependencies which publishes to the VS Code marketplace.
7. Push to Remote
git push origin HEAD
git push origin v<new-version>
Important Notes
- The extension is published under the name
openapilspclientby publisherhanayashiki - Current version can be found in
packages/client/package.json - Changelog format uses numbered lists under version headers
- Always create a git tag matching the version (e.g.,
v0.1.3)