Vadim Gritsenko wrote:

Daniel Fagerstrom wrote:

Vadim Gritsenko wrote:

IIRC, we already have separated out blocks out of the core, into

  svn:/cocoon/blocks/

Where each block is treated as independent project, and has own tags/branches. With Cocoon 2.1.8 out this friday, several blocks will start having own tags.

The current structure with trunk/tags/branches under each block will become rather unconvenient as soon as we start to relase and tag things.

I would say "unavoidable" rather than inconvenient. Where would you put block's tags if not under the tags, then?

A common tags or rather release area. We only use tags for releases, so it would be clearer to call it releases.

Right now you can just check out svn:/cocoon/blocks without any problems, but with a number of tags for each blocks you soon get quite a lot to check out, then you either need to check out each blocks/<name>/trunk separately or we have to provide a directory with externals to each block trunk. But that was extremely slow when we tried that a while ago.

Yes. That was the known issue (iirc i myself brought this up back then), and back then it was recognized that svn:externals is only a temporary measure.

Having one external per block is too slow, and having one external for all blocks is not possible, so IMHO best way is to write simple sh/bat file for checking out trunks of all blocks into pre-defined directory structure. Even better if maven somehow can help out here... Either through standard tools or custom plugin...

Needing to check out a script for chrcking out Cocoon doesn't seem to increase usability. Not sure that it would work that well with IDEs either.

Read the links in http://marc.theaimsgroup.com/?l=xml-cocoon-dev&m=112790057318179&w=2 for description of a better way to solve it.

It essentially proposes [1] to move ttb's up one level. something like

  /trunk
    /cocoon
    /blocks
      /axis
      /forms
  /tags
    /cocoon-2.1.8
    /cocoon-axis-1.0
    /cocoon-forms-1.0
  /branches
    /cocoon-2.1
    ...

(note: 'releases' in [1] is 'tags' here)

Why do you think that this structure should work better?

If you want to work on all of Cocoon you just checkout trunk, no need for scripts or externals. If you want to work on a single block or a few of them you just check them out.

I would think that it is much easier to use standard ttb layout and let m2 handle each block as separate project, rather than building non standard layout.

Jorg says that the layout above works well with m2.

If I am not mistaken, following should work with m2 right away:

  /cocoon-core
    /trunk
      pom.xml
  /cocoon-blocks-axis
    /trunk
      pom.xml
  /cocoon-blocks-forms
    /trunk
      pom.xml
  /cocoon-standard
    /trunk
      pom.xml (references cocoon-core, cocoon-forms, cocoon-template)
  /cocoon
    /trunk
      pom.xml (references all blocks)

So, what do I miss?

See above.

Why do you want to reverse this and combine blocks with cocoon core?

It doesn't reverese anything, all blocks under /trunk will be independent projects, their interdependencies are completely described in the respective POMs.

Where tags and brnaches will live?

It is explained in one of the links I asked you to read: http://mail-archives.apache.org/mod_mbox/incubator-oscar-dev/200508.mbox/[EMAIL PROTECTED] I suggest that you read it. Brett Porter of Maven fame says: http://mail-archives.apache.org/mod_mbox/incubator-oscar-dev/200508.mbox/[EMAIL PROTECTED]
about top level trunk.

I explained about tags above. For branches it depends, quoting Niclas:

Branches are handled differently depending on whether it is an "experiment" (in which case it is just copied to my laboratory) or it is "maintenance" of released code, in which case I first copy the "release" into a temporary area, do the changes and then create a new "release" make readonly and so forth.

Substitute laboratory with whiteboard above.

/Daniel

Reply via email to