[Distutils] command hooks...

Erik Bray erik.m.bray at gmail.com
Thu May 24 23:37:14 CEST 2012


On Wed, May 23, 2012 at 11:59 PM, Chris McDonough <chrism at plope.com> wrote:
> It sounds like a reasonable task for me to try out.  In the meantime we've
> had a bit of a family emergency which will take some time to overcome and I
> won't be able to dedicate much energy to this.  As a result, I have to
> declare bankruptcy here, so I'll have to live with whatever I get.

Sorry to hear about that.

> I'm hoping though that someone else will step up here and do an evaluation
> and try to get things like Pyramid and popular Zope packages installed in a
> way that makes sense for straddling Python 2 and Python 3.  I suspect if no
> one does this, it's going to be rough going.
>
>
> - C

For something like Pyramid I don't actually think it would be too
difficult to get it *mostly* working with packaging/distutils2 in its
present state.  The word is "mostly".  And that's to say nothing of
all its dependencies, though they don't all necessarily need to work
with the same installer.

For something like Pyramid the main piece that's missing is support
for an entry_points like system.  As Tarek and other have pointed out
the past, such a system could still be supported through a third-party
plugin system that works via setup hooks and custom metadata.  I think
there was even a prototype for something like that at one point...

But that raises another issue:  If packaging is going to be like a
"framework" that additional features like plugin systems or console
script generators can be tacked on to, there needs to be a way to
specify build dependencies in setup.cfg, and to have those
dependencies automatically downloaded and added to sys.path during
setup, a la setup_requires in setuptools.

I know there have been discussions and proposals in the past to add
something like this to packaging, and to amend PEP 345 to include it.
Metadata for test dependencies and docs dependencies have also been
discussed in the past.  But I think a way of adding build/setup
dependencies is critical if packaging is going to be useful as a
framework.

I have a few packages that use d2to1, which supports setup_requires
through setuptools.  Thanks to that, I'm able to make those packages
have an additional setup_requirement of a package that contains
several pre-canned setup_hooks that I use in all my projects.  I would
point out specific examples, but they're a bit obscure...

Anyways, I'm working right now to finish a software release.  But then
I want to spend some time working on this issue of adding build
requirements support to packaging and to PEP 345.  I might also work
on a plugin system that can work in packaging as a replacement for
entry_points, if no one else does.  Without these features I don't see
packaging being very successful as an installation framework, IMO.

Erik


More information about the Distutils-SIG mailing list