Adding a non-metadata installer-only `dev-dependencies` table to pyproject.toml

That they’re exposed to end users, as dependency metadata. You can pip install package[tests] which… is dumb; and occuldes the fact that pip install package[feature] is something conceptually very different.

They aren’t a part of metadata provided by build backends; they’re only for the project’s own development workflows.

What’s proposed here is equivalent to Poetry’s dependency groups model.


FWIW, one outcome from this could very much be that we all agree that it’s fine to use optional-dependencies for this; in which case, we should have installers (like pip) allow installing only those dependencies; and not the package itself.

5 Likes