Skip to content

fix(renovate): use pep621 manager instead of invalid "uv"#79

Closed
williaby wants to merge 2 commits into
mainfrom
chore/renovate-fix-pep621-manager
Closed

fix(renovate): use pep621 manager instead of invalid "uv"#79
williaby wants to merge 2 commits into
mainfrom
chore/renovate-fix-pep621-manager

Conversation

@williaby
Copy link
Copy Markdown
Collaborator

@williaby williaby commented May 25, 2026

Summary

  • Replace "uv" with "pep621" in enabledManagers of the template's renovate.json.

Why

Renovate v42.92.x (the homelab self-hosted version) rejects "uv" as an enabledManagers value, silently discarding the entire config. Every project bootstrapped from this template was inheriting a broken config and receiving zero Renovate dependency PRs. The correct manager for uv-managed Python projects is pep621, which reads PEP 621 [project.dependencies] from pyproject.toml. uv.lock regeneration is plumbed separately via RENOVATE_BINARY_SOURCE=install in the global Renovate env.

Validation

Local run of the v42-pinned validator passes:

npx --package renovate@42.92.14 -- renovate-config-validator ./renovate.json
INFO: Config validated successfully

References

  • Memory entry: feedback_renovate_uv_manager_trap.md (this trap has now recurred four times)
  • Architecture reference: docs/reference/renovate-architecture.md § "Forbidden values" — "uv" in enabledManagers
  • Improvement plan: docs/audits/dependency-management-improvement-plan-2026-05-24.md § P0-2
  • Prior incidents: ByronWilliamsCPA/homelab-infra PR #309, PR #415

Downstream impact

After this lands, regenerate the cookiecutter for any newly bootstrapped project and the resulting renovate.json will be valid. Existing projects that were generated before this fix may still carry the broken config; those are tracked separately under the fleet sweep work.

Test plan

  • CI passes
  • Validator output shows Config validated successfully
  • After merge: next project bootstrapped from template inherits a working renovate.json

Generated with Claude Code

Summary by CodeRabbit

  • Chores
    • Updated dependency detection configuration to use PEP 621 standard for Python packages, improving consistency with modern Python packaging practices.

Review Change Stack

Renovate 42.92.x rejects "uv" as an enabledManagers value, which
silently disables the entire config. The correct manager for
uv-managed Python projects is pep621 (reads PEP 621 [project.dependencies]
from pyproject.toml). uv.lock regeneration is plumbed separately via
RENOVATE_BINARY_SOURCE=install in the global Renovate env.

Reference: feedback_renovate_uv_manager_trap.md, homelab-infra PR #309/#314.
Copilot AI review requested due to automatic review settings May 25, 2026 03:29
@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented May 25, 2026

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro

Run ID: 0de4d777-f46f-46db-b287-56faccd8d7d2

📥 Commits

Reviewing files that changed from the base of the PR and between 1fc987a and 26a9812.

📒 Files selected for processing (2)
  • renovate.json
  • {{cookiecutter.project_slug}}/renovate.json

Walkthrough

Renovate configuration files at the repository root and within the template project structure are updated to switch Python dependency management from the uv manager to the pep621 manager. The enabledManagers entries and Python package grouping rules are aligned across both configurations.

Changes

Renovate pep621 Configuration

Layer / File(s) Summary
Root template repository Renovate configuration
renovate.json
The root enabledManagers list is updated to use pep621 instead of uv for Python dependency detection in the template repository.
Template project Renovate configuration
{{cookiecutter.project_slug}}/renovate.json
Both Python package grouping rules (runtime and dev dependencies) are updated to match pep621 manager, and enabledManagers is changed from uv to pep621 to align active dependency management for generated projects.

Estimated code review effort

🎯 1 (Trivial) | ⏱️ ~3 minutes

Suggested labels

template

A carrots' dream, from uv we flee,
To pep621's simplicity!
Config files dance, both root and nested—
Python packages now properly vested. 🐰✨

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly and specifically summarizes the main change: replacing an invalid 'uv' manager with 'pep621' in Renovate configuration.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch chore/renovate-fix-pep621-manager

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Updates the Renovate configuration in this cookiecutter template to use the valid pep621 manager instead of the invalid uv value, preventing Renovate from discarding the config and restoring Python dependency update PRs for generated projects.

Changes:

  • Switch enabledManagers from "uv" to "pep621" in the root renovate.json.
  • Update the template {{cookiecutter.project_slug}}/renovate.json to match Python dependency rules and enabledManagers against "pep621".

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated no comments.

File Description
renovate.json Replaces invalid Renovate manager "uv" with "pep621" to keep the config accepted by Renovate.
{{cookiecutter.project_slug}}/renovate.json Aligns template packageRules and enabledManagers to "pep621" so generated projects get a working Renovate setup.

@williaby williaby enabled auto-merge (squash) May 25, 2026 03:39
@sonarqubecloud
Copy link
Copy Markdown

@williaby
Copy link
Copy Markdown
Collaborator Author

Closing as superseded by the v43 cutover (Phase 2, merged 2026-05-25).

Per docs/audits/v43-readiness-2026-05-24.md, Renovate v43.150.0 auto-migrates the deprecated syntax that this PR was created to fix. The cookiecutter template now validates clean against the v43 validator without any per-repo edits.

Reference:

@williaby williaby closed this May 25, 2026
auto-merge was automatically disabled May 25, 2026 19:46

Pull request was closed

@williaby williaby deleted the chore/renovate-fix-pep621-manager branch May 28, 2026 01:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants