Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Use Semantic Versions for releases #55

Closed
EngHabu opened this issue Dec 10, 2018 · 18 comments
Closed

Use Semantic Versions for releases #55

EngHabu opened this issue Dec 10, 2018 · 18 comments
Labels
lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale.

Comments

@EngHabu
Copy link

EngHabu commented Dec 10, 2018

I don't get why are we using the weird notion of kubernetes- that breaks Go Dep sem-version matching logic... was there a reason behind it or just evolved that way?

@nikhita
Copy link
Member

nikhita commented Dec 17, 2018

I'm not sure of the history behind apimachinery releases but we do have semantic versioning for client-go. @sttts do you know why we choose to follow semver only for client-go?

@fejta-bot
Copy link

Issues go stale after 90d of inactivity.
Mark the issue as fresh with /remove-lifecycle stale.
Stale issues rot after an additional 30d of inactivity and eventually close.

If this issue is safe to close now please do so with /close.

Send feedback to sig-testing, kubernetes/test-infra and/or fejta.
/lifecycle stale

@k8s-ci-robot k8s-ci-robot added the lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. label Mar 17, 2019
@EngHabu
Copy link
Author

EngHabu commented Mar 18, 2019

@sttts... Any ideas?

@QuLogic
Copy link

QuLogic commented Apr 16, 2019

Also troublesome for Go modules, which mandate names like v1.2.3.

@EngHabu
Copy link
Author

EngHabu commented May 6, 2019

/remove-lifecycle stale

@k8s-ci-robot k8s-ci-robot removed the lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. label May 6, 2019
@EngHabu
Copy link
Author

EngHabu commented May 6, 2019

@caesarxuchao @sttts ?

@seenickcode
Copy link

Would you have any update on this @EngHabu , @caesarxuchao or @sttts ?

@EngHabu
Copy link
Author

EngHabu commented Jul 2, 2019

Unfortunately I'm not a maintainer @seenickcode, so I don't really have control one way or another...
I strongly vote for ditching kubernetes-* scheme and just stick with proper semantic versioning... it also seems that dropping kubernetes-* might not be enough... I've seen breaking changes between 1.n and 1.n+1 versions.. breaking changes should bump the major version and shouldn't be taken lightly..

@nikhita, unfortunately, client-go has the same problem... kubernetes-1.10.5 is not a proper semantic version... it almost is but in factuality isn't. If this is in your control, please do start following https://semver.org/ to the letter... or at least let us know how can we make progress on this issue... I'm not so familiar with the triage process for the different sigs... is this the right forum to make such a determination? do I need to open a PR somewhere to get votes? whatever it's, I, and I'm sure others on this thread, would appreciate some clarity here...

@sttts
Copy link
Contributor

sttts commented Jul 3, 2019

Not having semantic versions is intentional. We want them eventually, but are not able to provide a smooth go.mod experience for a number of reasons. That's why we are holding back tagging all repos as v15.0.0.

One of the issues: we probably have to move to versioned imports. This is non-trivial to do while publishing.

tl/dr: we are not moving forward with semver tags before we are sure it gives the right experience with go.mod.

@nrvnrvn
Copy link

nrvnrvn commented Jul 15, 2019

as far as I can tell kubernetes itself works around the issue by referring to filesystem, i.e. https://github.com/kubernetes/kubernetes/blob/v1.15.0/go.mod#L433

The problem is with those who want to use k8s.io/apimachinery or k8s.io/api as an external dependency. It ends up with records like k8s.io/apimachinery => k8s.io/apimachinery v0.0.0-20190221213512-86fb29eff628 in go.mod with comments like // Pinned to kubernetes-1.13.4

@sttts what is the benefit of versioned imports over semversioned go.mod references?

@sttts
Copy link
Contributor

sttts commented Jul 15, 2019

They are the only way to use go.mod the way it is supposed to be used, without having replace directives in your go.mod. We have to do that switch eventually.

@EngHabu
Copy link
Author

EngHabu commented Jul 15, 2019

Do you mind elaborating on the "versioned imports" issue you referred to @sttts? as well as the other issues blocking this move? is that documented somewhere? is it something we can help with? is it going to be some routine work for a relatively short period of time that will make everyone else's life easier?

@liggitt
Copy link
Member

liggitt commented Jul 15, 2019

Do you mind elaborating on the "versioned imports" issue you referred to @sttts? as well as the other issues blocking this move?

See discussion in kubernetes/publishing-bot#196

The likely result is that all import paths for all published kubernetes dependencies change every release (e.g. to k8s.io/client-go/v15/..., k8s.io/client-go/v16/..., etc)

is that documented somewhere?

is it something we can help with?

something like kubernetes/publishing-bot#196 is the likely place for the work

is it going to be some routine work for a relatively short period of time that will make everyone else's life easier?

It's hard to tell if frequent disruptive widespread import changes will make everyone else's life easier or not. The work to set up the system that produces those published repos should be short-lived, but once committed to that path, the changes for consumers that actually want to use latest kubernetes libraries are ongoing.

@fejta-bot
Copy link

Issues go stale after 90d of inactivity.
Mark the issue as fresh with /remove-lifecycle stale.
Stale issues rot after an additional 30d of inactivity and eventually close.

If this issue is safe to close now please do so with /close.

Send feedback to sig-testing, kubernetes/test-infra and/or fejta.
/lifecycle stale

@k8s-ci-robot k8s-ci-robot added the lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. label Oct 13, 2019
@nrvnrvn
Copy link

nrvnrvn commented Oct 14, 2019

/remove-lifecycle stale

@k8s-ci-robot k8s-ci-robot removed the lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. label Oct 14, 2019
@fejta-bot
Copy link

Issues go stale after 90d of inactivity.
Mark the issue as fresh with /remove-lifecycle stale.
Stale issues rot after an additional 30d of inactivity and eventually close.

If this issue is safe to close now please do so with /close.

Send feedback to sig-testing, kubernetes/test-infra and/or fejta.
/lifecycle stale

@k8s-ci-robot k8s-ci-robot added the lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. label Jan 12, 2020
@nikhita
Copy link
Member

nikhita commented Jan 20, 2020

Closing in favour of kubernetes/kubernetes#72638

/close

@k8s-ci-robot
Copy link

@nikhita: Closing this issue.

In response to this:

Closing in favour of kubernetes/kubernetes#72638

/close

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale.
Projects
None yet
Development

No branches or pull requests

9 participants