[Zope-CMF] Re: Eggified CMF - was Re: CMF 2.1.1 release

Tres Seaver tseaver at palladion.com
Sun Dec 30 17:02:37 EST 2007



-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Hanno Schlichting wrote:
> Tres Seaver wrote:
>> Jens Vagelpohl wrote:
>>> On Dec 29, 2007, at 18:28 , Hanno Schlichting wrote:
>>>> For the small number of CMF parts I'm +1 for individual eggs.
> 
> I understood both comments as positive votes and have done the dirty
> work of moving CMF trunk into separate parts now.

Great, thanks very much!  I know from experience how tedious / painful
that kind of work is.

> I haven't moved the
> 2.1 branches yet as it was done for CMFCore.
> 
>>> I like your argument where we could use this as an opportunity to move  
>>> packages like CMFUid out of the bundle/egg/tarball/whatever that  
>>> people get when they get the CMF. I wouldn't mind having a division  
>>> where you have...
>>>   - CMFCore (the foundation which may be used by itself to develop  
>>> other kinds of portal software)
>>>   - CMFDefault + DCWorkflow + (maybe) CMFTopic (a "finished" sample  
>>> for a CMFCore-based portal software bundle)
>>>   - CMFUid (optional add-on)
>>>   - CMFCalendar (optional add-on)
>>>   - CMFActionIcons (optional add-on)
> 
> I haven't updated the install_requires of the individual eggs yet. But
> if you for example "easy_install CMFCalendar" you should get a working
> system including its depdendencies which probably includes the rest of
> CMF as well. The same goes for the other options, so installing
> CMFDefault will pull in DCWorkflow and CMFTopic will probably include
> both CMFDefault and DCWorkflow. Careful dependency analysis is needed
> here, though.

I know of several kinds of dependencies:

 - Non-conditional imports of the target product in "mainline"
   code.  These must be represented in 'install_requires' code.

 - Conditional imports in mainline code.  I'm not quite sure how
   to deal with these, but am template to treat them the same for
   now as the "harder" imports.

 - Imports which occur only in test code.  These should be captured
   in 'tests_require'.

 - Implicit imports in ZCML (via dotted names).  For now, we should
   capture thses as 'install_requires'.  In the long term, I am tempted
   to make them part of an "extra" (yes, I know Jim hates them, but the
   only other choice is to multiply packages).  E.g.:

      extras_require={'zcml': [....]}

 - Implicit imports in GS profile code.  I think these have to be
   extras, as well.  Again, the other choice would be to move the
   profiles out into separate eggs (which might be cleaner).

 -
>> If we go ahead and break each product out into its own egg, we can
>> create one or more "meta eggs" which stitch them back together.  E.g.,
>> the meta egg could have:
>>
>>   install_requires=['Products.GenericSetup',
>>                     'Products.CMFCore'
>>                     'Products.CMFDefault',
>>                     'Products.CMFTopic',
>>                     'Products.DWorkflow',
>>                    ],
>>   extras_require={'uid': ['Products.CMFUid'],
>>                   'calendar': ['Products.CMFCalendar'],
>>                   'actionicons': ['Products.CMFActionIcons'],
>>                   'kitchensink': ['Products.CMFUid',
>>                                   'Products.CMFCalendar',
>>                                   'Products.CMFActionIcons',
>>                                  ],
>>                   }
> 
> Sounds good - except for the kitchensink name ;)

Heh.  That is a "give them something to change" gambit pawn. ;)



Tres.
- --
===================================================================
Tres Seaver          +1 540-429-0999          tseaver at palladion.com
Palladion Software   "Excellence by Design"    http://palladion.com
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.6 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iD8DBQFHeBV9+gerLs4ltQ4RAuIMAKDcR1i9nZXWPjGZ9cWxDyJL992xowCcDH8s
V0eIWbZEA5cpX0MofvP9ouY=
=XcKL
-----END PGP SIGNATURE-----



More information about the Zope-CMF mailing list