Jorg Heymans wrote:

Upayavira wrote:
Thing is, we've been through that discussion before. Do we separate out
samples from main blocks, stable from unstable, supported from
deprecated? What separations do we do?
ok let's not get into this argument again then. Separating the code that
demonstrates a blocks' functionality from the block itself is the only
thing I was after - everything else can be decided later.

I will leave the directory structure as it is and just get on with things.
+1

That is a good first step, we can handle further organization later.

In the end, we will need to help users with higher level tools that
organise an increasing number of blocks in a flat hierarchy. Even if we
separate our samples and blocks, we'll soon enough end up with 120
blocks in one directory anyway - especially when creating blocks has
become much easier.
Some of our blocks have become rather large and would probably better be split into smaller blocks. The portal is one example. With the separate Ajax block CForms have in one sense allready been splitted, it might be a good idea to split it further. For the core we have allready discussed the need if splitting it into smaller parts. There are several blocks with things that probably not are used together. The databases block consist of several different ways to achieve similar tasks: ESQL, a module and action based approach and the SQLTransformer. It would IMO be better to split it in more focused blocks.

In general I think block need to be rather small and focused to be really reusable. So I would assume that we are going to have a even larger amount of blocks than we have today. Higher level tools might be great but I think we need some internal organization as well to keep it managable.

Eclipse is divided in a number of projects: http://www.eclipse.org/projects/index.html where each project project has a flat structure. Maybe we could get some inspiration from that. For Cocoon we could e.g have a core (or platform) project containing the core of today, java flow, cron and maybe some more. A presentation project with cforms, template, portal, batik, ajax, html, linkrewriter etc. And a "server side integration" project: databases, jcr, jms, ojb, slide, webdav, xmldb etc.

Furthermore we really need some kind of incubation process for new blocks. Today anybody can just add a block, but we all are supposed to be responsible for them. We need to make the process more formal.

/Daniel

Reply via email to