[Zope-dev] Zope 2: specifying Zope2 dependency

yuppie y.2011 at wcm-solutions.de
Tue Jan 4 08:00:11 EST 2011


Hi!


Zope trunk (2.14) no longer ships with these Products:

   Products.BTreeFolder2
   Products.ExternalMethod
   Products.MailHost
   Products.MIMETools
   Products.PythonScripts
   Products.StandardCacheManagers

There are no separate Zope 2.12 compatible eggs for these Products 
because they are part of the Zope2 2.12.X eggs.

Problem is: Several Products (e.g. CMF) exist that depend on these 
Products and want to support Zope2 2.12, 2.13 and trunk. But AFAICS 
there is no way to specify all dependencies correctly in setup.py. As a 
workaround, CMF currently specifies the 'additional' Zope2 trunk 
dependencies in buildout.cfg.


If there are no objections or better ideas, I'd like to add a 
'zope212_compat' extra to Zope 2.12, 2.13 and trunk. For Zope 2.12 and 
2.13 it would be empty, for trunk it would look like this:

     extras_require={
       'zope212_compat': [
         'Products.BTreeFolder2',
         'Products.ExternalMethod',
         'Products.MailHost',
         'Products.MIMETools',
         'Products.PythonScripts',
         'Products.StandardCacheManagers',
       ],

That would make it possible to specify the Zope2 dependency this way:

     install_requires=[
       'Zope2 [zope212_compat] >= 2.12.15',
     ]

If Products drop Zope 2.12 support, they can switch to this:

     install_requires=[
       'Zope2 >= 2.13.0',
       'Products.MailHost', # required Products
     ]


Cheers,

	Yuppie


More information about the Zope-Dev mailing list