Skip to main content

Release Process

Purpose: For contributors, shows the release process including version bump, changelog, and tagging.

Prerequisites

  • Push access to the repository
  • gh CLI installed (for GitHub release creation)
  • For CLI: mise installed and mise run build passing
  • For Headlamp: pnpm run build and pnpm test passing

openCenter-cli

1. Run the release task

The mise release task builds binaries for all platforms and generates release notes:

mise run release v1.0.0

This produces:

  • bin/release/opencenter-1.0.0-linux-amd64
  • bin/release/opencenter-1.0.0-linux-arm64
  • bin/release/opencenter-1.0.0-darwin-amd64
  • bin/release/opencenter-1.0.0-darwin-arm64
  • bin/release/RELEASE_NOTES_1.0.0.md

Release notes are auto-generated from conventional commit messages since the last tag.

2. Test the binaries

Verify the built binaries on target platforms:

./bin/release/opencenter-1.0.0-darwin-arm64 version

3. Tag and push

git tag -a v1.0.0 -m "Release 1.0.0"
git push origin v1.0.0

4. Create the GitHub release

gh release create v1.0.0 \
--title "opencenter 1.0.0" \
--notes-file bin/release/RELEASE_NOTES_1.0.0.md \
bin/release/opencenter-1.0.0-*

openCenter-AirGap

  1. Update the version field in pyproject.toml
  2. Commit: git commit -m "chore: bump version to 1.0.0"
  3. Tag: git tag -a v1.0.0 -m "Release 1.0.0"
  4. Push: git push origin v1.0.0
  5. CI builds the Zarf package and attaches it to the GitHub release

headlamp-branding-plugin

  1. Bump the version in the plugin's package.json:
    cd plugins/branding
    pnpm version patch # or minor, major
  2. Commit and push
  3. Tag: git tag v1.0.1 && git push origin v1.0.1
  4. GitHub Actions runs tests, builds the plugin, packages it as a ZIP, and creates a release

openCenter-gitops-base

gitops-base uses Git tags for versioning. Customer clusters pin to specific tags via FluxCD GitRepository refs.

  1. Tag the release: git tag -a v1.0.0 -m "Release 1.0.0"
  2. Push: git push origin v1.0.0
  3. Customer clusters update their GitRepository ref.tag to the new version

No build artifacts are produced — the repository itself is the artifact, consumed directly by FluxCD.

Versioning conventions

RepositoryFormatExample
openCenter-cliSemVer with optional pre-releasev1.0.0, v1.0.0-rc2
openCenter-AirGapSemVer with optional pre-releasev1.0.0-rc2
headlamp-branding-pluginSemVerv1.0.1
openCenter-gitops-baseSemVerv1.0.0

All tags use the v prefix.