Suggestions for chart versioning and release management
illrill opened this issue · comments
Feature Description
Release notes
Would like some type of chart release notes. Bare minimum populate What's Changed
in the Github release, in the same way as the grafana
and loki-distributed
charts do it by just referencing PRs.
In addition to referencing PRs under What's Changed
, there could be a custom release note annotation in Chart.yaml. When a contributor creates a new version, they also overwrite the "old" release notes with the release notes applicable for this version. This could get picked up by the helm chart releaser workflow and included in the Github release. Something like this:
version: 3.2.1
[...]
annotations:
changes: |
- kind: added
description: Description of something I added in this version
- kind: changed
description: Description of something I modified in this version
- With kinds adhering to https://keepachangelog.com/en/1.1.0/
- This approach is how argo-helm handles publishing of release notes to artifacthub. For example https://github.com/argoproj/argo-helm/pull/2367/files.
Versioning
Maybe it's on its way in #330, but some guidance and enforcement of chart versioning would be good. Again, perhaps we could use argo-helm's guidelines as inspiration.
Thanks for sharing your observations, @illrill
It seems like there are several points made here at once:
- "how to bump versions" for contributors to Helm chart: that's definitely is supposed to be covered by the issue #330. Ideally, I'd like a workflow that doesn't require contributors to bump versions in the first place but it's a more broad problem than just Helm chart.
- "adding release notes for Helm charts": I've thought about this one but didn't create an issue. I suggest we consider this issue #344 as keeping track of this problem
- "use artifcathub.io for release notes": k6-operator does not have release notes on artifacthub.io now, no, but I assume it can be seen as a consequence of the point 2.
So more on "release notes for Helm charts" problem.
In general, I'm definitely inclined towards re-using the same approach that other Grafana charts utilize, whenever possible. But, not all Grafana charts have the same approach in the first place. E.g. both grafana
and loki-distributed
are within helm-charts domain, it seems. In comparison, Mimir chart does not follow this approach and it doesn't have release notes on artifacthub.io either. Currently I have an impression that k6-operator chart is more of a Mimir case than Grafana case... I admit that I haven't had time to dig into all details around those though.
That said, if anyone sees a simple and straight-forward way to add release notes to Helm releases in k6-operator (i.e. similar to what loki-distributed has), please feel free to make a PR 🙂 If not, we'll improve on this, but no promises on when exactly.
On a kind of related note, I would hardly call current Helm chart release "stable" (just today's incident), still 😞
Ah yes, I see now the grafana
and loki-distributed
charts are hosted in the helm-charts
repo itself. But could we anyway give it a try setting generate-release-notes: true
in this repo's cr.yaml? Looks like that's how they're doing it (e.g. grafana/helm-charts#2469).
I didn't necessarily mean that we should publish the chart or its changes to artifacthub.io, it was just a real-life example of how the Argo project has chosen to handle chart release notes and versioning in general, using the approach I suggested with a annotations.changes
field in the chart to get the "input" for the release note. (The "target" being artifacthub.io wasn't the relevant part).
But could we anyway give it a try setting generate-release-notes: true in this repo's cr.yaml?
Actually, yes, definitely! Thank you for the pointer 🙂