On May 17, 2009, at 3:16 PM, Stephen Colebourne wrote:

Matt Benson wrote:
Or, to put it another way, the consensus seems to be
> that the component + the major version # makes a "project."

As I've said before, I won't try and stop this, I no longer have the moral rights here. I do believe that this approach is profoundly wrong however.

Consider an analagous case - Tapestry. Each major version of Tapestry is known, with derision, as being extremely different to the previous. This is to the extent that I, and I'm pretty sure many, many others wouldn't touch Tapestry with a barge pole now simply because we can't rely on it not being reinvented all the time.

A project name does imply something important about compatibility even across major versions in my book.

For example, if I do release Joda-Time it will simply be a version with the deprecated methods removed, and maybe a few edge cases tweaked. Its the classic commons type library (even though its not in commons). Imagine the chaos and confusion if I were to declare the 'rebooted' jsr-310 as Joda-Time 2. Unthinkable. Yet, that is exactly what is being proposed here.

Why would that be unthinkable? OTOH, if it becomes part of the JDK I guess there is no point for a Joda Time 2.

The only time it is unthinkable is if the API changes so that old applications can't use it without code changes AND the package names stay the same. It serves no useful purpose, other than to confuse everyone, to have commons-lang in proper and commons-lang-ng in the sandbox. OTOH, having a package name like org.apache.commons.lang2 makes it quite clear it isn't compatible with the current release.

I think a great example is httpclient. It used to be part of commons. Then it moved off to its own high level project. But if you go to hc.apache.org you will find a version that is very different than what most people are still using - version 3 (that might be because the main web site has been for version 4 for quite a while but the formal release only happened in February). Trying to actually find version 3 is a bit of an adventure as it is buried away under oac..But the bottom line is, Version 4 is not API compatible with Version 3. The same thing is true of Apache Maven 1 vs Maven 2.

Ralph


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
For additional commands, e-mail: dev-h...@commons.apache.org

Reply via email to