helm / chart-releaser

Hosting Helm Charts via GitHub Pages and Releases
Apache License 2.0
681 stars 113 forks source link

Portion of `chart.metadata.version` unexpectedly treated as a number #374

Open iainsproat opened 9 months ago

iainsproat commented 9 months ago

Recreation steps

  1. Install the latest chart releaser version:

    > cr version
    GitVersion:  v1.6.1
    GitCommit:   0102fa30dd78df0d0f8093c4607e6080972ff82d
    BuildDate:   2023-10-31T07:28:18Z
    GoVersion:   go1.20.10
    Compiler:    gc
    Platform:    darwin/arm64
    License:     Apache 2.0
  2. Set the helm chart version as follows:

    version: 2.18.2-branch.testing.79682.0162870
  3. run cr package

  4. we receive Error: validation: chart.metadata.version "2.18.2-branch.testing.79682.0162870" is invalid

Workarounds

iainsproat commented 9 months ago

I think the issue is that it is being parsed as semver: https://github.com/helm/helm/blob/3fc9f4b2638e76f26739cd77c7017139be81d0ea/pkg/action/package.go#L107 And it doesn't seem to be a test case covered by the semver library: https://github.com/Masterminds/semver/blob/e06051f8fcc4c8b4a4990c337b9862a2448722e5/version_test.go#L10

It seems the problem might be with the pre-release naming I have used: 2.18.2-branch.testing.79682.016a870, where the use of periods in the prerelease name branch.testing.79682.016a870 is causing it to be interpreted as semver.