# Python Packaging Strategy Discussion - Part 1

**URL:** <https://discuss.python.org/t/python-packaging-strategy-discussion-part-1/22420>\
**Category:** Packaging\
**Created:** [January 4, 2023, 11:13am UTC](https://discuss.python.org/t/python-packaging-strategy-discussion-part-1/22420 "2023-01-04T11:13:19Z")\
**Posts on this page:** 1\
**Showing post:** 141

<div class="post-metadata">

**Author:** ![frostming](https://sea2.discourse-cdn.com/flex002/user_avatar/discuss.python.org/frostming/32/326_2.png) [@frostming](https://discuss.python.org/u/frostming)\
**Post date:** [January 16, 2023, 1:58am UTC](https://discuss.python.org/t/python-packaging-strategy-discussion-part-1/22420/141 "2023-01-16T01:58:32Z")

</div>

（Maintainer of PDM here)  
I’ve actually been following this discussion for a long time, but I’ve been hesitant to respond from what position and how to organize my language.

An interesting fact is, among the tools mentioned in the discussion, PDM and Poetry are the only ones that are not under the umbrella of PyPA, whose maintainers don’t show up here, and they are also the tools that [offer the most functionality](https://chriswarrick.com/blog/2023/01/15/how-to-improve-python-packaging/#toc-entry-6), which should be a good start of a unified package manager. Admittedly, Poetry’s package metadata format does not adhere to PEP 621(they will, hopefully), but PDM might be among the first few, if not one, that [supports PEP 621](https://github.com/pdm-project/pdm/releases/tag/1.0.0b0), shortly after it is accepted. Although PDM began its life as the only package manager to support PEP 582, it is a bit frustrating that people continue to resist adopting it because of the incomplete draft PEP, even though PDM [has switched to venv by default](https://frostming.com/2022/pdm-2-en/) after 2.0. In my opinion, PyPA seems to favor single-purpose tools that do one thing well, rather than all-in-one tools. The most adopted package managers(or build backends) inside PyPA are `flit` and `hatch`.

> [@ofek](#):
>
> I’m fine with Hatch providing this unified UX since it really is almost there already. The only thing that is out of my control is the lock file standardization which Brett discusses [here](https://discuss.python.org/t/wanting-a-singular-packaging-tool-vision/21141/30).

So hereby let me promote PDM a little: it provides all the mentioned features here and has its CLI directly inspired by npm. I am also rewriting the [build backend](https://github.com/pdm-project/pdm-backend) to provide a similar extensible interface to `hatchling`. However, PDM itself doesn’t adhere to any specific build backend and users can [choose whatever they like](https://github.com/pdm-project/pdm/issues/1504). The next step is to [add workspace support](https://github.com/pdm-project/pdm/issues/1505) similar to how `Cargo` works.

---

_[View the full topic](https://discuss.python.org/t/python-packaging-strategy-discussion-part-1/22420)._
