Release Process¶
Opencomplai follows Semantic Versioning (MAJOR.MINOR.PATCH). The current version is 0.1.0-dev (pre-release). This page documents how releases work once v0.1 ships.
Version policy¶
| Component | Versioning |
|---|---|
opencomplai-core | Semver; breaking model or rule API changes bump MAJOR |
opencomplai-cli | Semver; new commands or changed exit codes bump MINOR |
opencomplai (SDK) | Semver; follows core version |
| Gateway API | Path-prefix versioning (/v1/, /v2/); parallel for ≥ 90 days |
All three Python packages move together (same version number per release). The gateway API versions independently.
Release checklist¶
- Create a release branch from
main:git checkout -b release/v0.x.y. - Update versions in:
packages/core/pyproject.tomlpackages/cli/pyproject.tomlpackages/sdk-python/pyproject.toml- Update
CHANGELOG.md— move items fromUnreleasedto the new version heading. - Run the full test suite:
uv run pytest packages/ && cd services/gateway-api && pnpm test. - Open a release PR targeting
main. Require two maintainer approvals. - Tag and merge: after merge, tag
v0.x.yon the merge commit. - Publish to PyPI (CI handles this on tag push via
ci-python.yml). - Create a GitHub Release from the tag with the CHANGELOG section as the body.
Hotfixes¶
For critical security or correctness fixes on a released version:
- Branch from the release tag:
git checkout -b hotfix/v0.x.y+1 v0.x.y. - Apply the minimal fix.
- Follow the release checklist from step 2.
Pre-release (current state)¶
Until v0.1 ships:
- Packages are versioned
0.1.0-devand not published to PyPI. - Install from source:
uv pip install -e packages/sdk-python. - The
CHANGELOG.mdUnreleasedsection tracks changes. - The README badge reads
pre-alphato reflect this status.