|Re: [cross-project-issues-dev] Disabling Mylyn from SimRel + Removing related Orbit workarounds|
So how do you ensure that the necessary/important/right things are in your own repository? Certainly includeAllDependencies is the big hammer, but do you really want users to install some snapshot of all your dependencies? It seems doubtful. The obvious approach is to include a "missing" plugin in a feature.xml of a feature that is in your p2 update site because it's mentioned in the category.xml. But that might not be ideal because you might be fine with a range of versions and might not want to force your specific version to be installed (and to be contributed to SimRel, leading to duplicates). You can also mention such a plugin directly in your category.xml such that a version is available, but that one is not necessarily the one that must/will be installed to make your bundles happy. What we did in Oomph is to include some Orbit dependencies in a test feature that is included in the category.xml as uncategorized and we don't contribute the test feature to SimRel so our Orbit requirements will (hopefully) be satisfied by other projects with more restrictive version range requirements that those of Oomph...
A similar situation exists for OCL and QVTo.
OCL should use the same version of Guava as 'everyone else' so
OCL relies on the Xtext to provide it without imposing any version
bounds. Known relevant Guava incompatibilities are accommodated by
replacing incompatible functionality with local implementations.
Similarly ASM is re-used from the platform but with a lower bound
to exclude a known API incompatibility. The upper bound was
removed after ASM took to throwing new versions for each new Java
However for LPG, which few other projects use, OCL redistributes LPG. QVTo consumes the same version as OCL.
The imported version may be random, in so far as OCL / QVTo have
no idea which version is in use, but it's consistent and users
should see the version that was tested. Testing of the latest OCL
distribution on Oxygen and later platforms provides some
opportunity for detecting incompatible dependencies.
It would therefore seem that the longstanding and desirable practice of excluding Orbit has been undermined by who/whatever is providing it. If nothing else, providing it costs users unnecessary download time on a large index and may provide many opportunities for ambiguous better/slower P2 install solutions.
Please, let's revert to our longstanding practice that Orbit is not transitively available in SimRel.
Back to the top