Skip to content

version constraints consider build metadata to be meaningfulΒ #1338

Open
@cjnosal

Description

@cjnosal

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)
carvel-dev/semver#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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugThis issue describes a defect or unexpected behaviorcarvel-triageThis issue has not yet been reviewed for validitydiscussionThis issue is not a bug or feature and a conversation is needed to find an appropriate resolution

    Type

    No type

    Projects

    Status

    In Progress

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions