Versioning & Releases¶
This project follows a structured release strategy that balances stability with ongoing development.
Semantic Versioning¶
We use Semantic Versioning (MAJOR.MINOR.PATCH) for
all tagged releases.
- MAJOR – breaking changes
- MINOR – new features, backwards compatible
- PATCH – bug fixes and internal improvements
Example: 1.2.3 means the 3rd patch release of the 2nd minor version of the 1st
major version.
Development Builds from main¶
Every push to the main branch automatically builds a Docker image and
publishes it with the :main tag.
Use this tag for development environments:
⚠️
mainis always moving and may contain untagged or unreleased features.
Stable Releases¶
Stable releases are published via GitHub tags and follow semantic versioning.
Each release creates both a versioned tag and updates the :latest tag:
The :latest tag always points to the most recent stable release and is
recommended for production use.
Pre-Releases¶
Optionally, pre-release tags such as 1.3.0-alpha.1 may be published for
testing upcoming features:
Release Automation¶
Releases are managed using
semantic-release. It:
- Analyzes commit messages
- Determines the next version
- Publishes a GitHub release
- Pushes Docker images
Make sure to follow the Conventional Commits specification when contributing to ensure proper versioning.
Summary¶
| Tag | Source | Use Case |
|---|---|---|
main |
main branch |
Development |
latest |
GitHub release | Production (Latest) |
x.y.z (e.g. 1.2.3) |
GitHub release | Specific Version |
x.y.z-alpha.N |
GitHub pre-release | Feature Preview / RC |