views:

464

answers:

2

I am making an attempt to evaluate EMF for use within a project. One of the things i am looking at is some kind of versioning support at the metamodel (M2 or the .ecore model) level.

In terms of metamodel evolution, i have read certain discussions and have come across this paper. However, i wanted to know if there is anything concrete in this direction that is happening within EMF.

In general, what is the level of support for features involving versioning - such as merge and compare, evolution, migration, co-existence of multiple versions simultaneously, etc. I realize that the actual versioning itself will be provided by the source control system that one would use to store these meta-models, however semantic versioning capabilities (such as the ones i have mentioned above) should be provided by EMF itself, right?

I am aware of certain initiatives such as EMF Compare and Temporality which are meant for the EMF models. I am not sure if these work at the meta-model level.

+1  A: 

I am working on metamodel evolution in my PhD thesis. To show the applicability of my ideas, I have developed tool support for metamodel evolution in EMF which is called COPE. On the website, you can access a number of publications about COPE as well as download the tool itself. In addition, I am currently proposing a project to contribute COPE to EMF.

Hi Markus, This does sound very interesting. I haven't read your publication yet - will do it now. Maybe i can talk to you offline to discuss some ideas.
Anirudh
A: 

In general, every tool which works with Ecore models will work with Ecore meta-models as well, since the meta-model of Ecore is Ecore. (Take some time to let this sink in, I know I had to...)

I've successfully used EMF Compare with my Ecore meta-model, don't know about the other tools you mentioned.

Zsolt Török
Thanks for the answer. Yes, i realized that Ecore is the model for Ecore :) I have tried EMF Compare too. What i wanted here was information on metamodel evolution. I think you can find some great material both in the paper that i have linked to and in Markus' project above.
Anirudh