It seems the setup_requires keyword in the setup.py is still alive and kicking with no deprecation in sight.
This makes me wonder: what should we recommend to plugin developers?
As far as I can tell, the difference is that dependencies specified in setup_requires will be installed by easy_install, not by pip and therefore settings passed to pip (e.g. --find-links concerning where to install packages from) will be ignored.
Furthermore, since pyproject.toml isn't python code but just an ini file, it avoids the chicken-and-egg problem (execute setup.py to find out what you need to execute setup.py), can potentially be used by package managers other than setuptools and wheel, making it potentially more "future proof".
On the downside, pyproject.toml is an extra file, which actually also makes a MANIFEST.in necessary. Also, setup_requires would be supported by pip versions below 10.
It seems the
setup_requireskeyword in thesetup.pyis still alive and kicking with no deprecation in sight.This makes me wonder: what should we recommend to plugin developers?
As far as I can tell, the difference is that dependencies specified in
setup_requireswill be installed byeasy_install, not bypipand therefore settings passed topip(e.g.--find-linksconcerning where to install packages from) will be ignored.Furthermore, since
pyproject.tomlisn't python code but just an ini file, it avoids the chicken-and-egg problem (executesetup.pyto find out what you need to executesetup.py), can potentially be used by package managers other thansetuptoolsandwheel, making it potentially more "future proof".On the downside,
pyproject.tomlis an extra file, which actually also makes aMANIFEST.innecessary. Also,setup_requireswould be supported by pip versions below 10.