dev is the staging and default branch. prod contains live releases. Both
release types are started manually from the Release workflow on the dev
branch; tags created by the workflow do not trigger another workflow.
[workspace.package].version in Cargo.toml is the release version and must be
a plain major.minor.patch value. The workflow stamps the VS Code extension
with that version while packaging, so its committed manifest is not a release
input.
- A pre-release from version
1.0.5gets a unique tag such asv1.0.5-pre.42on the testeddevcommit. - A live release gets
v1.0.5on thedev-to-prodmerge commit.
Tags are immutable. Do not reuse or move a release tag; bump the Cargo version instead. GitHub pre-releases do not publish to the VS Code Marketplace. This keeps the later live extension on the same Cargo version without conflicting with Marketplace's numeric version rules.
The historical v1.0.4 GitHub pre-release used the stable tag shape and also
published Marketplace version 1.0.4. It remains as-is; 1.0.5 is the next
available live version.
Commit the version bump to dev, then run the normal local checks when
appropriate:
cargo test --locked
cargo fmt --all --check
cargo clippy --locked --all-targets --all-features -- -D warnings
cd editors/vscode
npm ci
npm test
cd ../..Review the root README, extension README, and files under docs/ whenever a
release changes installation, settings, supported platforms, or user-visible
behavior.
The release workflow repeats CI and the real-corpus gate before building any release assets.
- Open Actions → Release → Run workflow.
- Select the
devbranch andprerelease. - Run the workflow.
The workflow pins the selected dev commit, runs all gates, builds Windows x64
and Linux x64 server archives and platform VSIX packages, then creates a GitHub
pre-release with checksums. It does not change prod or publish to Marketplace.
- Open Actions → Release → Run workflow.
- Select the
devbranch andrelease. - Run the workflow.
After all gates and packages succeed, the workflow creates a dev → prod
PR and merges it automatically. The merge is rejected if dev moved since the
workflow started. The merge commit receives the stable tag and GitHub Release;
the packaged extensions are then published to Marketplace when VSCE_PAT is
configured.
If prod contains changes that are not in dev, the workflow stops before
building and asks for prod to be merged back into dev first.
Verify that the GitHub Release contains both server archives, both
platform-specific .vsix files, and SHA256SUMS.txt. Install the matching
.vsix in a clean VS Code profile and open a Generals INI file. For a live
release, confirm the same version appears in the Marketplace when publishing is
enabled.
- Keep
devas the default branch so the manual workflow is available. - Keep normal pull-request and CI protection on
dev. - Under Settings → Actions → General, enable Allow GitHub Actions to
create and approve pull requests. The workflow already requests only the
required
contents: writeandpull-requests: writetoken scopes. - Keep
prodavailable for the workflow-created merge PR. If branch protection is later added toprod, give the release workflow a deliberate bypass or change the flow to wait for approval. - Configure
VSCE_PATto publish live VS Code Marketplace builds. Without it, the stable GitHub Release still succeeds.