Jump to: navigation, search

Difference between revisions of "EGF/Review/Juno/ReleaseAndGraduation"

< EGF‎ | Review‎ | Juno
(APIs)
(Architecture)
Line 62: Line 62:
 
The development process below displays how portfolios can be iteratively combined to create new factories and extensions.  
 
The development process below displays how portfolios can be iteratively combined to create new factories and extensions.  
  
The example below of an EGF factory shows a factory component which combines invocations to heterogeneous languages (e.g., Java, Ant, Jython) and tools (e.g., Jet, ATL) but homogeneously integrated in the framework of EGF.  
+
The example below of an EGF factory shows a factory component which combines invocations of heterogeneous languages (e.g., Java, Ant, Jython), tools (e.g., Jet, ATL), and factory component.
  
[[Image:EGF-Architecture instantiation.PNG]]  
+
[[Image:EGF-Architecture instantiation.PNG]]
  
 
== Testing &amp; Packaging  ==
 
== Testing &amp; Packaging  ==

Revision as of 09:54, 3 May 2012

Logo EGF.png


This page provides the required Docuware for the EGF v1.0.0 Release and Graduation Review, as part of the upcoming Juno Simultaneous Release.

Overview

EGF is a software factory tool which enables to develop simple or complex generators. A workflow enables to orchestrate and execute different kind of tools (e.g., ATL for model-to-model transformations, Acceleo for model-to-text transformations) and code written in a language (e.g., Java, Ant, JRuby). EGF also proposes a declarative formalism of pattern with the capability to develop customizable generations, at development time or after deployment. The extensibility of EGF enables to support new tools or languages for orchestration, and to support new types of generation formalisms. All the generation elements are encapuslated in factory components. A coherent set of factory components defines a generation portfolio reusable and customizable in different project contexts. EGF is released with two demonstrative and operational generation portfolios. The first one enriches the EMF generation with new features: i) generation of new types of artefacts (e.g., JavaDoc, ecoretools diagrams), ii) customization of the EMF generation with patterns, iii) a generation DSL to easily configure an EMF generation. The second EGF portolfio is a DSL and generator for continuous integration in order to facilitate the definition of continuous integration chains and to target new integration continuous platforms while the continuous integration tools evolve.


Features

In this release

EGF is part of an Eclipse Simultaneous Release for the second time. The different features provided by EGF v1.0.0, as part of Juno, are of three categories: the engine, extensions, and portfolios.

EGF Engine

The EGF Engine defines the core model of EGF (e.g., task, factory component, or pattern) and provides core behaviors of EGF (e.g., dynamic execution).

Engine Extensions

Support of languages (e.g., Java task, Ant task) and tools (e.g., Acceleo, ATL, JET), or any further extension, are engine extensions.

EGF Portfolio

A generation portfolio is a consistent set of factories with a generation objective, reusable and valuable for projects.

The EGF project provides two default generation portfolios:

  • The first one is an enhancement of the EMF Generation which enables to customize the EMF generation.
  • The second one is a build chain portfolio which enables to configure a build chain (with an EGF build editor) and to generate all the scripts for a build platform, i.e. Hudson and Buckminster/Jenkins today. The EGF build chains are realized with this portfolio.

Accordance with project plan themes and priorities

The priorities are the following:

  • Improving the foundations of the EGF engine
  • Providing two portfolios (i.e., enhancement of the EMF Generation, build chain portfolio) in order: 1) to provide a more substantial EGF component, 2) to provide the Eclipse community with valuable software factories, 3) examplify how to develop and use generation portfolios

See http://www.eclipse.org/projects/project-plan.php?projectid=modeling.emft.egf

Non-Code Aspects

The complete EGF documentation is available from the EGF Wiki page:

APIs

The EGF Javadoc is available here (from the Juno build).

Architecture

The general architecture of EGF is: 1) the EGF Engine extended by Engine Extensions, 2) extended by a set of generation portfolios.

The development process below displays how portfolios can be iteratively combined to create new factories and extensions.

The example below of an EGF factory shows a factory component which combines invocations of heterogeneous languages (e.g., Java, Ant, Jython), tools (e.g., Jet, ATL), and factory component.

EGF-Architecture instantiation.PNG

Testing & Packaging

EGF uses a Buckminster-based system to build and promote versions.
Each new build is tested at least with Eclipse 3.7 (Indigo).
Core plugins are provided with dedicated test plugins checking their valid behavior.
EGF is integrated into the Indigo Release Train since the M3 release.
EGF is also part of the Amalgamation Modeling Package for Indigo.

End-of-Life

No EGF component is deprecated so far.

Bugzilla

EGF bugs can be found here on Bugzilla.

Standards

EGF does not implement any standard.

UI Usability

EGF intends to conform to the User Interface Guidelines.

Schedule

EMFT EGF is a "+3" project in the simultaneous release

Schedule respected by EGF is the following:

  • M2 09/26/2011
  • M3 11/07/2011
  • M4 12/12/2011
  • M5 01/30/2012
  • M6 03/19/2012 (API Freeze)
  • M7 05/07/2012 (Feature Freeze)
  • RC1 05/21/2012
  • RC2 05/28/2012
  • RC3 06/04/2012
  • RC4 06/11/2012
  • Juno 06/27/2012


Communities

EGF simultaneously: 1) joint Amalgam, 2) joint the Indigo release train, 3) started to blog on PlanetEclipse to promote EGF and EGF portfolios. Stats, from March 2011, confirms an average rhythm of 12/13 downloads of EGF a day.

IP Issues

The Eclipse IP Process has been strictly followed and all plugins contain the appropriate about.html and license files.
The EGF IP Log is available from http://www.eclipse.org/projects/ip_log.php?projectid=modeling.emft.egf EGF is released under the EPL licence.

EGF provides integration with languages and tools. Some of them are developed under the EPL licence (e.g., Acceleo, ATL) but others are incompatible with the EPL licence (e.g., Jython, JRuby). In order to fix this type of IP issue, EGF only provides integration with languages and tools respecting the EPL licence. For the other ones, a specific EclipseLabs project, the EGF portfolio project, was created to isolate and manage licence incompatibility.

Project Plan

The current project plan is available from here. Graduating to v1.0.0 for the Juno Simultaneous Release is planned. This next EGF version would include:

  • Improvement of the general quality of the existing components (e.g., bug fixing, user facilities)
  • Improvement of the generation workflow (sequential today)
  • Extension of the "Enhanced EMF Generation" portfolio to take into consideration topics such as CDO
  • Demonstration of the ability to support families of generations (with the target of supporting product lines later)
  • Increase of the scope of integration of new languages and tools for interoperability in the generation workflow