Release Checklist
April 18, 2026 ยท View on GitHub
Automation summary
- Pull requests run
.github/workflows/release-validation.yml. - Pushes to
mainrun.github/workflows/release.yml. semantic-releasereads Conventional Commit messages onmain, computes the next SemVer, creates the Git tag and GitHub release, and then runsnpm run release:publish.npm run release:publishvalidates the repo, builds one versioned.vsix, and publishes that same artifact to both registries.
Local validation
- Run
npm installif dependencies changed. - Run
npm run audit:checkand resolve any high-severity findings before packaging or publish. - Run
npm run release:check. - Confirm
npm run package:inspectpasses so the generated VSIX only contains the bundled runtime, manifest, release docs, and icon.
GitHub repository setup
- Leave the default Actions
GITHUB_TOKENenabled with read/writeContentspermissions so semantic-release can create tags and GitHub releases. - Add
VSCE_PATas a repository secret with a VS Code Marketplace Personal Access Token. - Add
OVSX_PATas a repository secret with an Open VSX access token. - Make sure
package.json.repository.urlpoints at the real GitHub repository that will run the workflow. - Protect
mainso only reviewed commits that follow the release rules can land.
Commit rules
- Use Conventional Commits for every commit that reaches
main. fix:releases a patch version.feat:releases a minor version.- Add
!after the type or include aBREAKING CHANGE:footer to release a major version. - Other types such as
docs:,test:,refactor:, andchore:do not release unless they include a breaking change. - If you squash merge pull requests, make sure the squash commit title follows the same rules.
Marketplace prerequisites
- Create an Azure DevOps Personal Access Token with Marketplace (Manage) scope and All accessible organizations.
- Create or confirm the Marketplace publisher matches
publisherinpackage.json. - Authenticate once with
npx @vscode/vsce login <publisher>ornpm exec vsce login <publisher>.
Open VSX prerequisites
- Create an Eclipse account.
- Sign the Open VSX Publisher Agreement.
- Create the namespace matching the publisher.
- Authenticate with
npx ovsx publish -p <token>or anOVSX_PATenvironment variable.
Manual dry run
- Re-run
npm run audit:checkif dependencies changed since local validation; do not continue until the audit gate is clean. - Run
npm run release:checkto build, test, package, and inspect the publishable VSIX locally. - Run
npm run release -- --dry-runto confirm the next version and release notes without publishing.
Cross-platform verification matrix
| Scenario | Automated coverage | Manual smoke expectation |
|---|---|---|
Absolute copy output stays path:line / path:start-end | Unit tests + CI on macOS, Windows, Linux | Trigger absolute copy in a saved local file and paste into a text buffer |
| Relative copy uses workspace-relative path with absolute fallback | Unit tests + CI on macOS, Windows, Linux | Trigger relative copy for both in-workspace and out-of-workspace files |
| Unsupported editor states fail clearly | Workflow tests | Try an untitled or non-file editor and verify the error toast |
| Slash-normalized output on all platforms | Path/reference tests + CI on macOS, Windows, Linux | On Windows, confirm copied output still uses forward slashes |
| Extension stays UI-hosted for clipboard behavior | Manifest check (extensionKind: ["ui"]) | In a remote window, verify Developer: Show Running Extensions lists Copy File Path with Line Numbers (AI Prompt) under Local |
Remaining manual checks
- The first Marketplace/Open VSX publish still depends on valid maintainer credentials and namespace setup.
- UI-host verification in a remote window still needs a human smoke test.