Release Lifecycle
Franklyn releases are driven by git tags. CI does not create tags.
Version format
X.Y.Z
X.Y.Z-rc.N
X.Y.Z+dev.NAny version containing - or + is treated as a prerelease/dev build.
Tagging and VERSION
- Tags are pushed manually. Before tagging, the
VERSIONfile on the target commit must be updated by hand — the tag name with the leadingvstripped must exactly match its contents (e.g. tagv0.6.4requiresVERSIONto contain0.6.4). - Tag format:
vX.Y.Z,vX.Y.Z-rc.N,vX.Y.Z+dev.N(and-alpha.N,-beta.N, etc.).
Example:
echo -n "0.6.4" > VERSION
git add VERSION
git commit -m "chore: bump version to 0.6.4"
git tag -a v0.6.4 -m "[lts] backport fix"
git push origin HEAD --follow-tagsLTS and prerelease handling
- LTS is signaled by an annotated tag containing
[lts]. - Pre-release/dev tags are all treated the same by CI; they exist for internal testing.
Branches we use
- LTS line: create
release/X.Y.xand cherry-pick fixes there (e.g.release/0.6.x). - RC line: feature freeze with fixes only, either on
mainor on a short-lived branch likerelease/0.6.3for0.6.3-rc.1. - Dev builds can happen on any commit.
Publishing behavior
Docker tags for server and proctor:
| Release type | Tags pushed |
|---|---|
| Stable | X.Y.Z, latest |
| LTS | X.Y.Z, X.Y, lts |
| Prerelease/dev | X.Y.Z-rc.N or X.Y.Z+dev.N, dev |
For LTS, the X.Y.Z tag is the normal version tag, while X.Y and lts float to the newest patch in that LTS line (e.g. 0.5.4 updates 0.5 and lts).
Compatibility
We follow SemVer. Compatibility within 1.x.x is expected. 0.x.x is still just SemVer for us and may change more quickly.
Last updated on • J.H.F.