commons-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Ralph Goers <>
Subject Re: [VFS] 2.1 clirr report
Date Fri, 29 Apr 2016 19:43:06 GMT

> On Apr 29, 2016, at 10:57 AM, Josh Elser <> wrote:
> Ralph Goers wrote:
>>> On Apr 29, 2016, at 9:27 AM, Josh Elser<>  wrote:
>>> sebb wrote:
>>>> On 29 April 2016 at 16:19, Josh Elser<>   wrote:
>>>>> sebb wrote:
>>>>>> On 29 April 2016 at 15:59, Josh Elser<>  
>>>>>>>>  How does changing the package name help? Doesn't that just
push a
>>>>>>>>  NoClassDefFound error instead of some missing implementation
for a new
>>>>>>>>  method?
>>>>>> That means we change ALL the package names and the Maven coords.
>>>>>> Effectively it's a different component, and users have to change
>>>>>> import package names.
>>>>> How is that at all improving *any* level of compatibility? I really don't
>>>>> see how that is providing any service to your users. Now, instead of
>>>>> updating the version for the artifact and adding the new methods, they
>>>>> *also* have to change the package...
>>>> It's not about compatibility, it's about avoiding jar hell.
>>> Hold up now. We were talking about compatibility. I also don't know specifically
what you mean by "jar hell", but it sounds like this is not relevant to the source/binary
compatibility discussion (and thus not relevant to this thread). Please correct me if I'm
>> If a user of VFS drops in the new jar in place of the old one and their application
gets runtime errors then, by definition, binary compatibility is broken.  This can happen
if the user implemented their own FileSystem and are using interfaces that have had new methods
added. It can happen if public methods have had signatures change.  If any of these happen
then Commons policy is that the package names must change and the artifact id must change,
as the jar is no longer compatible with the old one.  This allows the old jar and the new
jar to be used side-by-side.
> Ok. Can you point me at this documentation? Apparently the issues I take with this are
more engrained into all of Commons :)

I would have to search the dev mailing list but this has been discussed in the past.  The
first link below discusses the versioning policy but does not explicitly call out changing
the package name and artifactid. The second two links are example of release announcements
for incompatible releases. <>
<> <>

  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message