On Thu, May 15, 2014 at 6:31 PM, Daniel Holth <dho...@gmail.com> wrote: > On Thu, May 15, 2014 at 6:04 PM, Marcus Smith <qwc...@gmail.com> wrote: >>> I'm of course hoping that someone uses the feature to do a >>> setup.py-command-line-interface-compatible distutils replacement >>> (rather than a distutils extension) like what Bento does with its >>> pip-compatible setup.py replacement. >> >> >> ah, I see. interesting. >> I admit my initial reaction to "quack like a setup.py" alternative build >> systems is that it sounds invasive and sneaky, and I want it to be explicit >> and overt, like it will be in metadata 2.X. >> but on the other hand, I hear you about wanting to see alternatives have >> some way to get off the ground now. > > There's a bit of a chicken-egg problem obviously. > > For the moment I am more interested in just giving people a usable > setup_requires.
Just now catching up on this, but I'm strongly in favor of fixing this issue. It's a simple addition to setuptools. I actually am about to release the first version of a package called astropy_helpers, which basically is a bundle of all the build tools used by the Astropy project so that other related projects can take advantage of them as well. This has the same chicken-egg problem--you want to be able to use astropy_helpers in setup.py, but you can't get to it without first calling setup(setup_requires=['astropy_helpers']). This can actually be gotten around by simply creating a dummy Distribution object and calling it like: from setuptools.dist import Distribution Distribution({'setup_requires': ['astropy_helpers']}) But that's an ugly hack. To that end I added bootstrap script that's imported at the top of setup.py that knows how to do this (it also has code for finding astropy_helpers as a git submodule if the project has one in its repo--useful for development). d2to1 takes a slightly different approach in that one doesn't pass anything to the normal setup() except for setup_requires=['d2to1']. Once d2to1 is bootstrapped it takes over the entire setup process, including reading additional setup_requires from setup.cfg as Daniel suggested. I'm actually planning on relaunching d2to1 with a new name (less tied to the defunct distutils2) because I still think it's a useful alternative to setup.py, while still working within the existing framework (and easily transferable to any new framework). Erik _______________________________________________ Distutils-SIG maillist - Distutils-SIG@python.org https://mail.python.org/mailman/listinfo/distutils-sig