On Wed, May 23, 2012 at 11:59 PM, Chris McDonough firstname.lastname@example.org 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.
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.