Versioning - ChristianPresley/zig-sdk GitHub Wiki
zig-sdk uses semantic versioning with a major version of zero. Each release supports exactly one MCP specification revision1.
Applies to: zig-sdk 0.y.z.
- A minor release (
0.y.0) can change the public API, move to a new MCP specification revision, or move to a new Zig release. - A patch release (
0.y.z) contains fixes only. - Each release supports exactly one MCP specification revision. There is no overlap window.
- Each release pins one Zig version in
build.zig.zonasminimum_zig_version. - Release tags have the form
vX.Y.Zand are GPG-signed.
- Vendor the new schema in
test/fixtures/mcp_schema_<rev>/and the specification pages intest/fixtures/mcp_spec_<rev>/. - Put an
UPSTREAM.zonfile in each fixture directory. It records the upstream repository, the commit and the path. - Update
src/mcp/protocol/version.zig. - Update the fixture paths in
tools/schema_census.zig,tools/extract_requirements.zigandsrc/mcp/golden_test.zig. - Update the protocol types until
zig build test censuspasses. - Run
zig build extract-requirementsto writedocs/spec/requirements.zonagain. - Map each requirement in
docs/spec/requirement_tests.zon. Then runzig build spec-matrix. - Update the conformance harness pin in
conformance/README.md. - Record the removed behavior in
CHANGELOG.mdunder "Removed". - Make a minor release.
Pin a tag with zig fetch --save-exact. The --save form rewrites the reference to a commit hash, which is also fine.
- MCP-VERSIONING: The current protocol version and the negotiation of revisions.