Release
Current product versions are represented in:
.release-please-manifest.jsonapps/vscode-extension/package.jsonpackages/mcp-server/pyproject.tomlpackages/mcp-server/src/kicad_mcp/__init__.pypackages/mcp-server/mcp.jsonpackages/mcp-server/server.jsonpackages/mcp-npm/package.json
.release-please-manifest.json tracks product package paths only. The private repository root is not released.
Release PRs are created by .github/workflows/release-please.yml with separate Release Please pull requests per product package path. The VS Code extension can release independently from kicad-mcp-pro; the MCP server Python package and npm launcher stay version-linked as one MCP product. Release publication workflows run from GitHub Releases and protected environments.
The publish workflows keep release evidence product-scoped:
publish-extension.ymlvalidates the VSIX, emitsSHA256SUMS.txtand a CycloneDX SBOM, creates GitHub artifact attestations for the checksummed extension package, publishes the shared VSIX to the Visual Studio Marketplace, verifies the Marketplace version, and then publishes the same VSIX to Open VSX in a separate non-blocking job that downloads the published VSIX and compares its digest with the release checksum.publish-python.ymlvalidates the wheel and source distribution, emitspackages/mcp-server/release-evidence/SHA256SUMS.txt, emits a CycloneDX SBOM, uploads that evidence aspython-release-evidence, and creates GitHub artifact attestations for the Python wheel and source distribution before PyPI trusted publishing. The publish jobs verify local checksums before upload and verify PyPI/TestPyPI SHA-256 digests after upload. Thepython-distartifact intentionally contains only*.whland*.tar.gzfiles.publish-npm.ymlpacks thekicad-mcp-pronpm launcher tarball, emitsSHA256SUMS.txtand a CycloneDX SBOM, creates GitHub artifact attestations, publishes with npm provenance, and downloads the published tarball to verify its SHA-256 digest.publish-mcp-container.ymlvalidates the Docker image on pull requests and publishes signed multi-arch GHCR images with BuildKit SBOM/provenance formcp-server-v*GitHub Releases.
Release dry-runs also validate compatibility.yaml through the MCP server release preflight. Update docs/support-matrix.md and release notes whenever KiCad, VS Code, MCP, Node, pnpm, Python, or tool-schema support changes.
Conventional Commit Scopes
Release Please derives product changelogs from Conventional Commits, so pull request titles and product-changing commits must use one of these scopes:
kicad-studioforapps/vscode-extension.kicad-mcp-proforpackages/mcp-serverandpackages/mcp-npm.repofor repository governance, documentation, workflow, and shared release policy changes.depsfor dependency-only updates.
Commits that touch both product directories must be split by product or use the multi-scope form kicad-studio/kicad-mcp-pro. Release Please generated PRs retain their upstream chore(main): release ... title format and are exempt from the human PR title scope gate.
Run product dry-runs before merging release-related changes:
corepack pnpm run release:dry-run:kicad-studio
corepack pnpm run release:dry-run:kicad-mcp-pro
corepack pnpm run release:dry-run
corepack pnpm run check:release-please2
3
4