|
cxxmcp 1.1.6
C++ MCP SDK
|
This process defines when a cxxmcp release can be published and what evidence has to travel with it. It is part of the SDK compatibility contract together with the compatibility policy, public API stability policy, release gates, release notes template, and release candidate checklist.
cxxmcp uses semantic versioning for public SDK releases:
MAJOR changes may remove deprecated public APIs, remove protocol snapshots, or change source-level behavior that stable consumers can observe.MINOR changes may add public APIs, protocol families, transports, package manager routes, and compatibility adapters while preserving source compatibility for the supported major version.PATCH changes are bug fixes, documentation fixes, compatibility fixes, and packaging fixes that do not add large public API surfaces.Pre-release tags use alpha, beta, or rc suffixes. Stable release notes must not claim fact-standard status unless the full release candidate checklist is complete for the exact release commit. A technical audit with no open code defects is necessary evidence, but it is not sufficient without the matching release-gates, package-manager, API-doc, source, and performance debt artifacts.
Each public release has one of these stages:
CHANGELOG.md and release notes with stable, experimental, or deprecated classification.The release candidate checklist is the binding stage review record.
Use python -B scripts/prepare_release.py <version> for release metadata updates. The script updates the repository version files, package references, release-gates examples, and package-consumption hashes from the same deterministic SDK source archive generator used by release-sdk.
Do not hand-edit the xmake add_versions hash or FetchContent/CPM URL_HASH values for a normal release. The SDK source archive intentionally excludes the external package-index and package-consumption files that contain that hash, so the archive checksum is not self-referential.
Every public release must attach or link artifacts produced from the exact release commit:
SHA256SUMS.txt for published source artifactsrelease-artifact-review.md generated by scripts/check_release_artifacts.py --review-output after validating the downloaded exact-commit release-gates and release-sdk artifactsdocs/release_notes_template.mdSource packages are the default SDK artifact. Prebuilt binaries are optional and may be published only for matrix entries that passed release-blocking gates for the same commit.
docs/technical_audit.md records code-defect closure, accepted limitations, and tracked debt. Release owners must review it with todo.md, docs/performance_debt.md, the release evidence bundle, and docs/release_candidate_checklist.md before publishing. Fixed audit findings do not automatically authorize stable, package-registry, or fact-standard claims; those claims require exact-commit artifacts for the advertised compiler/generator matrix, package-manager routes, optional auth/OpenSSL package surfaces, generated documentation, source checksums, and any performance or compile-time statements.
Before tagging a beta, rc, or stable release, review public header diffs under:
sdk/include/cxxmcpsdk/core/include/cxxmcpsdk/protocol/include/cxxmcpsdk/auth/include/cxxmcp when auth is enabledsdk/client/include/cxxmcpsdk/server/include/cxxmcpsdk/transport/include/cxxmcpThe review must follow Public API Stability. It must classify every public change as additive stable API, experimental API, compatible deprecation, behavior clarification, bug/security/protocol fix, or breaking change. For beta, rc, and stable releases, the review record must include:
Breaking changes require migration notes and must follow the compatibility and public API stability policies before they ship in a stable line.
Every release review must record dependency/reference versions from docs/dependency_policy.md and the release evidence manifest. Dependency updates require:
CXXMCP_USE_SYSTEM_DEPS=ONSDK package submissions should keep runtime/tooling dependencies outside the core SDK package unless a separate tools package is explicitly created.
Security reports follow SECURITY.md. A security release may skip the normal alpha/beta/rc progression only when delaying the fix would increase user risk. Even then, the release notes must identify the affected versions, fixed versions, compatibility impact, and any temporary evidence gaps.
Security fixes that require source-breaking API changes must prefer additive mitigations first. If a breaking change is unavoidable, it is allowed only with clear migration notes and a major-version plan unless the vulnerable API cannot remain available safely.