Renovate won't upgrade dependencies in pyproject.toml and uv.lock with UV or PEP-621 manager #34181
How are you running Renovate?Self-hosted Renovate If you're self-hosting Renovate, tell us which platform (GitHub, GitLab, etc) and which version of Renovate.Gitlab Please tell us more about your question or problemRepository for minimal reproductionhttps://github.com/utikpuhlik/renovate-wont-upgrade-uv OverviewI migrated project from Poetry to UV package manager, so here's my project structure now: Version of renovate: 39.165.1 Renovate config: {
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
"extends": [
"config:recommended",
":dependencyDashboard",
":maintainLockFilesWeekly"
],
"timezone": "Europe/Prague",
"branchPrefix": "renovate-",
"branchTopic": "update-dependencies",
"commitMessage": "update dependencies",
"rebaseWhen": "behind-base-branch",
"recreateClosed": true
"lockFileMaintenance": {
"enabled": true
},
"packageRules": [
{
"matchManagers": ["pep621"],
"labels": ["Renovate", "Backend"],
"groupName": "Main dependencies",
"matchPackagePatterns": ["*"],
"excludePackageNames": ["pytest", "pytest-asyncio", "coverage", "pre-commit", "tqdm", "ruff"]
},
{
"groupName": "Dev dependencies",
"matchPackageNames": ["pytest", "pytest-asyncio", "coverage", "pre-commit", "tqdm", "ruff", "pandas"]
}
]
}pyproject.toml: [project]
name = "equipment-score"
version = "2.0.0"
description = "Equipment Score endpoint in fastapi, serves for calculating Equipment Score of vehicle base on params"
readme = "README.md"
requires-python = ">=3.12"
dependencies = [
"boto3>=1.36.13",
"ddtrace>=2.20.0",
"environs>=14.1.0",
"fastapi>=0.115.8",
"httpx>=0.28.1",
"kbcstorage>=0.9.2",
"loguru>=0.7.3",
"orjson>=3.10.15",
"pandas>=2.2.3",
"polars>=1.21.0",
"pydantic>=2.10.6",
"pydantic-settings>=2.7.1",
"sentry-sdk[fastapi]>=2.20.0",
"stackprinter>=0.2.12",
"uvicorn>=0.34.0",
]
[dependency-groups]
dev = [
"coverage>=7.6.10",
"pre-commit>=4.1.0",
"pytest-asyncio>=0.25.3",
"ruff>=0.9.4",
]
[tool.uv]
package = true
[tool.pytest.ini_options]
testpaths = ["tests", "app"]
asyncio_mode = "auto"
# https://github.com/pytest-dev/pytest-asyncio/issues/924
asyncio_default_fixture_loop_scope = "session"
[tool.ruff.format]
docstring-code-format = true
quote-style = "double"
[tool.ruff.lint]
extend-select = ["I", "C4", "SIM"]
ignore = []
[tool.ruff]
line-length = 88
indent-width = 4
show-fixes = true
target-version = "py312"
exclude = [
".git",
".git-rewrite",
".ipynb_checkpoints",
".pytest_cache",
".pytype",
".ruff_cache",
".venv",
".vscode",
"__pypackages__",
"buck-out",
"build",
"dist",
"node_modules",
"site-packages",
"venv",
]ExampleFor 12.02.2025 the boto3 package has latest version 1.36.17, in my Expected behaviourThe boto3 package or whatever package defined in my Logs (if relevant)Logs |
Replies: 3 comments 5 replies
|
Hi there, Get your discussion fixed faster by creating a minimal reproduction. This means a repository dedicated to reproducing this issue with the minimal dependencies and config possible. Before we start working on your issue we need to know exactly what's causing the current behavior. A minimal reproduction helps us with this. Discussions without reproductions are less likely to be converted to Issues. Please follow these steps:
If you need help with running renovate on your minimal reproduction repository, please refer to our Running Renovate guide. The Renovate team |
|
I believe that could be related to using lower bound ranges ( |
|
I am having the same issue and I need to have the python version with I need uv to be included in this line found https://docs.renovatebot.com/configuration-options/#rangestrategy Pinning the versions is not an option for my use case. Thanks! |


I believe that could be related to using lower bound ranges (
>=) for dependencies, rather than exact versions (==)? You probably want to useupdate-lockfilefrom https://docs.renovatebot.com/configuration-options/#rangestrategy, if you want to keep lower bound ranges but still want to have updates in the lock file. Alternatively, if this is not a package you intend to use in other projects, you could also consider pinning dependencies to exact versions using==.