pdm-without-use-uv
What it flags
Flags repositories and CI jobs that use PDM without use_uv = true configured.
PDM can delegate dependency resolution and installation to uv by setting one config flag. This speeds up pdm lock, pdm install, and pdm sync operations with no workflow changes.
Why it matters
PDM’s default backend uses pip’s resolver and installer, which can be slower than uv equivalents. Setting use_uv = true transparently swaps in uv for both resolution and installation, accelerating the most expensive parts of PDM’s workflow.
Current heuristic
The rule looks for:
- a repository with PDM configuration (
[tool.pdm]inpyproject.tomlor[pdm]inpdm.toml) - absence of
use_uv = truein the PDM config - (workflow rule only) a CI job that runs
pdmcommands
The rule intentionally skips:
- repositories that already have
use_uv = trueconfigured - jobs that do not run pdm commands
- repositories without visible PDM usage
When to ignore it
Ignore this finding when:
- the project relies on pip-specific behavior that uv’s resolver does not support
- the team has intentionally kept the pip backend for consistency
- the
use_uvexperimental flag causes issues with specific workflows
Suggested verification
- Run
pdm lockandpdm installwith and withoutuse_uv = true - Compare lock-resolution and installation wall-clock time
- Verify that the resulting lockfile and installed packages are equivalent