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

Enable Dependabot for etcd if we see a good fit #14673

Closed
vivekpatani opened this issue Nov 1, 2022 · 22 comments
Closed

Enable Dependabot for etcd if we see a good fit #14673

vivekpatani opened this issue Nov 1, 2022 · 22 comments

Comments

@vivekpatani
Copy link
Contributor

What would you like to be added?

Dependabot

Should we introduce this tool?

Why is this needed?

Pros:

  1. Notifies of newer library versions (https://docs.github.com/en/code-security/dependabot/dependabot-version-updates/configuring-dependabot-version-updates) - by notifications or creates an automated PR. This helps us is keeping up with the latest versions, which in some degree may bring in bug fixes/security updates/improvements/etc.
  2. Notifies of insecure library versions (https://docs.github.com/en/code-security/dependabot/dependabot-alerts/about-dependabot-alerts) - helps us with detecting if there are any security issues with any of our libraries.

Cons:

  1. More noise from the bot (depends on how we configure it)
  2. Can sometimes fix problems, which may be a good-first-issue for some folks trying to engage with the open source community.

Please feel free to feedback, this is just a suggestion. Thanks.

@serathius
Copy link
Member

serathius commented Nov 2, 2022

I'm all for it.

More noise from the bot (depends on how we configure it)

We just want to get a PR once a week that updates dependencies in go.mod. Doesn't seem like to much noise.

Can sometimes fix problems, which may be a good-first-issue for some folks trying to engage with the open source community.

Don't think pushing toil to new contributors is a good experience for them.

@vivekpatani
Copy link
Contributor Author

@ahrtr @spzala @mitake @ptabor any thoughts?

@ahrtr
Copy link
Member

ahrtr commented Nov 5, 2022

I don't have strong opinion on this, but I think it's worth a try.

@vivekpatani
Copy link
Contributor Author

@serathius would you or one of the maintainers enable this? Seems like I'm not authorised to do this.

@serathius
Copy link
Member

serathius commented Nov 11, 2022

@vivekpatani Dependabot is enabled by adding a configuration to repository. Anyone can create a PR that adds it. Only difference for maintainers is that they can do that directly on main branch, which doesn't make sense as it voids code review.

Feel free to send the PR that adds the configuration, you just need to add a .github/dependabot.yml file. Default contents that might need some adjustments

# To get started with Dependabot version updates, you'll need to specify which
# package ecosystems to update and where the package manifests are located.
# Please see the documentation for all configuration options:
# https://docs.github.com/github/administering-a-repository/configuration-options-for-dependency-updates

version: 2
updates:
  - package-ecosystem: "" # See documentation for possible values
    directory: "/" # Location of package manifests
    schedule:
      interval: "weekly"

@vivekpatani
Copy link
Contributor Author

@serathius thank you, I'm out for a week, will to get once back, if someone takes it up before, they are welcomed, else will attend to it once back.

@sanmai-NL
Copy link

Why Dependabot over Renovate?

@vivekpatani
Copy link
Contributor Author

My only reason was first party integration. Just out of curiosity, for the problem we're trying to solve (and for the sake of extensibility), why Renovate over Dependabot? Thanks a ton for your feedback @sanmai-NL

@sanmai-NL
Copy link

Renovate has more features and more extensive platform compatibility. For example, should this product be migrated to GitLab, Renovate will still work (as in officially). Renovate also supports updating container images and smart grouped update strategies.

@sanmai-NL
Copy link

@vivekpatani
Copy link
Contributor Author

@sanmai-NL makes sense.

@serathius @ahrtr do y'all have a preference? I'm open to both. FYI: Known Limitations

@ahrtr
Copy link
Member

ahrtr commented Jan 31, 2023

We have already enabled and configured dependabot for more than 1 month.

I agree Renovate supports more platforms and more generic, but github natively supports dependabot, and it can meet almost all the requirements so far.

The only problem on dependabot (I guess most likely Renovate will have similar issue) is it automatically creates a PR for each module for exactly the same dependency. Let's work with an example. Multiple modules (e.g. client/v3, etcdctl, etcdutl, pkg, server, test) depend on github.com/dustin/go-humanize, so dependabot automatically creates the following PRs,

Obviously it doesn't make sense. It makes more sense to do all of them in one PR, So each time I need to spend about 10 ~ 20 minutes to do it manually. see ac98432#diff-f78c03795cb3f701a5a20c16aa553797113f267e781fe66033bcf35bc837919a

Usually when we bump any dependency, we also need to run "./scripts/fix.sh" to tidy up all the go.mod and go.sum files, but dependabot isn't smart enough to be configured to do it.

I do not see strong reason to replace dependabot with Renovate for now, because I only see effort, but no benefit, unless Renovate can resolve the above painpoint.

@serathius
Copy link
Member

serathius commented Feb 1, 2023

Totally agree on the pain point. Such automation should save time and not generate more toil. It's not great and we are only chugging along because @ahrtr cleans the PRs manually.

Would be great if someone could:

  • Reduce the frequency of dependabot PRs
  • Reduce number of duplicate PR
  • Make it work with multi package projects.

Not sure if those can be addressed by configuring Dependabot or migrating to Renovate, but that would be only work that would benefit the project currently.

Thanks for all the work with dependencies @ahrtr!

@sanmai-NL
Copy link

@ahrtr Why do you assume Renovate has the same limitation? And then conclude there would be no benefit? This requires proper research.

Please see https://docs.renovatebot.com/noise-reduction/.

@serathius
Copy link
Member

FYI #15313, should remove most of the spam.

@ahrtr
Copy link
Member

ahrtr commented Feb 16, 2023

@stale
Copy link

stale bot commented May 21, 2023

This issue has been automatically marked as stale because it has not had recent activity. It will be closed after 21 days if no further activity occurs. Thank you for your contributions.

@stale stale bot added the stale label May 21, 2023
@sanmai-NL
Copy link

Not stale.

@serathius
Copy link
Member

@ahrtr @sanmai-NL is there anything left to do here? We have dependabot working.

@ahrtr
Copy link
Member

ahrtr commented May 22, 2023

@ahrtr Why do you assume Renovate has the same limitation? And then conclude there would be no benefit? This requires proper research.

Note that I did not say "Renovate has the same limitation". The point is it doesn't make much sense to spend too much time to investigate Renovate, because,

  • dependabot can meet almost all the requirements so far;
  • we have lots of higher priority tasks.

@ahrtr @sanmai-NL is there anything left to do here? We have dependabot working.

I think we can close this ticket.

@stale stale bot removed the stale label May 22, 2023
@serathius
Copy link
Member

Sounds good, the summary we were able make dependabot work for us and don't see benefits of migrating to Renovate.

@sanmai-NL
Copy link

@serathius

don't see benefits of migrating to Renovate.

Uhm, that's quite a leap. @ahrtr stated he didn't even research it. The benefits I expressed. No need to research it anyway.

You guys just chose the first tech that came to mind and decided to stick with it. Fine, not rational but fine.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Development

No branches or pull requests

4 participants