-
Notifications
You must be signed in to change notification settings - Fork 16
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
Enable Dependabot service & update dependency versions #22
Conversation
which produces an error: $ go mod vendor github.com/osbuild/weldr-client/cmd/composer-cli/blueprints imports github.com/BurntSushi/toml imports io/fs: package io/fs is not in GOROOT (/usr/lib/golang/src/io/fs)
@bcl, @ondrejbudai I'm not quite sure how to resolve the errors here. Can you take a look? |
You didn't update the vendor files. I've added a makefile target, I'm not too sure about this dependabot thing though. Why do we really need it, and is it going to help or just be one more thing to fail and debug on a regular basis? We should be checking for updated modules, maybe after each release so there is time to deal with any problems they introduce. But I'm worried about this thing becoming a constant stream of unexpected changes that interrupt other work. |
That's exactly what I did but
For all I can tell this is an upstream issue but I'm not qualified enough to figure out how to resolve it.
Because of the fact that we're pulling 3rd party libraries directly from the Internet and compiling them into our own products which then get shipped to customers there is some level of risk involved, in particular security risk. Hence the desire to keep all dependencies up to date. Dependabot is just a nice service which can take care of some of the tasks around updating dependencies. Whether or not the risks are real enough or something that "may happen but we aren't sure" I can't tell. That's why in addition to updating the dependencies we're also enabling services like Snyk and CoverityScan. In particular Snyk reports 20 high severity issues for dependencies in weldr-client, see https://app.snyk.io/org/osbuild/projects (ping me for invite link or see Slack).
That we don't know. I've used all of these services for quite some time on other open source repositories and rarely had issues with them. However these other repositories aren't written in Go so mileage may vary. In osbuild-composer we didn't have issues IIRC, you can check https://github.com/osbuild/osbuild-composer/pulls/app%2Fdependabot
I agree that it's a valid concern. The best strategy IMO is enable, measure & readjust if/when necessary. I also agree that this adds additional pressure on devel engineers to review the updates. OTOH I don't support updating modules after releases because we could miss an opportunity to resolve critical issues or even situations in which we may need to perform an urgent security release. Of course without actual data we can argue all day about this but the practice of updating your dependencies as soon as possible is relatively widespread IMO. There are many services like Dependabot. |
Have you tried https://github.com/osbuild/weldr-client/blob/main/tools/prepare-source.sh ? |
I haven't before your comment. However it results in the same error:
There are also few more changes to the source files:
|
I think those are 2 separate situations. As far as I can tell dependabot just updates to the newest, which has a high possibility of breaking things. Doing that kind of update after a release leaves time to adjust for new APIs, etc. A security issue is different, and should be a different scan and different level of priority (I'll take a look at snyk.io that you mentioned) and should be done on a regular basis with a release following soon after. It's odd that I'm not seeing the same errors you are. One difference I see is that on my F34 system I have go 1.15.14 instead of go 1.14 -- I'll try doing a similar PR from my system with new vendor files and see if the tests pass. |
In #24 I bumped the go version to 1.15 (matching what osbuild-composer is targeting) and reran prepare-source and go get and it looks ok. I was able to duplicate your error locally when I tried running prepare-source with 1.14 twice so I think it was a mismatch of the go version. I also changed the dependabot pr count to 1 instead of 5. ETA: I also found that most of the extra packages that showed up in go.mod were due to cobra, but they don't end up in the vendor directory since weldr-client doesn't actually use them. See spf13/cobra#1435 |
Note: I get an error from
go mod vendor
, not sure how to solve it.