epinio / helm-charts

Epinio Helm chart
https://epinio.github.io/helm-charts/
2 stars 15 forks source link

Better changelog for helm-chart #181

Closed jimmykarily closed 1 year ago

jimmykarily commented 2 years ago

Our helm-charts repo provides very little information to users on what the release versions are, changelogs etc.

The epinio/epinio looks more like our "central" repo. Our versioned docs should follow the helm-chart versions but we should also make sure the `helm-charts' repo looks like a certral repo too.

We can create some automation to create better changelogs for helm-charts releases (collecting changelogs from the various components)

Example:

When a new release is created for the epinio helm-chart, a workflow is run which finds out which components have been bumped to which versions. For the "external" ones (minio, kubed etc), it will simply add a line in the changelog with links to old version and new version of the component (links to github releases?). For our components (epinio-server, epinio-ui) it will also copy over the changelog of each component and each version between the old and the new.

The changes on the helm-chart repo should also be included in the changelog (e.g. changes in values.yaml), like we do in epinio/epinio (collecting PRs and such).

manno commented 2 years ago

The chart-releaser can only read notes from a file. We use release-drafter in the other repos, but that can’t output to a file. Release-drafter can filter PRs by path, which we need to generate different notes for each chart.

Maybe we can run release-drafter when a new release appears, limited to the Epinio chart path, after chart-releaser has finished. Then we run our new action to collect the Epinio release notes from epinio/epinio.

olblak commented 1 year ago

As we discussed today in the grooming session we see two ways to move this issue forward

  1. Add a Changelog.md per Helm chart which by default reference the Epinio version. If some breaking change are needed then we can also mention that information there
  2. Investigate about the best way to have automated environment
enrichman commented 1 year ago

I did a couple of tests and maybe we can use the release drafter to simplify and at least track a bit better what's going on in the helm charts.

The first problem is that we have multiple charts. Fortunately we can leverage the autolaber feature to label automatically the PRs to match them with the correct chart:

autolabeler:
  - label: 'chart/test-main'
    files:
      - 'charts/test-main/'
  - label: 'chart/test-dependency'
    files:
      - 'charts/test-dependency/'

image

Once that they are correctly labeled we can create categories to wrap or exclude them, using the tag-prefix and filters to run the release draft in the way that we prefer.

For example here I've categorized the Draft Release of the main component to have also the dependency PRs in it:

categories:
  - title: 'test-main Chart'
    labels:
      - 'chart/test-main'
  - title: 'test-dependency Chart'
    labels:
      - 'chart/test-dependency'
  - title: '🐛 Bug Fixes'
    labels:
      - 'bug'

image

Once that this release is ready we can use it in our epinio main repo, copy-pasting the relevant information.