Bug 539747 - The Acceleo features shouldn't "include" their dependencies
Summary: The Acceleo features shouldn't "include" their dependencies
Status: NEW
Alias: None
Product: Acceleo
Classification: Modeling
Component: Core (show other bugs)
Version: unspecified   Edit
Hardware: PC Windows 10
: P3 normal
Target Milestone: ---   Edit
Assignee: Project Inbox CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2018-10-03 05:48 EDT by Laurent Goubet CLA
Modified: 2019-03-26 11:47 EDT (History)
2 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Laurent Goubet CLA 2018-10-03 05:48:58 EDT
The Acceleo features shouldn't "include" their dependencies (guava, kohsuke, antlr).

Including the dependencies within the Acceleo features mean that we end up with an exact required version when building the features instead of the range that we really depend on.

acceleo depends on guava [15,22) but since the feature includes guava, we end up building a feature that will include guava 21 since that is what's currently available when we build:

<plugin
         id="com.google.guava"
         download-size="2612"
         install-size="5867"
         version="21.0.0.v20170206-1425"
         unpack="false"/>

The dependencies should be present in the update site so as not to force users to add orbit as an available update site when installing, but we shouldn't force an exact version from the features.
Comment 1 Eclipse Genie CLA 2018-10-04 04:32:34 EDT
New Gerrit change created: https://git.eclipse.org/r/130386
Comment 3 Tomasz Babczy?ski CLA 2019-03-24 08:43:22 EDT
You are right that dependencies are dependencies and should not be included in the acceleo features. No doubt.
But the current solution triggered an issue. I don't open new bug because I'd like to discuss it first.
Now installing the acceleo we end up with the com.google.guava plugin. The plugin doesn't belong to any feature. 
Maybe it is a bug in the equinox, but the root user, or more generally - the installer, run elipse with the central configuration and uses equinox.simpleconfiguration strategy with the build.info file where guava plugin is listed. Other users use their own local configuration without this file by default. They use the platform.xml strategy or scanning the pool directories. Both strategies ignore bundles without their features and guava is unavailable for them. Maybe the solution is to make com.google.guava.feature not only the plugin?

btw: the official update site contains 3.7.7 as the newest one while eclipse update site - 3.7.8

btw2: ocl seems not being on the dependency list
Comment 4 Laurent Goubet CLA 2019-03-26 09:07:23 EDT
Hello Tomasz,

I'm not entirely sure what your issue is?

Acceleo depends on Guava, so we're still packaging guava in our update site so that it is available for users installing Acceleo. We're just not forcing a specific version.

Installing Acceleo through p2 will work since guava is available. If the installer somehow ignores it, then it would be a bug of the installer as far as I see it?
Comment 5 Tomasz Babczy?ski CLA 2019-03-26 11:47:10 EDT
Hi Laurent,
 I mean not installer but rather Target Platform recognizer issue. When I return home where I have debugged it I will put the responsible classes and methods names. The legacy(?) simpleconfiguration strategy finds the plugin correctly but the newer ones ignore it because the com.google.guava (and not only it) is not a part of any feature. The man who installed the eclipse (the most of users) use the simple strategy but in shared environment users different from the installer don't by default. I'm not sure whether the plugin should be enveloped in feature. If yes, somebody should make such package (maybe Obeo, maybe Google, maybe ...) - the issue at our side. If not, the equinox shouldn't ignore unfeatured (unmanaged) plugins - the issue at their side. I don't know which answer is correct.