kamranahmedse / developer-roadmap

Interactive roadmaps, guides and other educational content to help developers grow in their careers.
https://roadmap.sh
Other
298.4k stars 39.24k forks source link

Add `pdm` to Python roadmap #7702

Open dan-wilton opened 2 weeks ago

dan-wilton commented 2 weeks ago

Roadmap URL

https://roadmap.sh/python

Suggestions

TL;DR: Add PDM to the Python roadmap, under the Package Managers node.

PDM is a Python package and environment manager that has gained a lot of attention in the Python ecosystem, with 7.9k+ stars on Github šŸš€

PDM features a lot of the same functionality featured in the description of the Poetry node under Package Managers, however is PEP621 compliant. It also features a lot of the functionality of the pipenv node under Environments in that it auto-creates and manages a virtual environment for you - so I'm not too sure where this fits in, though I'd suggest under Package Managers if this issue is accepted, as this seems most relevant to its core functionality.

Differing from the other libraries, PDM is a standalone installation, allowing it to also manage system Python installations (in a similar way to pyenv). It also currently has experimental support for enabling the super-fast uv dependency resolver within PDM's backend.

Here's the project description from PDM's repo:

PDM can manage virtual environments (venvs) in both project and centralized locations, similar to Pipenv. It reads project metadata from a standardized pyproject.toml file and supports lockfiles. Users can add additional functionality through plugins, which can be shared by uploading them as distributions.

Unlike Poetry and Hatch, PDM is not limited to a specific build backend; users have the freedom to choose any build backend they prefer.

Please let me know if I can help with forming a description for the node or anything šŸ˜„