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