Releasing
Releases are cut from main by pushing a version tag. CI does the rest.
Steps
-
Make sure
mainis green. -
Bump the version everywhere and roll the changelog:
scripts/bump-version.sh 0.2.0This updates the workspace
Cargo.toml,Cargo.lock,extensions/vscode/package.json, and turns## [Unreleased]inCHANGELOG.mdinto## [0.2.0] - <today>. -
Review and commit:
git diff git commit -am "chore: release 0.2.0" -
Tag and push:
git tag -a v0.2.0 -m "devsync 0.2.0" git push origin main v0.2.0
What the release workflow does
.github/workflows/release.yml, triggered by v* tags:
- Verify: the tag matches the versions in
Cargo.tomlandpackage.json, and the full test suite passes. - Build release archives, each containing the client plus the static
Linux agents:
aarch64-apple-darwin,x86_64-apple-darwinx86_64-unknown-linux-musl,aarch64-unknown-linux-musl
- Package the VS Code extension (
.vsix). - Publish a GitHub Release with the archives, the
.vsix,SHA256SUMS, and release notes taken from the matchingCHANGELOG.mdsection. - Marketplaces (optional): if the repository secrets
VSCE_PAT(Visual Studio Marketplace) and/orOVSX_PAT(Open VSX) are set, the extension is published there too. Without them, those steps are skipped.
The docs site is redeployed from main by .github/workflows/docs.yml.
Versioning
devsync follows Semantic Versioning. Until 1.0, minor
versions may break the config format or the CLI; such changes are called out
in the changelog. The wire protocol has its own PROTOCOL_VERSION, and
agents are content-addressed, so mismatched client/agent pairs never talk to
each other.
Repository settings checklist
- Settings → Pages: source “GitHub Actions” (for the docs site).
- Settings → Code security: enable private vulnerability reporting
(referenced by
SECURITY.md) and Dependabot alerts. - Branch protection on
main: require the CI checks. - Secrets (optional):
VSCE_PAT,OVSX_PAT.