-
Notifications
You must be signed in to change notification settings - Fork 10k
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
[release-3.6] Hiding client/v2 causes dependency problem for applications which are depending on go.etcd.io/etcd/server/v3
#19670
Comments
I'm very confused how the dependency at https://github.com/etcd-io/etcd/blob/v3.6.0-rc.2/server/go.mod#L31 is working for anything ... no such module exists or is resolvable:
https://github.com/etcd-io/etcd/tree/client/v2.306.0-rc.2/client has no go.mod or v2/go.mod file ... that's required for that module at that tag to exist edit: oh... it's working when building the main server binary because the that will only work when building the server main binary, it will break when go is resolving the server dependency graph |
Copied my response here: It does exist. The problem is that it's internal, so it can't be used by module outside the repo etcd/client/internal/v2/go.mod Line 1 in 2733667
|
but locating that there means Go cannot resolve the module at the given repo+tag, so it doesn't exist from Go's perspective in a resolvable way |
Yes, it's correct. It works because the |
Go ignores |
Right. I was saying the reason why we did not see this issue ourself is because of the Let me deliver a PR to rollback #15591 |
Already resolved, and the fix will be included in v3.6.0-rc.3 (hopefully to be out tonight). |
I think it would be good to also include this change on main branch. It might be easy to forget differences between branches, so it's worth doing even if we will just clean it up in the future |
We will clean it up after 3.6.0 is out (e.g. May 2025). It's just a couple of minutes effort. |
SG |
Heads up that v3.6.0-rc.3 is out now. Should we close this issue? Or do we want to keep it open because of #19670 (comment)? |
Let's close this ticket, the v2 cleanup has already been tracked in #12913 |
Bug report criteria
What happened?
In release-3.6, the client/v2 was changed into an internal package in #15591. But the problem is that client/v2 is still used by v2discovery in etcd/server. So it's causing the dependency problem (see below) for any applications which are using
go.etcd.io/etcd/server/v3
Two possible solutions that I can think of for now:
cc @liggitt @fuweid @serathius @ivanvc
What did you expect to happen?
It shouldn't break any user applications
How can we reproduce it (as minimally and precisely as possible)?
see above
Anything else we need to know?
No response
Etcd version (please run commands below)
Etcd configuration (command line flags or environment variables)
paste your configuration here
Etcd debug information (please run commands below, feel free to obfuscate the IP address or FQDN in the output)
Relevant log output
The text was updated successfully, but these errors were encountered: