这是indexloc提供的服务,不要输入任何密码
Skip to content

Support for uv relative path editable dependencies #36121

@rarkins

Description

@rarkins

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:

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#2packages/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

Metadata

Metadata

Assignees

No one assigned

    Labels

    manager:pep621Python pyproject.toml filespriority-3-mediumDefault priority, "should be done" but isn't prioritised ahead of others

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions