[EMAIL PROTECTED] wrote:
> On Thu, Jun 12, 2008 at 7:11 AM, Niall Pemberton
> <[EMAIL PROTECTED]> wrote:
> 
>> I would agree that for Lang that *if* the API change breaks
>> compatibility, then a package name change would be appropriate - but
>> I think its a mistake in general to start making decisions along the
>> lines JDK 1/5/Generics == package rename BEFORE there are any
>> concrete proposals on the table.
> 
> Perhaps we need to come up with a standardized versioning strategy for
> Commons projects, then.  A simple rule might be that if you're
> breaking compatibility, you have to jump major versions and change
> your package names (I would argue that whenever we jump version
> numbers, we should change package names to match to keep things
> consistent).  I keep bringing this up, but it never gets anywhere.
> I'm kind of stubborn like that I guess. :)
> 
> If merely jumping to JDK5 language level doesn't break API
> compatibility, then let's not jump to a new major version.

Well, just to throw in a different thought: Package name change is only 
necessary if both versions implement types with same names that are 
incompatible. That is what ASM did and why the problem exists at all. If only 
one class of 100 is incompatible, it might be better to introduce the new one 
with a different name instead of renaming the complete package. However, this 
only applies if the new version is a drop-in replacement. If classes have been 
removed (like the enum package), it must be still possible then to have both 
versions in the CP as long as the new one comes first. Nevertheless this 
scenario is much more difficult to handle and from the maintenace PoV it might 
be easier to rename the package altogether then.

Therfore - depending on the nature of change - we can either introduce a new 
class name, rename only a subpackage or do so for the complete project. 
Additionally we can always ship an additional compatibility package that can be 
used as complete replacement of an old version in combination with a newer one.

- Jörg

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to