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 archiveViola! Setuptools is no longer required to build setuptools, and the installation process is fully compliant with Python PEPs.