Manually listing transitive dependencies seems like a step backwards to me. Isn't the whole point of setuptools/distutils that each component manages its own list of dependencies? How will this scale to dozens of transitive dependencies and busy development teams where dependencies are revved frequently. I really liked what Maven did for Java and therefore liked what pip is trying to do for Python.

just in case it's not clear, if you package everything and dump the tars into a directory, then there's no listing everything, just maintain the install_requires listings for each project.

it's just this:    pip install --find-links=/local/packages  my-top-level-app==X.Y

but if you don't package, and pip stops processing dependency links, then yes, you will end up putting all the vcs urls into one requirements file per top-level app.