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