I am happy to announce that I have accepted PEP 643: Metadata for Package Source Distributions, which has the potential to dramatically simplify Python package metadata resolution in the future. python.org/dev/peps/pep-0643/

Soon you may be able to build reliable dependency graphs!

For some background on one problem this solves, see @di_codes@twitter.com 's 2018 article "Why PyPI Doesn't Know Your Project's Dependencies": dustingram.com/articles/2018/0

PEP 643 can't 100% fix this, but it makes it possible for a project to indicate that it doesn't have this failure mode.

Follow

With the right implementation in setuptools, 90% of packages will start cutting releases with reliable dependency metadata without any action needed by their maintainers.

You can ensure that your package will have properly annotated reliable metadata by either:

Specifying install_requires in setup.cfg or by using literals in your setup.py. If you have conditional dependencies, use environment markers:

python.org/dev/peps/pep-0508/#

When PEP 621 is implemented in setuptools, using PEP 621 for your metadata spec will also work (and is probably the best option): python.org/dev/peps/pep-0621/

Sign in to participate in the conversation
Qoto Mastodon

QOTO: Question Others to Teach Ourselves
An inclusive, Academic Freedom, instance
All cultures welcome.
Hate speech and harassment strictly forbidden.