Skip to content

Migrate to renovate #2323

@ulgens

Description

@ulgens

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.lock dependabot/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.

Please let me know if there is any detail/concern that I missed and I'll try my best to address that.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions