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