This guide defines how CheckTick versions are managed and when container images are published.
Version Source of Truth
- The canonical application version is in
pyproject.tomlunder[tool.poetry].version. - README version badges are derived from this value.
- Agents and maintainers should not use
package.jsonfor application versioning decisions.
Container Registry
- Registry:
ghcr.io/eatyourpeas/checktick - Primary tags:
latestX.Y.Z(full semantic version)X.Y(minor stream)- SHA-based development tags
Publish Triggers
The Docker publish workflow runs under controlled conditions:
- Tag push matching
v*(release-style publish) - Manual dispatch via workflow input
- Push to
mainwithpyproject.tomlchanged (version-aware publish)
If none of these conditions are met, publish is skipped.
Why This Policy Exists
- Allows maintenance/docs merges to
mainwithout forcing a new container image. - Keeps semantic tags aligned with explicit version intent.
- Preserves manual release control when needed.
Typical Release Flow
- Bump version in
pyproject.toml(semver). - Merge PR to
main. - Publish workflow applies versioned tags to GHCR.
- Northflank restarts and pulls latest published image.
Accidental No-Bump Merges
If code is merged without a version bump:
- CI still runs.
- Container publish is skipped unless trigger conditions are met.
- You can still publish intentionally using manual dispatch or by creating a
v*tag.