All :
Here are the release review materials for EMF Compare 1.1.0 (Helios).
Cédric
EMF Compare 1.1.0 Release Review – Helios Simultaneous Release
Author
Cédric Brun
Release Review : Friday, June 11, 2010
Copyright Obeo © 2010, made available under the EPL v1.0
Project Summary
Communication channel : eclipse.modeling.emf.newsgroup
Process Documentation : http://www.eclipse.org/projects/dev_process/development_process.php
Project Plan : http://www.eclipse.org/projects/project-plan.php?projectid=modeling.emf.compare
Focus
EMF Compare provides :
- model comparison
- differences merge
- integration with Source Control Management systems
- diff export
1.1.0 Release Talking Points
Features
ResourceSet Wide Matching has been greatly improved especially on cross-resources containment references.
Match Scoping A new API is provided allowing you to scope the match process and avoid un-necessary computations
Performances Gain The GenericMatchEngine
which is the default implementation has been enhanced to provide way better performances, more especially if your Ecore model uses derived references. The gain on UML models is of factor 10.
See http://wiki.eclipse.org/EMF_Compare_1.1.0_New_And_Noteworthy
Non-Code Aspects
Unit Tests
340 unit tests launched on every build. Code coverage is about:
- 90% of the core
- 30% of the differencing plugin
- 50% of the matching plugin
Non-regression tests
Comparison with results and expected results on 15 different models
Code quality
Checkstyle
activated on each distinct plug-in
Eclemma
used on a regular basis to improve test coverage
Yourkit
used on a regular basis to improve performances
Javadoc represents more than 50% of the source code line
More statistics here : http://www.ohloh.net/p/emf_compare/analyses/latest
Documentation
Some tutorials are in the Eclipse Wiki and others are in the Online Help, both will be merged in the next release cycle.
User tutorials:
- Setting up and using the EMF Compare framework
- Comparing and merging XML Files
Developer tutorials:
- Architecture Overview
- Adding new actions to the export menu
- Adapting the Comparison Process
- Using the Compare services
Examples
APIs
The project lead certifies that the requirements for Eclipse Quality APIs have been met for this release
Metamodel definitions and corresponding implementations are considered APIs.
Non-API classes are separated from the exposed API through an internal
package in the namespace.
Commitment to provide stand-alone diff and match features (JAR used without Eclipse)â€
API Tooling is activated on all plugins to mark exceptions within the exposed API
Architecture
Comparison process
The comparison process is divided in 2 phases : matching and differencing. The matching phase browses both models trying to figure out which element of model 1 corresponds to which element of model 2. The differencing process then browses the result of the matching and creates the corresponding delta. The result of both phases can be serialized as models.
Extensibility
Each phase of the comparison process might be redefined or extended by clients to fulfill specific requirements.
EMF Compare is tightly integrated with org.eclipse.compare
support and as such provides the same user interface.
End Of Life
A few API have been deprecated to ease the reuse of some part of the code, more especially:
org.eclipse.emf.compare.match.engine.GenericMatchEngine.haveDistinctID(EObject, EObject)
org.eclipse.emf.compare.match.engine.GenericMatchEngine.haveDistinctXMIID(EObject, EObject)
org.eclipse.emf.compare.match.engine.GenericMatchEngine.nameSimilarity(EObject, EObject)
org.eclipse.emf.compare.match.engine.GenericMatchEngine.contentSimilarity(EObject, EObject)
such client overrides should be replaced by the usage of the AbstractSimilarityChecker
and the org.eclipse.emf.compare.match.engine.GenericMatchEngine.prepareChecker()
method.
Bugzilla
Severity | NEW | RESOLVED | VERIFIED | CLOSED | Total |
---|
blocker | 6 | 3 | . | 4 | 13 |
critical | 3 | . | 4 | 1 | 8 |
major | 13 | 2 | 10 | 6 | 31 |
normal | 30 | 35 | 54 | 35 | 154 |
minor | 4 | 1 | 5 | . | 10 |
trivial | . | . | 2 | . | 2 |
enhancement | 12 | 1 | 14 | 5 | 32 |
Total | 68 | 42 | 89 | 51 | 250 |
Standards
No standard exists concerning the model comparison through EMF Compare works nicely with any standard based metamodel.
UI Usability
EMF Compare is conforming to the user interface guidelines.
Schedule
The EMF Compare project follow closely the EMF Core schedule:
- M1 08/18/2009
- M2 09/29/2009
- M3 11/10/2009
- M4 12/15/2009
- M5 02/02/2010
- M6 03/16/2010
- M7 05/04/2010
- RC1 05/18/2010
- RC2 05/25/2010
- RC3 06/01/2010
- RC4 06/08/2010
- Final 06/16/2010
- 1.1.0 06/23/2010
Project Plan
The Helios project plan is available at http://www.eclipse.org/projects/project-plan.php?projectid=modeling.emf.compare
Communities
Talks have been given on the following events:
EclipseCon 2010
: Diff, Merge and Patch your Models
Activity on the EMF and EMFT newsgroups:
- roughly 70 (EMF) + 200 (EMFT) messages from June 2009 to May 2010
About one update every two months on Planet Eclipse.
Commiter Changes
No commiter change.
IP Issues
The about files and use licenses are in place as per the Guidelines to Legal Documentation.
All contributions (code, documentation, images, etc) have been committed by individuals who are either Members of the
Foundation, or have signed the appropriate Committer Agreement.
In either case, these are individuals who have signed, and are abiding by, the Eclipse IP Policy.
All significant contributions have been reviewed by the Foundation’s legal staff.
All non-Committer code contributions, including third-party libraries, have been documented in the release and reviewed by the Foundation’s legal staff.
All contribution Questionnaires have been completed
The «provider» field of each plugin is set to "Eclipse Modeling Project"
The «copyright» field of each plugin is set to the copyright owner
Any third-party logos or trademarks included in the distribution (icons, logos, etc) have been licensed under the EPL
The EMF IP log is generated and submited at
http://www.eclipse.org/projects/ip_log.php?projectid=modeling.emf.compare
The contributions for this release were recorded in the following bugzillas:
_______________________________________________
modeling-pmc mailing list
modeling-pmc@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/modeling-pmc