|Re: [p2-dev] Versions that are not OSGi compliant|
Pascal Rapicault wrote:
The tricky thing is to preserve version range semantics. In order to do that, the canonicalization needs to preserve the lexical ordering of versions so you need explicit knowledge about how the version is constituted. I'm not arguing that canonicalization is impossible. It would however not in any way remove the need for explicit handling of each type of version that is subject to it so it doesn't solve the general problem. The way I see it, that in itself makes canonicalization a less attractive choice. What benefits does it bring other then transforming valid and well known versions into something that the user will be very unfamiliar with? And what mechanism would be used to extend it?
I sent out some examples in my previous mail that I think illustrates the need for explicit handling of different types of versions.
The resolver must treat the version types as prerequisites on its environment. IU's that use types that are not around are incompatible with the current environment. The user must install something more in order to make use of such IU's.
I think we could come up with a limited set of version types that would cover the majority of cases. You have the OSGi type already. We have a type that we call Triplet that is similar but it's different in that it treats the lack of a qualifier as a higher version and it allows for 1, 2, or 3 digits in the number. We can talk to other major players (guys behind Linux distros for instance) about other commonly used version schemes. I'm pretty sure that we would be very well covered with 4-6 different types. Then, if other companies have other very special requirements, they must provide something that extend our framework. I don't see that as a big deal.
At what time is the call?