On Aug 24, 2008, at 1:34 PM, Nick Baumberger wrote:

Dear Cocoon-ers,

Can somebody tell me where cocoon is heading after release 2.2 ? I did not follow the mailing list for around a year, being back now I am shocked by the recent announcement regarding cocoon 3 which seems to me a complete break with what has been achieved so far - or have I just missed something ?

Okay, here is the deal as far as I understand it. I'm not a Cocoon committer, but I sort of follow the dev list, and I feel pretty confident that I can answer your question. Arguably one of the committers should answer this, but they haven't so I'll take a whack at it. I should probably dig up pointers to threads in the mail archives for you... but I'm not going to, because I am too lazy, sorry! :-)

Anyway — over the last few years there have been many discussions as well as a couple of experiments in the directions of (a) making Cocoon more lightweight (e.g. fewer dependencies, smaller memory footprint and/or less configuration) and/or simpler (in design and/or usage), and/or (b) just recasting the core concepts of Cocoon (e.g. pipeline, sitemap etc.) into different forms to see what sort of system would result and what it would be like to use. Sorry for all the "and/or"s in there, but anyway, you get the idea. I remember Antonio Gallardo's "Butterfly" (I think that was his project) along these lines. These can be thought of as "R&D" for Cocoon; my impression with them has been that of "science fair projects" to explore and gain experience with ideas and approaches.

The latest of these was last year. A couple of Cocoon committers got together with one other guy who wasn't a Cocoon committer, and they said "let's see if we can't trim Cocoon down and simplify it", and they had some core things that in mind they cared about and some other things they were willing to just leave out in the interest of keeping things simple. So they started work on this, and after a pretty short period of time realized that what they had come up with was a rewrite of a lot of the important parts of Cocoon, plus a little some new stuff, minus a whole lot of stuff that (a) they didn't need, and/or (b) hadn't figured out what to do with yet or whether/how it would fit in what what they had just created. So they didn't really start out intending to rewrite Cocoon; it was supposed to be more of just a refactoring, but in the end it turned out to be a "fait accompli" rewrite, albeit an incomplete one.

So now they had to figure out what to do with this thing they had created, so they showed it around to the rest of the Cocoon dev community, and the consensus was that it was pretty cool and deserved to benefit from continued development. So then they had to figure out what to call it, and this was really motivated by nuts-and-bolts concerns about what to call things in the Subversion repository, what to call the Maven artifacts, etc. There was a necessity to nail down this "naming" question, driven by some immediate, pragmatic concerns. The thing everyone agreed on was this the new thing was still half- baked or at least going to be a work in progress for some time, and nobody knew (and I think they still don't know) whether or when it was going to be able to "become Cocoon". The thing had originally been called "Corona", but apparently there was some legal jeopardy associated with continuing with that name, e.g. publishing artifacts under it, and so the search began for a new code name, and there were long threads of discussion in which many new possible code names were suggested and then shot down for reasons such as being lame-sounding, or already in use by some other project/product/company, or being suggestive of something unpleasant in some other language, etc., etc. until everybody was just worn out and sick of the whole discussion.

So then somebody said "why don't we just call it Cocoon X.Y" where X.Y is far enough out beyond "2.2" that the current lineage of releases based on trunk is not going to "run into" X.Y any time soon. That way, either

(a) Cocoon X.Y will turn out to be just a big brain-fart that doesn't amount to anything; in that case the releases would end up just skipping "around" X.Y, e.g. from X.Y-1 to X.Y+1, or whatever the case may be; or,

(b) Cocoon X.Y..Y+n will turn out to be the golden path to Cocoon nirvana, in that case it will mature to where everything we reasonably need from Cocoon will be there, e.g. the blocks will all work or be able to be made to work; in that case, Cocoon 2.* would go into "maintenance mode" (much like 2.1.* today), and Cocoon X.Y+n would be blessed as the future of Cocoon.

(c) Cocoon X.Y could develop into something that is clearly something quite different from Cocoon and will have to go forward as an offshoot of Cocoon. Well, in that case they will be back to that unwelcome task of coming up with a new name, but at least they will have stalled it off for a while and they will only be doing it if they really need to.

There was an opinion from some legal advisor to the ASF who basically said that they only legally safe name for anything having to do with Cocoon was "Cocoon", and I'll bet somebody could even take us to court over that if the mood struck (kidding, I just made that last part up). Anyway, that sort of sealed the deal and it was decided that "X" would be "3" and Y would be "0", so there you have it... "Cocoon 3.0".

The objection was raised that calling it "Cocoon 3.0" would create FUD and confusion within the user community, and that people would see "Cocoon 3.0" and think that means "Cocoon 2.2" is a dead-end, or deprecated, "circling the drain", etc. (take your pick! :-) even thought that certainly not the case! Or that people would say "gee, I guess I should skip upgrading to Cocoon 2.2 and wait for this Cocoon 3.0". That's not the intent! It's not clear yet that Cocoon 3.x will be able to take the place of 2.2, and if it does you could be waiting a long time, quite possibly over several release cycles of the 2.2 lineage.

The answer to that objection was "yeah, but... then we'd have to come up with a name for the new thing, and we already tried that." And there was no good answer for that answer.

So basically: the long and short of it is, there is this thing called Cocoon 3.0 and it's called that because the Cocoon developers weren't clever enough to think of a good name! :-)

What will the new thing turn out to be? Nobody's quite sure yet, but it's pretty much agreed that it shouldn't affect anybody's decision process w.r.t. whether to stay with Cocoon, whether to upgrade from 2.1.x to 2.2.0, etc.

That's my story based on my interpretation of the email threads I've followed on the dev list over the last few years (especially recent months), I hope it helps. Hopefully some developer(s) can chime in here and let you know whether I've actually clarified things, or muddied the waters even worse :-)

cheers,
—ml—

Reply via email to