Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [papyrus-rt-dev] Papyrus Designer dependencies in Oomph setups

There are three reasons that come to my mind.  First, that bundle dependencies only express what the particular bundle needs of API from another, but that doesn’t account for related tooling and capabilities that also support the use cases.  For example, it often happens that a product will plug in to extension points in the core/headless APIs of something, but that isn’t actually useful to the user unless the UI part of that something is also included.  But there’s no actual implementation-level dependency on those UI bundles.  In general, bundle dependencies only resolve to bundles; nothing will infer from them that any feature(s) containing those bundles should be installed, so we usually have to add those features explicitly in a setup or product definition.

Then there are the cases where we have to account for missing dependencies:  for example, many things in Papyrus (and therefore Papyrus-RT) won’t work if the element-types in the UML Types bundle aren’t installed, but that’s a dependency on models that few (if any) bundles actually declare in their manifests.  So, the integrating application (e.g., RCP, setup, etc.) has to make sure that it is accounted for.  There are better ways to fix this, but sometimes the fix would be in an external component.

And last, it may be that we want to make sure that a particular version of some dependency is used for RCP/packaging/user-experience reasons even though the application code as such can work with a much wider range.  So, declaring that dependency explicitly with the required version isn’t actually redundant.

I don’t know how many of these cases actually apply to how many of the things in our setups and RCP.

Cheers,

Christian

On 19 October, 2016 at 14:29:45, Ernesto Posse (eposse@xxxxxxxxxxxxx) wrote:

Ok, but there is one thing that I don't understand. If we remove all oep.designer.* plugins from the setup models and they still show up in the installation, then that suggests that Oomph picks up dependencies, presumably from the MANIFEST files, no? But if this is the case, then why would it be necessary to specify *any* features and plugins at all in the setup models? Why would some dependencies be implicitly brought in and not others?




On Wed, Oct 19, 2016 at 5:18 AM Peter Cigéhn <peter.cigehn@xxxxxxxxx> wrote:
Hi,

Okay, so we still have a confusion regarding why these Designer plugins were added to the Oomph tester setup in the first place. I thought that we had some good explanation for why they were originally added... :(

So I went ahead and tested this myself, and continued the removal that Christian made in patch-set 5 (compared to patch-set 4) for https://git.eclipse.org/r/#/c/83321/ by also removing the explicit dependency on the two remaining Designer plugins from the end-user setup file in preparation for the 0.8 release, leaving no explicit dependencies to the Designer plugins in the setup file itself.

And as I have suspected now for a while, this resulted in that the relevant Designer plugins are installed anyway. When checking the "Plugins" tab in the "Installation Details" dialog, there are still four Designer plugins installed, since we already have implicit dependencies from the Papyrus-RT plugins that actually need these plugins from Designer. No need at all for having any explicit dependencies in Oomph setup file, and thus no need for the dependencies from the RCP feature either.

Inline images 2

The screen shot shows the four remaining Designer related plugins that we still have some (implicit) dependencies in the latest 0.8 (nightly) build. This is the same set of plugins that you get when you install using patch-set 5 (which still have the two remaining ones, org.eclipse.papyrus.designer.languages.common.base and org.eclipse.papyrus.designer.languages.cpp.library, explicitly defined in the setup file).

I must apologize for causing so much confusion regarding this, since I really thought that these Designer dependencies existed explicitly in the Oomph tester-setup file for some good reason. I should have checked this much earlier myself, before pushing so hard on trying to align the tester setup with the RCP (and causing all the additional confusion that forced us to add them to the RCP feature where they don't even belong).

I mean, we have exactly the same kind of behavior with the RSARTE import feature, which have implicit dependencies on the RSA import in Papyrus. We never explicitly specify that we also need the plugins from the RSA import, but only bring the RSARTE import into the setup file, and all this it implicitly depends on gets installed. I would expect the same when it comes to the Designer plugins as well.

Not sure how much more "cleaning up" of these dependencies we have time for prior to the 0.8 release. But for the Oomph end-user setup file (which as I understand is not gating the 0.8 release) we should be able to remove those remaining ones as well.

/Peter Cigéhn

On 18 October 2016 at 23:18, Ernesto Posse <eposse@xxxxxxxxxxxxx> wrote:


On Tue, Oct 18, 2016 at 12:19 PM Peter Cigéhn <peter.cigehn@xxxxxxxxx> wrote:
Hi,

We have to many communication channels (developer list, Gerrit changes, Bugsillas) and too many parallell discussions right now... :)

Comments inline below

On 18 October 2016 at 18:09, Ernesto Posse <eposse@xxxxxxxxxxxxx> wrote:


On Tue, Oct 18, 2016 at 11:52 AM Peter Cigéhn <peter.cigehn@xxxxxxxxx> wrote:
Hi,

Well, the only objection to changing to much at this point in time would be that we are are really late in 0.8 release cycle. The idea of moving the idea of moving the dependencies of these plugins to other existing features is probably something that we should do post-0.8. I just realized that I get confused about why we even need these explicit dependencies anyway, now seeing the proposed Gerrit change where I see that for the common.base plugin we already have a dependency from an existing plugin (in the code-generator) to this plugin. Then why do we even need an explicit dependency to it?

I don't know why these are on the rcp. I didn't add them there. And I think you are right, there shouldn't be an explicit need to add them there.

​The reason why there were added to the RCP was simply that we were trying to align the contents of the Oomph tester-setup and the contents of the RCP. Since the RCP is feature based, we could not add the dependencies directly ​to the product configuration, but had to add them as dependencies to the RCP feature as a "work around" to ensure the consistency with what the Oomph tester setup was bringing in.

I am not very familiar with the RCP and .product, but when I removed the oep.designer.languages.common.extensionpoints and oep.designer.languages.cpp.cdt.texteditor from oeprt.rcp.feature, I went to the Dependencies tab and clicked on "Compute", and this removed all the designer dependencies. I suppose this means it is not necessary to include any of these at all.

 
Starting to see how these plugins actually are being referenced by other plugin and other features, I would like to ask the question: Why was the dependencies to these plugins even added to the Oomph tester setup from the beginning? I think that is where all this confusion about these Designer plugins starts. If I recall it correctly, it was you that added them Ernesto (originally we brought in features from Designer which brought in too much UI elements, but this was changed to these four plugins). Actually Céline did the same "mistake" in one iteration of the RCP build and also brought in some Designer features (which in its turn brought in these plugins). But this causes UI bloat and then we reverted to this solution of adding them as dependencies from the RCP feature itself.

As for the tester setup, I'm not sure, and I could be wrong, but I think I needed to add the ones we do need (oep.designer.common.base and oep.designer.languages.cpp.library), because otherwise the setup would not know these dependencies. Would the Oomph models be able to pick up plugins or features that are not explicitly listed in a P2 Director task?

 
What goes around comes around... :)
 
 
Anyway, I suggest that we continue that discussion post-0.8 and decide what to do with the dependencies to the remaining two plugins. I have a strong feeling that the common.base dependency belongs to the code-generator feature and the cpp.library dependency belongs to the C++ language feature.

I think you are right. Currently, the library is listed as a dependency, but not included in the codegen feature. It is also listed as a dependency but not included in the umlrt.cpp feature.
 

Anyway, Simon also agrees that we can leave this change for after the 0.8 release.

 

/Peter Cigéhn

On 18 October 2016 at 17:43, Ernesto Posse <eposse@xxxxxxxxxxxxx> wrote:
Hi,

On Tue, Oct 18, 2016 at 11:30 AM Peter Cigéhn <peter.cigehn@xxxxxxxxx> wrote:
Hi,

Regarding objections, I have a hard time knowing who would object to the removal. I have always assumed that you, Ernesto, it the one with the best insight into why we even have these dependencies to the Designer plugins... :)

Indeed, but I just wanted to make sure that there are no uses elsewhere, considering the discussion on consistency at today's synchronization meeting and specially since I've been away for a couple of weeks, so I'm just getting up to speed with the new build.
 

Just to get your confirmation. So we are talking about only leaving dependencies to the following two plugins:

org.eclipse.papyrus.designer.languages.common.base
org.eclipse.papyrus.designer.languages.cpp.library

Correct.
 

If these two are the only one lefts, then I assume that we could have a choice of adding these dependencies to two of our existing features (as proposed in https://bugs.eclipse.org/bugs/show_bug.cgi?id=505416#c63)


Makes sense. I just pushed a gerrit (with you, Celine and Christian as reviewers), but I didn't add these plugins to either feature. I can do that as part of this Gerrit, or should I do that separately?
 
Either the code-generator feature (org.eclipse.papyrusrt.codegen-feature.feature.group) or the core C++ feature (org.eclipse.papyrusrt.umlrt.cpp.feature.feature.group). It feels rather natural that the C++ feature at least have the dependency to the org.eclipse.papyrus.designer.languages.cpp.library since the C++ default language descriptor is the one that brings in and needs the C++ primitive types library. The other "common.base" plugin I don't really know what it is all about.

The "common.base" is used for incremental generation: we detect changes in the model using some classes from that common.base plugin. Perhaps there is another way of implementing it that does not depend on Designer, but I do not know. This was code written a long time ago by Toby, which is no longer active in the project.

 
/Peter Cigéhn

On 18 October 2016 at 17:21, Ernesto Posse <eposse@xxxxxxxxxxxxx> wrote:
Right. I'll push a gerrit to check, but there are two sets of changes:

1) to the setup models (tester and developer)
2) to the manifest of oeprt.codegen.cpp

My question is whether you are ok with each of these.

I'll add you as a reviewer.




On Tue, Oct 18, 2016 at 11:16 AM Céline JANSSENS <celine.janssens@xxxxxxxxxxx> wrote:

Hi Ernesto,

 

Be careful, because sometimes, deleting a plugin from a Manifest doesn’t seem to raise any issue, but when building the plugin, it can break some dependencies.

You can at least test it through Gerrit ;)

 

Regards

Céline

 

 

De : papyrus-rt-dev-bounces@xxxxxxxxxxx [mailto:papyrus-rt-dev-bounces@xxxxxxxxxxx] De la part de Ernesto Posse
Envoyé : mardi 18 octobre 2016 17:11


À : papyrus-rt developer discussions <papyrus-rt-dev@xxxxxxxxxxx>
Objet : Re: [papyrus-rt-dev] Papyrus Designer dependencies in Oomph setups

 

We had the oep.designer.languages.common.profile plugin in the oeprt.codegen.cpp plugin. It's in the manifest. I do not remember why it was there. I just tried removing it and there doesn't seem to be a problem, so we can remove that as well.

 

So are there any objections to these changes?

 

 

 

 

On Tue, Oct 18, 2016 at 11:07 AM Céline JANSSENS <celine.janssens@xxxxxxxxxxx> wrote:

Yes. The question is: Do we use the oep.designer.languages.common.profile feature in Papyrus-RT ?

 

If not, let it implicit

_______________________________________________
papyrus-rt-dev mailing list
papyrus-rt-dev@xxxxxxxxxxx
To change your delivery options, retrieve your password, or unsubscribe from this list, visit
https://dev.eclipse.org/mailman/listinfo/papyrus-rt-dev

Back to the top