mirror of
https://github.com/k8sgpt-ai/k8sgpt.git
synced 2026-05-03 18:02:43 +00:00
- 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>
3.0 KiB
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
- Change Tracking: Commits are tagged with conventional commit types (
feat:,fix:,chore:, etc.) - Release PR: release-please automatically creates a PR that tracks all changes and bumps the version
- Merge to Main: When the release PR is merged, the release workflow triggers
- 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:
- Step 1 - release-please: Analyzes commit history and creates a release PR with changelog
- 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:
- GitHub Releases with changelog
- Binaries via GitHub Releases
- Container images on ghcr.io/k8sgpt-ai/k8sgpt
- Helm chart via k8sgpt-ai/charts
- Homebrew formula via k8sgpt-ai/homebrew-k8sgpt
- Krew plugin via krew registry
- Package repositories (RPM, DEB, APK)
Release Configuration
- release-please-config.json - Configures release-please behavior
- release-please-manifest.json - Tracks current version
- .goreleaser.yaml - Configures GoReleaser build and publish
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 versionfix:- Will bump PATCH versionchore:,docs:,refactor:- Will bump PATCH versionBREAKING CHANGE:in commit body - Will bump MAJOR version