Release process¶
How riverbank versions are managed, branched, and published.
Versioning¶
riverbank follows Semantic Versioning:
- Major (1.0.0) — breaking API changes
- Minor (0.9.0) — new features, backward-compatible
- Patch (0.9.1) — bug fixes only
The version is defined in pyproject.toml:
Branching strategy¶
main— stable, all tests pass, deployablerelease/vX.Y.Z— release preparation branch- Feature branches — short-lived, merged to
mainvia PR
Release steps¶
-
Create a release branch:
-
Bump the version in
pyproject.toml -
Update the changelog in
docs/reference/changelog.md -
Run the full test suite:
-
Push and create a PR:
-
Merge after CI passes
-
Tag the release:
-
CI publishes:
- Docker image to
ghcr.io/trickle-labs/riverbank:0.10.0 - Documentation site updated (via
mike deploy)
CI checks¶
Every PR must pass:
- Unit tests
- Golden corpus tests
- Integration tests (testcontainers)
ruff check(lint)ruff format --check(formatting)
Documentation versioning¶
The docs site uses mike for versioned documentation:
- Each tagged release gets a versioned snapshot at
/<version>/ - The
latestalias always points to the most recent release - Operators pinned to a specific version can find matching docs