carvel-dev / carvel-dev/kapp-controller
version constraints consider build metadata to be meaningful
- Dominant language
- Go
- Stars
- 323
- Forks
- 127
- Avg merge
- 2d 10h
- Merged PRs (30d)
- 6
Description
**What steps did you take:**
Deploy a Package with version `0.0.0+build.1234`
Deploy a PackageInstall with version constraint `0.0.0`
**What happened:**
The PackageInstall could not find a matching version
**What did you expect:**
Build metadata is ignored in the version comparison following the Semver 2.0.0 spec and the PackageInstall successfully reconciles.
**Anything else you would like to add:**
https://github.com/carvel-dev/semver/ (included via vendir) is used for version comparisons. (Issues aren't enabled on semver repo)
https://github.com/carvel-dev/semver/pull/1 added Build Metadata to the Compare function for deterministic sort. As Compare is also wrapped by all the LT/GT/EQ/NE functions this has the side effect that "0.0.0".EQ("0.0.0+123") changed from true to false.
https://github.com/carvel-dev/semver/blob/master/v4/semver_test.go#L154 still states that build should be ignored, but the test implementations assert that it is not ignored.
**Environment:**
- kapp Controller version (execute `kubectl get deployment -n kapp-controller kapp-controller -o yaml` and the annotation is `kbld.k14s.io/images`): v0.44.1
- Kubernetes version (use `kubectl version`): 1.26.6
---
Vote on this request
This is an invitation to the community to vote on issues, to help us prioritize our backlog. Use the "smiley face" up to the right of this comment to vote.
👍 "I would like to see this addressed as soon as possible"
👎 "There are other more important things to focus on right now"
We are also happy to receive and review Pull Requests if you want to help working on this issue.
Contributor guide
Assessment
This issue has not been assessed yet.