On Nov 14, 2010, at 20:08, "Ralph Goers" <ralph.go...@dslextreme.com> wrote:

> 
> On Nov 14, 2010, at 7:43 PM, sebb wrote:
> 
>> On 15 November 2010 02:08, Ralph Goers <ralph.go...@dslextreme.com> wrote:
>>> 
>>> On Nov 14, 2010, at 5:51 PM, sebb wrote:
>>> 
>>>> On 15 November 2010 01:38, Ralph Goers <ralph.go...@dslextreme.com> wrote:
>>>>> 
>>>>> On Nov 14, 2010, at 5:34 PM, sebb wrote:
>>>>> 
>>>>>> 
>>>>>> 
>>>>>> IMO it's important to ensure that the package change really is necessary.
>>>>>> 
>>>>> 
>>>>> Somehow I thought that was accomplished by the last release candidate 
>>>>> failing to get the required votes due to the package name not being 
>>>>> changed.  If the recommendation had been made to make the API binary 
>>>>> compatible I would have done that instead of going and renaming the 
>>>>> package. I'm getting tired of wasting my time.
>>>> 
>>>> AIUI, the root cause of the failure was due to the binary incompatibility.
>>>> 
>>>> Change of package name is one solution.
>>>> 
>>>> I don't think it's necessarily the best solution here.
>>>> 
>>>> It may well turn out to be fairly easy to keep binary compatibility -
>>>> or indeed maybe some API breaks are in classes/methods that are not
>>>> intended for external use.
>>> 
>>> How do you intend to determine this?
>> 
>> The Gump tests should help here - if they don't break with the version
>> pre-package name change then obviously the changed API is not used by
>> the current set of downstream users.
>> 
>> However that's just a start.
>> 
>> There may be other changes that are acceptable breakages, e.g.
>> 
>> ERROR: 7009: org.apache.commons.vfs.util.UserAuthenticatorUtils:
>> Accessibility of method 'public UserAuthenticatorUtils()' has been
>> decreased from public to private
>> 
>> That should be OK, because the class only has static methods, so
>> should not be instantiated.
>> 
>> Seems to me it's a balance between being 100% compatible and forcing
>> 100% of downstream users to change their code.
>> 
>> For example, if a public static field represents a constant, but the
>> final modifier was accidentally omitted.
>> Adding final will break compatibility, but any code that changes the
>> constant is wrong and needs to be modified.
>> 
>> If we manage to end up with a set of "acceptable" API changes, then a
>> version change is warranted, but I think we don't need to change
>> package name.
>> 
> 
> I think I'm going to go crazy soon. 
> 
> On Nov 5 you said to keep the version at 2.0 and the package names the same. 
> James said not enough changed and the version should be 1.1.  On Nov 7, you 
> posted some output from Clirr that indicated the code is not binary 
> compatible. Based on that James recommended that the package name and 
> artifactid be changed.  So I changed all that.  Now you are saying the 
> compatibility problem isn't that bad, even though we've now started changing 
> some of the public APIs to include Java 5 generics.
> 

Wait a sec. Binary compatibility is, well, binary. I though we all agreed on 
changing the pig name. 

GG 

> If we change the package name and artifactId back then the version should 
> also be 1.1.  
> 
> Ralph
> 

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

Reply via email to