[Zope-dev] Extras (was zope.password)
Shane Hathaway
shane at hathawaymix.org
Tue Mar 10 20:03:59 EDT 2009
Stephan Richter wrote:
> On Tuesday 10 March 2009, Dan Korostelev wrote:
>>> Either you have a dependency and declare it or you don't have a
>>> dependency. Since we don't want to use "extras" anymore, I think this
>>> calls for another package which depends on zope.password and zope.schema.
>> I still don't like/get the idea of creating and maintaining extra
>> package that merely contains a vocabulary factory for another package.
>> Whatever, I reverted that change. Roger, just exclude
>> zope.app.authentication's "password.zcml" file, include
>> "zope.password" explicitly and define your own vocabulary.
>
> I think we have become dependency paranoid. And we embrace package
> proliferation instead, which in my opinion is equally bad. If you really hate
> the dependency, make it an extra requires. I know that goes against the
> latest guidelines as well...*sigh*
>
> My big problem here is that we dismiss all solutions but new packages. We want
> to minimize dependencies and not have extra includes. The only choice left is
> a separate package. We should, however try to make the number of packages a
> parameter too.
It seems to me that "extras" are a lot like Gentoo USE flags, except
that the infrastructure for USE flags is much more complete. USE flags
are an essential feature of Gentoo. Perhaps if the Python packaging
chain had similar infrastructure, there would no longer be a reason to
avoid extras and we could solve packaging and dependency problems a lot
more easily.
Here are a few things you can do with USE flags that you can't yet do
with extras:
- You can enable or disable a USE flag globally (yet override it
per-package). If you don't need X-Windows on your server, just add "-X"
to /etc/make.conf, and nothing will be built with optional X support.
If we had this feature, we would just add "-zope.component" to
buildout.cfg and nothing would be installed with optional component
architecture support.
- Packagers can specify whether a USE flag should be enabled by default.
- USE flags can cause whole chunks of code to not be compiled or
installed. I would love to be able to specify "-coptimizations" to
build a Zope app without any optional C optimizations. (That way,
tracebacks would often be more informative.)
These days I run both a Gentoo and an Ubuntu box. The Gentoo box has
more features, but fewer packages, because Gentoo doesn't have to divide
packages to avoid dependencies.
My $0.02.
Shane
More information about the Zope-Dev
mailing list