-
Notifications
You must be signed in to change notification settings - Fork 1.5k
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
KEP 4402: Go workspaces for k/k (first draft) #4403
Conversation
4c75316
to
bc1e6e7
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Let's do this... 👍 from me.
Some small nits on the text itself.
bc1e6e7
to
3cf83b9
Compare
Most comments addressed, added details about sequencing PRs. TBD:
|
3cf83b9
to
1910449
Compare
I doubt that we have the necessary tooling to publish a k8s.io/code-generator/v2 from Forking it as legacy-code-generator would work, but not help consumers who are using We could fork it as
I don't know how disruptive the changes will be. If we want to be nice to the eco system, then playing it safely with fork/deprecate might be better. If we want to be done quickly (= "rip off the bandage"), then we don't fork and just warn consumers about the change.
No strong opinion here. Just beware that if we start versioning it, then someone has to remember to do releases from now on because "latest" would refer to the latest release, not the master branch as it does now. |
1910449
to
33c2493
Compare
Agree |
33c2493
to
9cfb400
Compare
9cfb400
to
0563205
Compare
1871b78
to
322915b
Compare
With KEP freeze coming, I would love to have the KEP approved, so that the implementation has a chance of landing in .30 @jpbetz and @liggitt are listed as approvers. I'd appreciate even an initial ACK from @soltysh if possible? @jpbetz I took the liberty of making you PRR for this one, is it a problem if you are also approver? |
Not a problem! I've seen this being done elsewhere. |
/approve |
/lgtm |
/lgtm cancel the v2-experiment file is in the wrong folder. move that, then lgtm |
322915b
to
59faa3e
Compare
File moved |
59faa3e
to
67080bb
Compare
/lgtm |
/lgtm |
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: dims, jpbetz, liggitt, thockin The full list of commands accepted by this bot can be found here. The pull request process is described here
Needs approval from an approver in each of these files:
Approvers can indicate their approval by writing |
If it's OK, I'd like merge and iterate. If @soltysh or someone else can weigh in, it would be awesome, but I have pretty high confidence this is the right direction and any niggles will emerge in the PR. |
participating-sigs: | ||
- sig-release | ||
- sig-api-machinery | ||
status: provisional |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
need this updated to implementable by next Thursday
sigh, I missed it.
…On Thu, Feb 1, 2024 at 3:01 PM Jordan Liggitt ***@***.***> wrote:
@liggitt commented on this pull request.
________________________________
In keps/sig-architecture/4402-go-workspaces/kep.yaml:
> @@ -0,0 +1,27 @@
+title: Go workspaces for k/k
+kep-number: 4402
+authors:
+ - ***@***.***"
+owning-sig: sig-architecture
+participating-sigs:
+ - sig-release
+ - sig-api-machinery
+status: provisional
need this updated to implementable by next Thursday
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you were mentioned.Message ID: ***@***.***>
|
Sorry was out last week, but I don't have any objections. I'll keep on looking through the appropriate PRs. |
You'll have time to object as PRs queue up. The first one is for gengo, which probably doesn't affect you. Once the k/k PR(s) stabilize, you will have something proper to try. Now that 1.22 is released, I will rebase the k/k PR and it should mostly pass. Once KEPs freeze, I will push more to get PRs approved to keep the pipeline moving. |
The main Kubernetes git repo (github.com/kubernetes/kubernetes, colloquially
called "k/k") is the empdiment of evolution. When it was created, the only
way to build Go applications was GOPATH. Over time we built tooling which
understood GOPATH, and it leaked into many parts of our build, test, and
release systems. Then Go added modules, in part because GOPATH was unpleasant
and had a tendency to leak into tools. We adopted modules, but we also added
the idea of "staging" repositories - a way to eat our cake and have, too. We
get the benefits of a monorepo (atomic commits, fast iteration across repos)
and then publish those to standalone repos for downstream consumption. To make
this work with modules, we abused GOPATH even harder and wrote even more tools.
The Go project saw what we (and others) were doing and did not like it. So
they created workspaces. They
basically created a solution that is purpose-built for us.
This KEP proposes that we adopt Go workspaces and bring our tooling up to
modern standards. In fact, the author started this work in 2021 or 2022,
discovering issues along the way that the Go team has worked to resolve.
This is not a user-facing change. No k8s cluster-user or cluster-admin should
know or care that this happened. On the surface, it seems like something that
should not warrant a KEP, but:
a) KEPs are how we communicate big changes;
b) This is a big change;
c) There's some ecosystem impact to developers