[Zope-CMF] One or two products?

Yuppie schubbe@web.de
Fri, 22 Nov 2002 13:08:09 +0100


Chris Withers wrote:

> Hi,
>
> I think this has been discussed before but I thought I'd make a proposal
> having seen Yuppie's posts.
>
> CMF is currently a pain to install since, at a minimum, you have to
> install:
> CMFCore
> CMFDefault
> DCWorkflow

(I can't believe it, but I've heard there are still some people not 
using DCWorkflow.)

... and CMFTopic (imported by CMFDefault.Portal)

>
> ...and then there's the myriad of other products (CMFStaging, Topic,
> Wiki, etc) not to mention the myriad of yet more stuff floating about in
> the collective stuff.
>
> I think new users find this pretty intimidating and it makes the
> installation explanations a lot harder to write.
>
> What I'd like to see is either:
>
> 1. One product, called CMF, that you drop into the Products folder, that
> combines CMFCore, CMFDefault and DCWorkflow.
>
> 2. Two products. CMFCore - combining the current CMFCore, DCWorkflow and
> the bits of CMFDefault identified by Yuppie as belonging in the core.
> CMFDefault - a default layer for CMFCore that is entirely replaceable
> and not necessary to use the CMF. Maybe even change it's name to CMFDemo.
>
> Personally, I'd prefer option 1 for ease of installation and a decent
> out-of-the-box feel.
>
> What do other people think?

First I'll propose some definitions:

CMFCore:
- package (= Zope Product) of basic CMF modules
- required by all other CMF packages

CMFDefault:
- optional package
- example implementation of CMF
- the Dogbowl
- starting point for small projects and newbies

CMF*:
- optional package
- implements special features or a complete cms
- some of these packages may depend on others


I think CMF should be distributed as a set of Zope Products:
- CMFCore
- CMFDefault
- other CMF packages maintained by ZC
(That's just like it is. And yes, I'd also like to have DCWorkflow as 
part of this distribution.)


But on the other hand, trying to use my definitions there is not much 
left for CMFDefault. This is a list of CMFDefault imports:

"""
CMFWorkspaces:
from Products.CMFDefault.DublinCore import DefaultDublinCoreImpl
from Products.CMFDefault.URLTool import URLTool

CMFWiki:
from Products.CMFDefault.DublinCore import DefaultDublinCoreImpl
from Products.CMFDefault.SkinnedFolder import SkinnedFolder
from Products import CMFDefault
obj = CMFDefault.Image.Image(
obj = CMFDefault.File.File(

CMFTracker:
from Products.CMFDefault.DefaultWorkflow import DefaultWorkflowDefinition
from Products.CMFDefault.MetadataTool import MetadataTool
from Products.CMFDefault.Portal import manage_addCMFSite

CMFCollector:
from Products.CMFDefault.DublinCore import DefaultDublinCoreImpl
from Products.CMFDefault import Portal
from Products.CMFDefault.Document import Document
from Products.CMFDefault.SkinnedFolder import SkinnedFolder
from Products.CMFDefault.utils import SimpleHTMLParser, bodyfinder

CMFCalendar:
from Products.CMFDefault.DublinCore import DefaultDublinCoreImpl
from Products.CMFDefault import Portal
from Products.CMFDefault.utils import formatRFC822Headers, html_headcheck
from Products.CMFDefault.utils import SimpleHTMLParser, bodyfinder, 
parseHeadersBody
"""

I don't know if this is representative for CMF usage. What are the 
modules used by almost each CMF implementation and what are the features 
removed, ignored, hated or customized by everybody?

I'd also like to know what the plone people think about this.


Cheers,

Yuppie