This document describes how the Agent Governance Toolkit ships releases across its multi-language SDK ecosystem.
All packages follow Semantic Versioning 2.0.0:
- MAJOR: Breaking API changes (removed public classes, changed method signatures, incompatible config format changes)
- MINOR: New features, new packages, new CLI commands (backward-compatible)
- PATCH: Bug fixes, documentation corrections, dependency updates (backward-compatible)
Each SDK package is versioned independently. There is no monorepo-wide version number.
- Regular releases: As needed, typically 1-2 times per month
- Security patches: Released within 48 hours of confirmed vulnerability
- Dependabot updates: Merged continuously and included in the next release
| Ecosystem | Registry | Packages |
|---|---|---|
| Python | PyPI | agent-os, agent-mesh, agent-compliance, agent-sre, agent-hypervisor, agent-runtime, agent-lightning, framework integrations (40+ packages) |
| TypeScript | npm | @agent-governance/* |
| .NET | NuGet | AgentGovernance.* |
| Rust | crates.io | agent-governance-* |
| Go | Go modules | github.com/microsoft/agent-governance-toolkit/agent-governance-go/* |
| Containers | GitHub Container Registry | trust-engine, policy-server, audit-collector, api-gateway, registry, relay, governance-sidecar |
- All CI checks pass on
main(CI, CodeQL, Secret Scanning, Scorecard) - CHANGELOG.md is updated with notable changes
- No open security advisories or critical bugs
- Version numbers bumped in affected package manifests (
pyproject.toml,package.json,*.csproj,Cargo.toml)
- Go to Releases
- Click "Draft a new release"
- Create a new tag following the pattern
v<MAJOR>.<MINOR>.<PATCH>(e.g.,v0.8.0) - Use the auto-generated release notes as a starting point, then edit for clarity
- Mark as pre-release if appropriate (e.g.,
v0.8.0-rc.1) - Publish the release
Publishing is triggered automatically when a GitHub Release is published:
- Python packages: The
publish.ymlworkflow builds wheels with provenance attestation, then publishes to PyPI - Container images: The
publish-containers.ymlworkflow builds and pushes multi-arch images to GHCR - .NET packages: Built and published to NuGet via the CI pipeline
- npm packages: Built and published to npm via the CI pipeline
The workflow_dispatch trigger on publish.yml also allows publishing individual packages on demand.
- Verify packages appear on their respective registries
- Verify container images are pullable:
docker pull ghcr.io/microsoft/agent-governance-toolkit/<component>:<tag> - Monitor for any regression reports in the first 24 hours
For critical bugs or security issues in a released version:
- Create a branch from the release tag:
git checkout -b hotfix/v0.8.1 v0.8.0 - Apply the minimal fix with tests
- Follow the standard release process with a PATCH version bump
- Cherry-pick the fix back to
mainif not already there
Every release includes:
- SBOM generation: Software Bill of Materials for all packages (
sbom.yml) - Provenance attestation: Build provenance via GitHub Attestations (Sigstore-based)
- Dependency review: Automated review of dependency changes on every PR
- Secret scanning: Pre-commit and CI scanning for leaked credentials
- OpenSSF Scorecard: Weekly scoring with SARIF upload to GitHub Security tab