Release And Image Tag Policy¶
This document defines the supported release and Docker image contract starting with the 0.3.0 release line.
Source of truth:
.github/workflows/release-to-docker-ci.yml.github/workflows/rebuild_supported_tags.yml.github/workflows/development_image_ci.ymlDockerfile
Support Scope¶
- Starting with
0.3.0, all versions older than0.3.0are end-of-life. - Only the current
0.3stable line receives rebuilds and security refreshes. - No compatibility or support guarantees are provided for pre-
0.3.0images.
Public Stable Tags¶
Public stable tags published to orenlab/pytmbot:
0.3.0: exact release image, immutable0.3: current supported stable line, mutablestable: alias for the current supported stable line, mutablelatest: alias forstable, mutable0.3-rYYYYMMDD: dated stable-line rebuild, mutable only by date creation
Tag Semantics¶
- Use
0.3.0when you need a reproducible artifact tied to a specific release. - Use
0.3when you want the current supported stable line with weekly OS/base-image refreshes. - Use
stablewhen you want the supported stable channel without caring about the numeric line tag. - Use
latestonly as an alias ofstable; it is not a separate policy channel.
Important:
- Exact release tags such as
0.3.0must never be republished with different contents. - Weekly rebuilds must never move
0.3.0. latestmust always point to the newest supported stable line.
Release Workflow¶
The release workflow publishes all of the following tags for 0.3.0:
0.3.00.3stablelatest
This keeps a strict split between immutable release artifacts and floating stable-channel tags.
Weekly Rebuild Workflow¶
The weekly rebuild workflow resolves the latest release tag in the supported 0.3.x line and rebuilds that source with
the current container base image and OS packages.
The rebuild publishes:
0.3stablelatest0.3-rYYYYMMDD
The rebuild does not publish:
0.3.0
What Weekly Rebuilds Refresh¶
Weekly rebuilds refresh:
- Ubuntu base image layers
- APT packages installed during image build
- image metadata, SBOM, and provenance for the rebuilt artifact
Weekly rebuilds do not refresh:
- Python dependencies pinned by
uv.lock - application source code
Python dependency updates require a committed lockfile change and a new release build.
Development Images¶
Development images are intentionally outside the stable contract.
Current development tags are:
edge-<branch>edge-sha-<gitsha>
Development tags are mutable and unsupported for production use.
Operational Guidance¶
- For production fleets that prioritize predictable rollbacks, pin
0.3.0. - For production fleets that prioritize automatic base-image security refreshes inside the supported line, use
0.3orstable. - If you use
latest, treat it exactly the same asstable.