Files
k8sgpt/RELEASE.md
Three Foxes (in a Trenchcoat) c82da09984 docs: prepare governance docs for CNCF incubation (#1642)
- Add .github/ISSUE_TEMPLATE/ (bug_report, feature_request, config)
- Add MAINTAINERS.md with maintainer list and roles
- Add GOVERNANCE.md with decision-making, lifecycle, vendor neutrality
- Add ADOPTERS.md with adopter collection template
- Add ROADMAP.md with current focus areas and planned initiatives
- Add INTEGRATIONS.md with CNCF, AI provider, and tool integrations
- Add RELEASE.md documenting automated release process

Part of CNCF incubation preparation tracking issue #1641

Signed-off-by: Alex Jones <axjns@example.com>
Co-authored-by: Alex Jones <axjns@example.com>
2026-04-24 20:13:34 +01:00

3.0 KiB

Release Process

This document describes how k8sgpt releases are managed.

Release Automation

k8sgpt uses automated release tooling:

  • release-please - Tracks changes and manages version bumping
  • GoReleaser - Builds binaries, containers, and publishes releases

Release Workflow

  1. Change Tracking: Commits are tagged with conventional commit types (feat:, fix:, chore:, etc.)
  2. Release PR: release-please automatically creates a PR that tracks all changes and bumps the version
  3. Merge to Main: When the release PR is merged, the release workflow triggers
  4. Build & Publish: GoReleaser builds binaries for all platforms, creates container images, and publishes the release

CI Pipeline

The release is managed by .github/workflows/release.yaml:

  1. Step 1 - release-please: Analyzes commit history and creates a release PR with changelog
  2. Step 2 - goreleaser: When a new release is created, builds and publishes:
    • Binaries for Linux (amd64, arm64, 386), macOS (amd64, arm64), Windows (amd64, arm64)
    • Container images (ghcr.io/k8sgpt-ai/k8sgpt)
    • Helm chart updates
    • Homebrew tap updates
    • RPM, DEB, and APK packages

Release Cadence

k8sgpt aims for monthly releases. Minor and patch releases happen as needed for bug fixes and security updates.

Versioning

k8sgpt follows Semantic Versioning: MAJOR.MINOR.PATCH

  • MAJOR: Incompatible API changes
  • MINOR: New features, backward compatible
  • PATCH: Bug fixes, backward compatible

Publishing Artifacts

Each release publishes:

Release Configuration

Manual Release

While releases are automated, a manual release can be triggered via:

# Trigger the release workflow manually
gh workflow run release.yaml -R k8sgpt-ai/k8sgpt

Contributing to Releases

Contributors do not need to manage releases. Just follow conventional commits and the release automation will handle the rest:

  • feat: - Will bump MINOR version
  • fix: - Will bump PATCH version
  • chore:, docs:, refactor: - Will bump PATCH version
  • BREAKING CHANGE: in commit body - Will bump MAJOR version