-
-
Notifications
You must be signed in to change notification settings - Fork 1k
Description
Unfortunately, dependabot's development has been stagnant for a while. It works well enough with pip / requirements.txt, but its uv support has many issues that weren't resolved, even though they announced it ~1.5 years ago.
Comments on details of this process and active issues can be found in this issue's comments: dependabot/dependabot-core#10478
The migration is a blocker for #1901
One small extra benefit is pre-commit hooks support: https://docs.renovatebot.com/modules/manager/pre-commit/
Why do we need this?
The core idea is to keep the automation working for dependency updates. Currently, we have dependabot in place (integrated to GitHub) but...
- It has multiple issues with modern Python tooling (https://github.com/dependabot/dependabot-core/issues?q=is%3Aissue%20state%3Aopen%20label%3A%22L%3A%20python%3Auv%22)
- It doesn't support all the ecosystems we use (missing pre-commit support).
- This is more of a personal experience but I've been a contributor of dependabot since 2020; the Python ecosystem was always suffering from a lack of maintenance effort. The Python-related modules were not in a usable state without the volunteer effort. The situation got even worse after uv's initial release. I've been in discussions with different GitHub employees / Dependabot team members over different channels for the last 1.5 years and it saddens me to tell that that effort amounted into nothing in the end. The current state of Dependabot's Python ecosystem tools poses a risk to supply chain security (Support updating
uv.lockdependabot/dependabot-core#10478 (comment))
Can't we just do it manually?
We can, but I believe that we shouldn't. It requires a not-so-small amount of effort. To ensure consistent security for the project, we need to be actively watching for all 3rd party updates and create the PRs manually. Right now, I'm handling this for a tiny portion of our dependencies. It's repetitive, and it requires the maintainer to stay vigilant. It's a perfect task for automation.
A new integration
Thanks to the benefits it provides, I don't see Renovate as an optional 3rd party - what it does is vital for any software project in this day and age. I'd be happier if Dependabot (an integrated GitHub product) were still an option, but unfortunately, that's not the case. Also, with Renovate's pre-commit support, we won't need pre-commit.ci integration for hook updates.
Required permissions
Renovate creates issues and PRs, and uses security warnings to do its job.
- The feature that needs issue creation can be disabled, but in my experience it's a useful feature: https://docs.renovatebot.com/configuration-options/#dependencydashboard
- The feature that needs to create PRs can be disabled, and we can create PRs ourselves (I wouldn't prefer that): https://docs.renovatebot.com/configuration-options/#prcreation
- The feature that needs access to vulnerability alerts can be disabled too, but I think having it enabled is a good and useful thing: https://docs.renovatebot.com/configuration-options/#vulnerabilityalerts
Please let me know if there is any detail/concern that I missed and I'll try my best to address that.