On Wed, May 30, 2012 at 11:54 AM, Erik Bray <erik.m.b...@gmail.com> wrote:
> On Tue, May 29, 2012 at 7:41 PM, PJ Eby <p...@telecommunity.com> wrote: > >> > I might be confused; I haven't been following the goings-on of late > with > >> > distutils2. At one point, I thought the plan was not to bless or > >> > include dependency-managing installers with the stdlib, or something > >> > like that. i.e., I thought the plan wasn't to support or bless > >> > full-service tools like buildout, easy_install, or pip, or anything > >> > comparable to them. > >> > >> Right, yeah, the plans in this area were fluid for awhile, but the > >> eventual conclusion was that the stdlib should have a command-line > >> utility capable of installing packages with dependencies. That exists in > >> default branch now; it's called pysetup. It doesn't have nearly all the > >> features of easy_install, buildout, or pip, but it can install packages > >> from an index with deps. > >> > > > > In any case, it still doesn't change the part where it's a good idea to > ship > > a static setup.cfg, with hooks only needing to run on the sdist-building > > machine, unless they are actually part of the build process. There are > use > > cases for calculated data to be in the initial setup.cfg, where the > > calculation machinery doesn't need to be on the target (like generating > the > > file list or version from revision control info). So, a setup_requires > (or > > maybe better named "build_requires") would still be helpful, but probably > > shouldn't be used for setup.cfg stability. > > That's not a bad idea for certain kinds of metadata--version/vcs info > for example. I like the idea of including a generated "static" > setup.cfg in a source dist as a solution to that kind of problem. But > that doesn't eliminate the need for setup_hooks (or even more > complicated objects like custom commands) in an sdist. > > For example, the majority of projects I work on require Numpy to build > one or two extension modules. They require hooks to check that the > numpy package is importable, and then to use numpy's API to get the > paths to the numpy headers and and them to the include_dirs for each > extension module that requires them. That's not the only one > though--one could have a whole suite of setup_hooks common to a bunch > of projects. Custom Compiler classes are a possibility now too. > > One could ship a copy of those dependencies with each project, or have > some kind of bootstrap script. But to be able to automatically > download and add build dependencies to the path (a la setup_requires) > would be much nicer. And packaging will have pysetup, so it should be > doable. (Having the same capability for test dependencies and doc > dependencies would be nice too, but not nearly as important). > Certainly. I was just saying that the generated-metadata cases need handling, too, and that people should also be informed that they don't need (and shouldn't use) setup_requires for simple metadata generation, and that it might be a good idea to call the feature "build_requires", and perhaps distinguish between "setup hooks" (for developers to have nice things) and "build hooks" (for stuff that absolutely has to run on the install machine).
_______________________________________________ Distutils-SIG maillist - Distutils-SIG@python.org http://mail.python.org/mailman/listinfo/distutils-sig