Giving my Compatibility question some thought I came to the realization.
There are three kinds of changes that can be made wrt compatibility because there is two direction of compatibility.
Backwards compatible and forwards compatible.
In the common major.minor.point structure
Increment the major number mean non compatible change.
Incrementing the minor number means backwards compatible (old code will work with the new, but code using new features will not work with old)
Incrementing the point number is forwards and backwards compatible. The public interface should not change at all on point changes.
So to answer my question, No isCompatible is not symmetric.
a.isCompatible(b) does not imply that b.isCompatible(a)
R, Nick
smime.p7s
Description: S/MIME Cryptographic Signature