-
Notifications
You must be signed in to change notification settings - Fork 2.7k
Open
Labels
manager:pep621Python pyproject.toml filesPython pyproject.toml filespriority-3-mediumDefault priority, "should be done" but isn't prioritised ahead of othersDefault priority, "should be done" but isn't prioritised ahead of others
Description
Discussed in #35846
Originally posted by kkom May 10, 2025
How are you running Renovate?
A Mend.io-hosted app
If you're self-hosting Renovate, tell us which platform (GitHub, GitLab, etc) and which version of Renovate.
No response
Please tell us more about your question or problem
uv
supports editable dependencies specified through a relative path:
- https://docs.astral.sh/uv/concepts/projects/dependencies/#path
- https://docs.astral.sh/uv/concepts/projects/dependencies/#editable-dependencies
But Renovate doesn't update all the uv lockfiles in a monorepo using this feature.
More detailed example
In a monorepo, one Python package can depend on another. In the the example below foo
depends on shared
:
foo
[build-system]
build-backend = "hatchling.build"
requires = ["hatchling"]
[project]
dependencies = ["shared"]
name = "foo"
requires-python = ">=3.13"
version = "0.1.0"
[tool.uv.sources]
shared = {editable = true, path = "../shared"}
shared
[build-system]
build-backend = "hatchling.build"
requires = ["hatchling"]
[project]
dependencies = [
"jax==0.5.3",
]
name = "shared"
requires-python = ">=3.13"
version = "0.1.0"
When a dependency of shared
gets updated, Renovate will correctly update the uv.lock
file of shared
, but not that of foo
.
As a result foo
's lock file ends up being out-of-date / corrupted.
Here's a repro PR: kkom/renovate-uv-editable-dependencies#2 – packages/foo/uv.lock
should get updated, but wasn't.
Logs (if relevant)
Logs
Replace this text with your logs, between the starting and ending triple backticks
mruoss, kkom, akmalovaa and benedikt-bartscherkkom and benedikt-bartscher
Metadata
Metadata
Assignees
Labels
manager:pep621Python pyproject.toml filesPython pyproject.toml filespriority-3-mediumDefault priority, "should be done" but isn't prioritised ahead of othersDefault priority, "should be done" but isn't prioritised ahead of others