On Tue, Dec 9, 2008 at 11:01 AM, Tom Childers <tom.childers at sun.com> wrote:
>... then links may get changed and cause things to break.

> We asked the team to adopt the convention established for junit, LSARC/
> 2008/633, similar to /usr/lib:
>
>        /usr/share/lib/java/junit.jar     link to most recent version
>        /usr/share/lib/java/junit-4.5.jar
>        /usr/share/lib/java/junit-3.8.2.jar
> ...etc.
>
> However, if they place all the findbugs pieces, like
> annotations-1.3.4.jar, in /usr/share/lib/java, then we have the
> situation that multiple projects who require and deliver the same
> component can overwrite each other. annotations.jar could be changed
> to link to a different version, breaking the functionality of
> something that is already installed.


Shouldn't those <somethings> depend directly on the versioned item and
NOT on the convenience link?  That is, if I depend on junit, I should either

A) link to /usr/share/lib/java/junit.jar  IFF the interface stability
I care about
     is Committed,
or
B) link to /usr/share/lib/java/junit-4.5.jar if the interface
stability is less stable

If I link to "junit.jar", but junit's stability is, say, Volatile,
then I have, as they
say, just screwed up.  If junit (the convenience link) evolves incompatibly
out from under me, my application breaks immediately.  Braap.

Danek Duvall wrote:
> Those links need each to be delivered exactly once on a system, by just one
> package.

+1

I'd add, that package is delivered by the team that "owns" junit, and they
get to decide, based on the promises they made when exporting the
junit interface stability, when and if the convenience link(s) should change.
If they promised "Committed", then they *must* do the diligence to ensure
that the new version of junit contains absolutely no incompatible changes.

If they promised Committed, then I should be able to depend on it being
Committed, and use of the convenience link is safe.  Otherwise, for all
of the perturbations of "otherwise", it isn't.

  -John

Reply via email to