-
Notifications
You must be signed in to change notification settings - Fork 0
Release Process
ksauraj edited this page Aug 5, 2026
·
1 revision
How telectl versions and ships releases.
telectl follows Semantic Versioning 2.0 with Kubernetes-style pre-release stages:
v<major>.<minor>.<patch>-<stage>.<n>
The ladder: alpha.N → beta.N → rc.N → stable (no suffix).
flowchart LR
A[alpha.1] --> B[alpha.2] --> C[beta.0] --> D[rc.0] --> E[v1.0.0]
Tags are immutable. A broken release is never deleted and re-tagged with
the same number — it gets the next number. History is history; v0.1.0-alpha.1
stays in the release list even after v0.1.0-alpha.2 and v0.1.0-beta.0
ship. See Versioning & Releases for the full
rationale.
- GitHub Release with binaries for 5 platforms (linux/macos/windows × amd64/arm64), each with SHA256 checksums.
- GHCR image
ghcr.io/ksauraj/telectl:<tag>— multi-arch (amd64 + arm64), compiled perTARGETARCHin the Dockerfile. - CHANGELOG.md entry under a new version header.
-
Update CHANGELOG.md — add
## [vX.Y.Z-stage.n] - <date>with Added/Changed/Fixed sections describing the release. -
Commit the changelog (
docs:conventional commit). -
Tag the commit and push the tag:
Pushing a tag triggers the CI release pipeline.
git tag v0.1.0-beta.0 git push origin v0.1.0-beta.0
-
CI builds and publishes — the workflow:
- runs the full test/lint/build suite,
- builds the multi-platform Docker image and pushes to GHCR,
- builds release binaries for all platforms,
- creates the GitHub Release via
softprops/action-gh-releasewith checksums attached.
- Verify — the release page shows binaries + checksums; the GHCR package shows the new tag; both platforms' images are real binaries (the arm64 image contains an arm64 binary).
- Fixes to an existing pre-release → bump the number (
alpha.2→alpha.3) or promote if the project is stable enough (beta.0). - The decision to promote (alpha → beta → rc → stable) is a maintainer call, recorded in the CHANGELOG.
- Docs and wiki updates ride along in the same commit as the changelog so the release is self-consistent.
- Development happens on feature branches; merges land on
mainvia--no-ffmerge commits. - Tags are cut from
mainonly. - See Branch Protection in the repo for the protection rules.
- Announce the release (the GitHub Release notes double as the changelog).
- Update the Helm chart version to match when the chart itself changes
(
charts/telectl/Chart.yamlversion), and re-publish the chart repo on GitHub Pages if so.
Getting Started
User Guides
Deployment
- Try It Locally
- Helm Chart Guide
- Docker Deployment
- Two Deployment Modes
- Kubernetes RBAC
- Impersonation & RBAC
- Production Checklist
Development
- Architecture Overview
- How It Works
- Development Setup
- Contributing Guide
- Testing Guide
- Release Process
- Versioning & Releases
Operations