You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@depot.apache.org by Nick Chalko <ni...@chalko.com> on 2004/08/24 03:32:44 UTC

Is version compatability symetric

Does
v1.isCompatible(v2)  imply
v2.isCompatible(v1)
?
In other words  if
1.2.3 is compatible with 1.2.4   then is 1.2.4 compatible with 1.2.3 ?

My instinct is no.



R,
Nick

RE: Is version compatability symetric

Posted by Stephen McConnell <mc...@apache.org>.

> -----Original Message-----
> From: Nick Chalko [mailto:nick@chalko.com]
> Sent: 24 August 2004 07:34
> To: Depot Development
> Subject: Re: Is version compatability symetric
> 
> Stephen McConnell wrote
> 
> >
> >Hang on .. what is the argument to is isCompatible ?
> >
> >You example quotes:
> >
> >    > In other words  if
> >    > 1.2.3 is compatible with 1.2.4   then is 1.2.4 compatible
> >    > with 1.2.3 ?
> >
> >This suggests that isCompatible() is evaluating a Dewey decimal
version
> >- no? Concerning link reference - the initial page does not seem to
take
> >into consideration "major", "minor", micro" semantics.  As such I'll
> >need some confirmation - does "X.Y.Z" carry version semantics or is
it
> >simply a string?
> >
> >Steve.
> >
> >
> 
> Good questions
> from
>
http://incubator.apache.org/depot/version/javadocs/org/apache/depot/vers
io
> n/Version.html

Sorry .. but this is rubbish relative to the question posed ...

  This Main version interface. This class provides NO restrictions 
  on what and how to order and format or display version. How it is 
  created incremented or displayed is completly independent. Given 
  Version objects a and b a.equals(b) iff b.equals(a) a.compare(b) 
  == 0 iff a.equals(b) a.equals(b) --> a.hashCode() == b.hashCode() 
  a.equals(b) --> a.isCompatible(b) BUT what about a.compare(b) < 0 
  --> ! a.isCompatible(b) NOTE: Version should be implemented as a 
  Immutable object.

I want something that declares what the input argument is and what
semantics are that are applied to that argument.  The quoted class does
not define equals or compare, however, the Version class declares
isComparable().

The isComparable() function states: 

  "May this version be used in place of the specified version."

However, this just brings us back to the definition of Version. If
version is an opaque string - then this needs to be stated. If not, the
semantics need to be specified.

Stephen.

(member of the evil empire and biologically aligned with the dark lord)




Re: Is version compatability symetric

Posted by Nick Chalko <ni...@chalko.com>.
Stephen McConnell wrote

>
>Hang on .. what is the argument to is isCompatible ?
>
>You example quotes:
>
>    > In other words  if
>    > 1.2.3 is compatible with 1.2.4   then is 1.2.4 compatible 
>    > with 1.2.3 ?
>
>This suggests that isCompatible() is evaluating a Dewey decimal version
>- no? Concerning link reference - the initial page does not seem to take
>into consideration "major", "minor", micro" semantics.  As such I'll
>need some confirmation - does "X.Y.Z" carry version semantics or is it
>simply a string?
>
>Steve.
>  
>

Good questions
from  
http://incubator.apache.org/depot/version/javadocs/org/apache/depot/version/Version.html


      isCompatible

public boolean *isCompatible*(Version <http://incubator.apache.org/depot/version/javadocs/org/apache/depot/version/Version.html> version)

    May this version be used in place of the specified version.

    *Parameters:*
        |version| - the BaseVersion to check with 
    *Returns:*
        boolean



The version interface is a complete abstraction.   It has methods for 
equals,compareTo,isCompatable  and increment(String level).  And that is 
it.  No details on 1.2.3  or 1-a5  or what ever.   I just used the 
1.2.3  as an example. 

But I still want to know if isCompatible should be symmetric.
  So in the common Major.minor.point  syntax
Since 1.2.4. is compatible with 1.2.3  is it also true that 1.2.3 is 
compatible with 1.2.4   ?

R,
Nick




RE: Is version compatability symetric

Posted by Stephen McConnell <mc...@apache.org>.

> -----Original Message-----
> From: Nick Chalko [mailto:nick@chalko.com]
> Sent: 24 August 2004 06:00
> To: Depot Development
> Subject: Re: Is version compatability symetric
> 
> Stephen McConnell wrote:
> 
> >A micro version change (IMO) is a neutral with respect to semantic of
> >execution and computational interface.  As such 1.2.3 versus 1.2.4
> >changes are for all observable purposes academic.   If this is not
true,
> >then I would assert that you are actually talking about a major or
minor
> >version change in which case the question should be revised.
> >
> >Cheers, Steve.
> >
> >
> >
> The version interface it self does not know about "major" or minor.
> just isCompatible and compareTo.
> 
> So my question is Should isCompatible  be symmetric ?


Hang on .. what is the argument to is isCompatible ?

You example quotes:

    > In other words  if
    > 1.2.3 is compatible with 1.2.4   then is 1.2.4 compatible 
    > with 1.2.3 ?

This suggests that isCompatible() is evaluating a Dewey decimal version
- no? Concerning link reference - the initial page does not seem to take
into consideration "major", "minor", micro" semantics.  As such I'll
need some confirmation - does "X.Y.Z" carry version semantics or is it
simply a string?

Steve.



Re: Is version compatability symetric

Posted by Nick Chalko <ni...@chalko.com>.
Stephen McConnell wrote:

>A micro version change (IMO) is a neutral with respect to semantic of
>execution and computational interface.  As such 1.2.3 versus 1.2.4
>changes are for all observable purposes academic.   If this is not true,
>then I would assert that you are actually talking about a major or minor
>version change in which case the question should be revised.
>
>Cheers, Steve.
>
>  
>
The version interface it self does not know about "major" or minor.  
just isCompatible and compareTo.

So my question is Should isCompatible  be symmetric ? 




See
http://www.mathwords.com/e/equivalence_properties_of_equality.htm for a 
reminder of the defs.


RE: Is version compatability symetric

Posted by Stephen McConnell <mc...@apache.org>.
A micro version change (IMO) is a neutral with respect to semantic of
execution and computational interface.  As such 1.2.3 versus 1.2.4
changes are for all observable purposes academic.   If this is not true,
then I would assert that you are actually talking about a major or minor
version change in which case the question should be revised.

Cheers, Steve.


> -----Original Message-----
> From: Nick Chalko [mailto:nick@chalko.com]
> Sent: 24 August 2004 05:33
> To: Depot Development
> Subject: Is version compatability symetric
> 
> Does
> v1.isCompatible(v2)  imply
> v2.isCompatible(v1)
> ?
> In other words  if
> 1.2.3 is compatible with 1.2.4   then is 1.2.4 compatible with 1.2.3 ?
> 
> My instinct is no.
> 
> 
> 
> R,
> Nick