-
Notifications
You must be signed in to change notification settings - Fork 9.6k
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
go.mod,vendor,backend: update coreos/etcd dependency to v3.4.9 #25554
Conversation
Codecov Report
|
ed9d220
to
66fca7c
Compare
I updated this PR to remove the vendor directory and rebase off master. I can't look at the logs without granting CircleCI read and write access to my entire Github account, so if someone could pull the logs here I would appreciate it. I ran the tests locally and they passed. |
Thanks, sorry, it's been about six months since I submitted the PR so I'm not surprised the tests aren't passing. Let me take a look. |
@kevinburkemeter Thanks! I was answering your question you had here, but I want to be sure to ask -- what does upgrading the dependency solve (is it "cleaning up dependencies"?)? If you do choose to go forward, I can request review from the etcdv3 backend maintainer (the etcdv2 backend has no maintainner currently) |
I'm a little hesitant to grant CircleCI full access to every repo I have access to, so I'm unsure of the best way to view the test failure output. |
Yes essentially, the current version of the commit that Terraform depends on imports a lot of stuff and the newer version doesn't which seems better from a depending-on-code standpoint. |
Ah, I can reproduce at least one failure locally. |
@kevinburkemeter Seems like you got it, but there's a test failure:
I'm getting notifications on this PR so I can moderate this portion of things, I sympathize with not wanting to grant all-the-repos access :) Additionally for backend-PRs, it's general practice to include a block of test results from running the particular backend's tests so the maintainer can see they pass (we don't have a CI setup to run each individual backend on this project) |
OK, I set up a new Github account solely to grant access to CircleCI, and I'm now getting ths output, but I'm not sure it's related to my changes.
|
Okay, so, the test failures are coming because the new version of etcd also tries to call I think it's bad that etcd is doing that but seems like a problem that might come up again. One way to solve this would be to keep the old etcd output but maybe that's not a permanent solution, and it would be better to move the |
2218ad1
to
310f3df
Compare
I fixed the tests by forcing "github.com/coreos/pkg/capnslog" - which gets imported later on anyway - to import/run its init function before internal/logging/logging.go, which means that the log.SetOutput call in the latter wins. |
go.mod
Outdated
go.uber.org/atomic v1.3.2 // indirect | ||
go.uber.org/multierr v1.1.0 // indirect | ||
go.uber.org/zap v1.9.1 // indirect | ||
go.etcd.io/etcd v0.5.0-alpha.5.0.20210123184945-d51c6c689ba3 |
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.
Note this tag corresponds to the "release-3.4" branch of etcd, I'm not sure why Go is not able to report the tag correctly.
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.
The issue here is that release-3.4
is not a valid version. The correct latest tag for that release appears to be v3.4.14
.
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.
OK, it looks like the etc packages are not setup correctly to be imported with a version > 1. This is the best go can generate since a version v3.4.14 cannot be imported by that name.
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.
Yeah, I wish the imports worked, my understanding is that the version issues will be fixed in version 3.5.
It's difficult to see without the vendor directory but the net result is a loss of about 36,000 lines of code in imported packages, if you vendor both |
Alright, I've requested @bmcustodio for review, who's the current etcdv3 backend maintainer, to check this one out :) |
21fb567
to
e961acb
Compare
etcd rewrote its import path from coreos/etcd to go.etcd.io/etcd. Changed the imports path in this commit, which also updates the code version. This lets us remove the github.com/ugorji/go/codec dependency, which was pinned to a fairly old version. The net change is a loss of 30,000 lines of code in the vendor directory. (I first noticed this problem because the outdated go/codec dependency was causing a dependency failure when I tried to put Terraform and another project in the same vendor directory.) Note the version shows up funkily in go.mod, but I verified visually it's the same commit as the "release-3.4" tag in github.com/coreos/etcd. The etcd team plans to fix the release version tagging in v3.5, which should be released soon.
Rebased the commit into #29200 to see if we want to merge this in. |
I'm going to lock this pull request because it has been closed for 30 days ⏳. This helps our maintainers find and focus on the active contributions. |
etcd rewrote its import path from coreos/etcd to go.etcd.io/etcd/v3.
Changed the imports path in this commit.
This lets us remove the github.com/ugorji/go/codec dependency, which
was pinned to a fairly old version. The net change is a loss of 30,000
lines of code in the vendor directory. (I first noticed this problem
because the outdated go/codec dependency was causing a dependency
failure when I tried to put Terraform and another project in the same
vendor directory.)
One oddity is that the commit shows up in go.mod as 3.3.0 but is
actually after 3.4.9, there's some discussion of that (and how to
resolve it) here.
etcd-io/etcd#12068 (comment)