Skip to content
This repository was archived by the owner on Nov 26, 2025. It is now read-only.

Conversation

@michaelstingl
Copy link
Contributor

@michaelstingl michaelstingl commented May 23, 2025

Add release governance and version consistency checks

This PR addresses #48 by implementing:

1. Release Process Documentation

  • Added comprehensive release process to CONTRIBUTING.md
  • Includes version guidelines and tag procedures
  • Clarifies 0.x.x version stability expectations

2. Version Consistency Checks

  • Added automated version validation to publish workflow
  • Validates semver format (x.y.z) for all charts
  • Warns when git tag doesn't match chart versions
  • Shows which versions will be overwritten during releases

These changes help ensure consistent versioning across our Helm charts and provide clear guidance for maintainers when creating releases.

Closes #48

Fixes opencloud-eu#48

- Define who can create releases (maintainers only)
- Add simple release process checklist
- Document version guidelines for 0.x.x phase
- Clarify breaking changes vs features vs fixes

This provides the minimal governance structure requested
while keeping the process lightweight and community-friendly.
- Validate semver format for all chart versions
- Check and warn about version mismatches with git tags
- Show which versions will be overwritten during tag releases
- Helps prevent accidental version inconsistencies

This addresses concerns raised in opencloud-eu#48 about version governance
@michaelstingl michaelstingl force-pushed the feature/release-governance-48 branch from f0a77a8 to eec4394 Compare May 23, 2025 18:57
@michaelstingl michaelstingl changed the title Add release process documentation Add release governance and version consistency checks May 23, 2025
# Basic semver check (x.y.z format)
for version in "$PROD_VERSION" "$DEV_VERSION"; do
if ! [[ "$version" =~ ^[0-9]+\.[0-9]+\.[0-9]+$ ]]; then
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this will not match 0.x.y-z - Bug fixes only

This change prevents the workflow from overwriting the same chart version
multiple times by restricting publishing to tag pushes only.

Changes:
- Remove 'branches: [main]' trigger from publish workflow
- Add strict version validation that requires at least one chart to match the tag
- Fail the workflow if no chart matches the tag version (prevents accidental overwrites)

This ensures Helm chart versions remain immutable once published, following
best practices for package management.
As pointed out by @butonic, the version check should support versions
like 0.1.2-1 for bug fix releases as documented in CONTRIBUTING.md
- Add workflow_dispatch input for version suffix (default: test)
- Manual triggers now build to helm-charts-test/ namespace
- Test builds use timestamp-based versions: {version}-{suffix}.{timestamp}
- Ensures clear separation between official releases and test builds
- Official releases remain in helm-charts/ namespace (tag pushes only)
@michaelstingl
Copy link
Contributor Author

@butonic Thanks for catching the pre-release version issue! Fixed in 45a8ad1.

However, while implementing this, I discovered a much more serious problem: The workflow was publishing charts on EVERY push to main, potentially overwriting the same version multiple times. This violates the fundamental principle that Helm chart versions should be immutable.

I've addressed this with additional commits:

  • fcc1c7e - Only publish on tag pushes (removed main branch trigger)
  • cf1e9aa - Added test build support for manual triggers (separate namespace)

Now:

  • ✅ Official releases: Only on tag push to helm-charts/
  • ✅ Test builds: Manual trigger to helm-charts-test/ with timestamp versions
  • ✅ Pre-release versions like 0.1.2-1 are supported

This should prevent accidental version overwrites and follow Helm best practices.

@michaelstingl
Copy link
Contributor Author

@butonic @micbar This PR needs urgent attention as it fixes a critical issue: the workflow is currently publishing charts on EVERY push to main, potentially overwriting the same version multiple times. This violates Helm's immutability principle.

With each new merge, the problem gets worse. Even though we're in 0.x.x (pre-stable), users and automation still expect that a published chart version doesn't change its content.

The PR:

  • ✅ Fixes the workflow to only publish on tag pushes
  • ✅ Adds version consistency checks
  • ✅ Addresses all feedback from @butonic

Could you please review and merge this soon? Thank you!

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Release governance and versioning strategy

2 participants