-
-
Notifications
You must be signed in to change notification settings - Fork 148
build: configure Dependabot #231
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
Conversation
|
Hi @yeikel and thank you very much for this PR! Unfortunately, Dependabot creates a lot of noise and the security analysis method it uses is broken by design. These are the dependencies that this action currently uses in builds and that run in containers: action-semantic-pull-request/package.json Lines 25 to 31 in ff373f4
We've recently updated all dependencies in the project. My current perspective is that the load of pull requests that Dependabot creates, causes much more trouble than what we gain from it. Something like a quarterly dependency update where the relevant dependencies are checked in detail seems more useful to me. If there is some configuration option for Dependabot where it creates a PR once every 3 months where it updates all dependencies in one batch, I think this could be a good compromise. What do you think? |
Dependabot keeps dependencies up to date in general and it is not only concerned about security upgrades. I think that it is important to keep dependencies up to date in general to get notified about new features and enhancements as well as be informed about deprecations and breaking changes as they happen. This is crucial to save development time as I personally find smaller upgrades easier to manage. Generally, I think that waiting 3-4 months to update dependencies is not desirable in general and more so when new versions might come with bug fixes (or security upgrades). it is important to note that dependabot also leverages Github Security Advisories
Dependabot does not support this. The best we have is In general, it is a good practice to avoid bundling unrelated dependency upgrades together because it complicates reverts if they are needed. Small changes are usually better in general in my experience |
|
I understand your perspective. I'd absolutely love a workflow with Dependabot where I'm alerted immediately if a dependency is used in a way that poses a security risk—please don't get me wrong. Unfortunately, as outlined in the blog post I've mentioned above, this is rarely the case. I'm sure your situation is similar, but I only have limited time and I can't afford to keep up with a lot of updates that will likely not change anything meaningful for the project. These are the options I currently see:
What do you think? |
|
Hi @amannn, I do agree that dependabot can be quite noisy, but having the latest set of dependencies tend to reduce the surface area of problems that can come up over time. Would you be interested in changing the interval to something like |
|
Thanks for chiming in @vyas-n! Monthly sounds better, but grouped updates would be a requirement from my side. Seems like the feature is in public beta now, so maybe we can add this soon! |
|
Grouped updates are now available. |
|
Hi, is there any update on this? For large corporations, these things are sometimes very important. Thanks for your open-source-work! :) |
|
@ytausch Would you be interested in finishing this PR with grouped updates and a generous interval (ideally 3 months)? |
I'd be happy to finish this PR To confirm, are you looking for a single group or more specialized groups? Any special rule?(ie: minor updates only) In my experience, grouped updates can become unusable if the group is too ambitious as it often leads to breaking changes or upgrades that are hard to reason about. For example, It is certainly easier to manage one breaking change than manage multiple ones In that sense, grouped updates need to be strategically crafted, or they'll be useless or hard to manage otherwise |
|
Ah yes, that's a smart suggestion! I guess since this repo doesn't have too many dependencies, we could keep it simple for now and do a single group for everything. If it becomes a hassle, I think I could split it at some point. But I guess it would be reasonable setting to begin with to ensure that everything is up-to-date. |
Understood, thank you! Just to confirm, one last question: Are you looking for a single group that spans both ecosystems, or would you prefer two separate groups? For instance, we can create one group for npm and another for GitHub Actions, or a single group that includes both. Since they seem unrelated, my recommendation would be to keep them as separate groups(cross-ecosystem groups can be buggy, but that's a different issue), but the choice is yours. |
|
That's a good point, I think one group per ecosystem as you suggest would be a reasonable choice! |
|
I updated it based on your feedback
You can checkout the demo in my fork GitHub Actions: yeikel#20 As a side note, your current build uses version ranges for npm. Now that we have automation in place, we could consider pinning dependencies to specific versions to improve reproducibility and make it easier to troubleshoot. For example, instead of |
amannn
left a comment
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.
Looks fantastic, thanks a bunch @yeikel!
we could consider pinning dependencies to specific versions to improve reproducibility and make it easier to troubleshoot.
The yarn.lock file in this repo should take care of pinning the exact versions, I think that should be fine.
However, I'll probably switch to pnpm in a follow-up PR that looks into dependencies, yarn has fallen quite a bit out of fashion.
|
🎉 This PR is included in version 6.0.0 🎉 The release is available on GitHub release Your semantic-release bot 📦🚀 |
Maybe I am missing something, but my understanding is that running two |
To keep our dependencies up to date and secure
See #225 to see why this is needed
See it in action : https://github.com/yeikel/action-semantic-pull-request/pulls