Developer shares experience switching Python projects from uv to PDM, highlighting PDM’s pure-Python codebase, new 2.26.8 release with relative-time dependency cooldown, and enhanced project-management features.
# PDM Rocks!| stuartm.nz
Source: [https://stuartm.nz/2026/04/pdm-rocks/](https://stuartm.nz/2026/04/pdm-rocks/)
I've been switching all my projects from uv to[PDM](https://pdm-project.org/en/latest/)and have been really enjoying it\. It's fairly straight forward to switch from uv since it has a similar interface\. Some simple examples:
- `uv init`→`pdm init`
- `uv add django`→`pdm add django`
- `uv lock`→`pdm lock`
- `uv sync`→`pdm sync`
- `uv run manage\.py runserver`→`pdm run manage\.py runserver`\.
One of the nice things about PDM is that it's all written in pure Python\. So if you need to troubleshoot something, or figure out how something works, you can just read the source code\.
PDM put out a new release today:[2\.26\.8](https://github.com/pdm-project/pdm/releases/tag/2.26.8)\. The feature I was most interested in is the ability to use relative times for the dependency cooldown option:`pdm lock \-\-exclude\-newer 7d`
There's a lot more to like about PDM\.\.\.
- I really like the project management functionality\. You can use`pdm new my\-project`to start a new project or:`pdm init`, within an existing project\. It kicks off a brief wizard that will ask some questions about the project and gets it all set up nicely\. Similar to the`uv init`command but nicer since it prompts you to decide if this is a library or application\.
- there's a command called`pdm update`that you can use to update the dependency versions in your pyproject\.toml file\. Useful if you've got some dependencies that you added a long time ago and are still pinned to older versions\.
- And you can configure a strategy for how dependencies are added to your pyproject\.toml\. This is a bit outside of the scope of this brief post, but it relatest to PEP440 and I have configured my projects with the`compatible`strategy\. The end result is that with this strategy, if you run`pdm add django`, then you get the following added to your pyproject\.toml:`"django~=6\.0"`\. This means that you only get 6\.0\.x updates to Django\.
- Also, the project author is super responsive on Github\. I've logged two minor issues relating to the docs and both were fixed really quickly\.
There's a lot more to like, and[the docs](https://pdm-project.org/en/latest/)are well laid out and easy to read\.
I thought that switching out uv was going to be difficult, but[PDM](https://pdm-project.org/en/latest/)has made it really easy\. And I get to support and contribute to a true, open source, Python project\.
The author details the development of 'Deptool', a custom Python-based deployment and configuration management tool designed to be faster and more predictable than existing solutions like Ansible, driven by a desire for digital sovereignty and better tooling.
Community discussion about switching from Claude Opus 4.7 to Qwen-35B-A3B for a coding agent use case, seeking user experiences and performance comparisons.
A developer shares their mixed experience running Gemma4 and Qwen locally for coding tasks, noting issues with tool integration, loop handling, and task completion while asking the community for better usage strategies.
Developer achieves productive local agentic coding with Qwen3.6-35B 4-bit MLX and pi.dev tool, completing real tickets efficiently on current hardware.