Previously, the attempt to move setuptools off of vendored dependencies
failed because it was not done correctly: install_requires was set to the
vendored dependencies but not setup_requires, which would have been
required to correctly specify dependencies. However, setup_requires would
have introduced circular dependencies that are impossible to correctly
resolve, so that would have simply shifted an impossible problem onto pip.

The principle issue then, is that setuptools requires setuptools to build
itself. And although, this problem was previously not worth solving because
of 'setup.py install', it is now not a difficult problem to solve if we
rethink slightly what should be included in the setuptools respository:
- Rather than re-generating egg_info on each setup.py invocation, we can
cache dist-info in the setuptools respository.
- We can implement a simple entry_points script that updates dist-info
based on the contents of setup.py, which is only runnable of course after
setuptools is installed
- We can implement the reference build backend for setuptools: simply copy
the files and dist-info into a new compliant zip archive

Viola! Setuptools is no longer required to build setuptools, and the
installation process is fully compliant with Python PEPs.
_______________________________________________
Distutils-SIG maillist  -  Distutils-SIG@python.org
https://mail.python.org/mailman/listinfo/distutils-sig

Reply via email to