PEP 735: Dependency Groups in pyproject.toml

As soon as a [project] table is present, a number of tools will treat the source tree as containing a package, which drives all kinds of behaviors. It is not keyed off of the [build-system] table, and that behavior is specific to uv.

So in the broader ecosystem, any behaviors which you might associate with uv’s handling of no-build-system are probably tied to no-build-system and no-project.


Unless I’ve lost track, the greatest depth of discussion happened in the thread which most-directly preceded this PEP:

(and where, funnily, I was pretty much just an observer and didn’t comment much if at all)


I would say that we are thinking about at least 3 different kinds of projects, probably quite a few more. Collections of scripts are amongst the support targets, but so are…

  • packages which are applications
  • applications which are not packages (e.g., some non-python-related build process which incorporates python components)
  • libraries (i.e., the most “traditional” packages)
  • applications which can use a python build process but don’t really care (e.g., webapps which need dependency locking but don’t have any particular need to build a wheel)

I would not try to define the suite of covered scenarios in any prescriptive or narrow way. Any directory containing a pyproject.toml file is covered, if the developer wants to use [dependency-groups] in a spec-compliant manner.

2 Likes