From c287e97c4d1cd1cd38c433547847538564b97246 Mon Sep 17 00:00:00 2001 From: Byron Williams Date: Sun, 24 May 2026 11:57:07 -0700 Subject: [PATCH 1/4] chore(renovate): switch from poetry to uv manager This repo manages dependencies with uv (uv.lock present) but renovate.json declared "enabledManagers": ["poetry", "github-actions"]. Renovate's enabledManagers is replace-not-merge, so the poetry manager was attempting to parse pyproject.toml's [project.dependencies] table, which it doesn't understand, and silently produced zero PRs. Changes: enabledManagers poetry -> uv, packageRules matchManagers poetry -> uv, removed top-level poetry block and poetryMassage postUpdateOption. --- renovate.json | 15 +++------------ 1 file changed, 3 insertions(+), 12 deletions(-) diff --git a/renovate.json b/renovate.json index de9adae..9a34bd5 100644 --- a/renovate.json +++ b/renovate.json @@ -26,7 +26,7 @@ { "description": "Group Python dependencies by type", "matchManagers": [ - "poetry" + "uv" ], "matchDepTypes": [ "dependencies" @@ -40,7 +40,7 @@ { "description": "Group Python dev dependencies", "matchManagers": [ - "poetry" + "uv" ], "matchDepTypes": [ "devDependencies" @@ -151,12 +151,6 @@ "python": { "enabled": true }, - "poetry": { - "enabled": true, - "fileMatch": [ - "(^|/)pyproject\\.toml$" - ] - }, "lockFileMaintenance": { "enabled": true, "schedule": [ @@ -191,9 +185,6 @@ }, "osvVulnerabilityAlerts": true, "transitiveRemediation": true, - "postUpdateOptions": [ - "poetryMassage" - ], "customManagers": [ { "customType": "regex", @@ -206,7 +197,7 @@ } ], "enabledManagers": [ - "poetry", + "uv", "github-actions" ] } From cd5ae7097fca21ba1263fe3e8f1f5ccfbaeaaff4 Mon Sep 17 00:00:00 2001 From: Byron Williams Date: Sun, 24 May 2026 13:07:09 -0700 Subject: [PATCH 2/4] fix(renovate): use pep621 instead of invalid "uv" manager Renovate 42.92.x has no standalone "uv" manager. The previous commit added "uv" to enabledManagers, which rejects the entire config with "Config validation errors found: ... not supported: uv". The correct manager for uv-managed Python projects is pep621 (reads PEP 621 [project.dependencies] from pyproject.toml). uv.lock regeneration is handled by RENOVATE_BINARY_SOURCE=install in the global Renovate env. See homelab-infra PR #309/#314 (May 2026) where this exact mistake was made and reverted previously. --- renovate.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/renovate.json b/renovate.json index 9a34bd5..d6e0ad2 100644 --- a/renovate.json +++ b/renovate.json @@ -26,7 +26,7 @@ { "description": "Group Python dependencies by type", "matchManagers": [ - "uv" + "pep621" ], "matchDepTypes": [ "dependencies" @@ -40,7 +40,7 @@ { "description": "Group Python dev dependencies", "matchManagers": [ - "uv" + "pep621" ], "matchDepTypes": [ "devDependencies" @@ -197,7 +197,7 @@ } ], "enabledManagers": [ - "uv", + "pep621", "github-actions" ] } From d960483bb0e75c713757be8f88f6529ae1a09e96 Mon Sep 17 00:00:00 2001 From: Byron Williams Date: Sun, 24 May 2026 18:06:52 -0700 Subject: [PATCH 3/4] fix(renovate): correct matchDepTypes for pep621 manager The pep621 Renovate manager emits depType values: - project.dependencies - dependency-groups - tool.uv.dev-dependencies Not the values used by other managers ("dependencies", "devDependencies", "dev"). PackageRules using the wrong depType silently no-op, same class of silent-failure bug as the "uv" manager trap from this remediation campaign. CodeRabbit flagged this on PR #190 with an authoritative diff. See standards manifest TOOL-014 (added 2026-05-24). --- renovate.json | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/renovate.json b/renovate.json index d6e0ad2..c9cb1ed 100644 --- a/renovate.json +++ b/renovate.json @@ -29,7 +29,7 @@ "pep621" ], "matchDepTypes": [ - "dependencies" + "project.dependencies" ], "groupName": "Python dependencies", "automerge": false, @@ -43,7 +43,8 @@ "pep621" ], "matchDepTypes": [ - "devDependencies" + "dependency-groups", + "tool.uv.dev-dependencies" ], "groupName": "Python dev dependencies", "automerge": false, From 5d74f41defe6c73c73dd3facc9c8457b786eea6b Mon Sep 17 00:00:00 2001 From: Byron Williams Date: Mon, 25 May 2026 12:41:11 -0700 Subject: [PATCH 4/4] docs: add CHANGELOG entry for Renovate enabledManagers fix Resolves the Changelog Check supplemental gate which requires an entry in CHANGELOG.md under [Unreleased] for any non-trivial change. The renovate.json swap from poetry to pep621 is the substantive change on this branch. Co-Authored-By: Claude Opus 4.7 --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5ee78fc..84936e0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -12,6 +12,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Migrated `sonarcloud.yml` to use `python-sonarcloud.yml` reusable workflow - Migrated `pr-validation.yml` to use `python-supplemental-checks.yml` reusable workflow - Removed dependency on deprecated `python-pr-validation.yml` workflow +- Switched Renovate `enabledManagers` from `poetry` to `pep621` so Renovate can detect dependencies in the uv-managed `pyproject.toml` ### Fixed