Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[tycho-user] Resolving feature version for a product

Hello ,

I am using Tycho 0.13 to build a composite product based on features where some features are built independently of the overall product. During continuous integration everything works smoothly and the local repository shares feature builds perfectly between dependent modules, i.e. letting the product build (eclipse-repository) pick up required features from the local p2 cache. However I noticed some inconsistencies with the feature version handling in the target platform resolution for the product and in the product repository assembly process. I found out there were four options to specify a dependency on a specific feature in the product file:

(1) 0.0.0 (or empty) as feature version : the latest feature version is resolved as part of the target platform and mirrored to the final product repository

(2) 1.2.3.SOME_QUALIFIER : specific version of the feature will be used for the target resolution and product repository assembly

(3) 1.2.3.<qualifier> as feature version : qualifier is always replaced by the current build qualifier, regardless whether this feature is part of the build reactor or not

(4) 1.2.3 as feature version : target resolver looks for 1.2.3.<qualifier> with the latest qualifier, whereas the mirror tool expects exactly the specified final version

For me it looks like a definite problem with (4), as the resolver interprets the version as an interval [1.2.3,1.2.4), whereas the mirror tool expects 1.2.3 version, hence failing to mirror if any 1.2.3.qualifier version existed previously which would have precedence over 1.2.3 for the target resolver. However, on the other side, if I really want to build against the latest qualifier of the specific version, (3) fails to provide me this behaviour, as the qualifier is always replaced by the build qualifier and not looked up in the target platform.

I think to provide a consistent behaviour, Tycho should differentiate in (3) whether the referenced feature is actually in the build reactor (with the same base version) or not, and replace it with the current build qualifier or interpret the 1.2.3.qualifier as an interval accordingly. In (4) the version without any qualifier should be interpreted consistently as a single version, and not an interval.

I just wonder if there are any plans to address this in the future versions of Tycho. May be it could be possible to provide a patch for it?

Thanks for response in advance.

Attachment: signature.asc
Description: OpenPGP digital signature

Back to the top