<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
  <head>
    <meta http-equiv="Content-Type"
    content="text/html; charset=utf-8" />

    <title>Eclipse EMF - DRAFT 2.5.0 Plans</title>


    <link rel="stylesheet" href="http://www.eclipse.org/default_style.css" type="text/css" />
    <!-- <link rel="stylesheet" href="http://www.eclipse.org/emf/docs/book.css" type="text/css" /> -->
  </head>

  <body lang="EN-US" xml:lang="EN-US">

   <div class="Section1">
      <h1>Eclipse Modeling Framework (EMF)
      <br />
		Draft 2.5.0 Plan</h1>

      <p>Last revised <tt>$Date: 2008/07/11 19:10:44 $</tt> ( 
      <img width="12" height="12" src="/modeling/images/green-box.gif"
      border="0" />

      marks interesting changes over previous plans).

      </p>

      <p>      	
      <em>Please send comments about this draft
      plan to the</em>
      
      <a href="mailto:emf-dev@eclipse.org">emf-dev@eclipse.org</a>
      <em>developer mailing list
      
      or

      the</em>
      <a href="news://news.eclipse.org/eclipse.tools.emf">eclipse.tools.emf</a>
      <em>newsgroup.</em>
      </p>

      <p>This document lays out the feature and API set for the
      next feature release, 2.5.0, of the Eclipse Modeling Framework (EMF) project.</p>

      <ul type="disc">
        <li>
          <a href="#Deliverables">Release deliverables</a>
        </li>

        <li>
          <a href="#Milestones">Release milestones</a>
        </li>

        <li>
          <a href="#TargetOperatingEnvironments">Target operating
          environments</a>
        </li>

        <li>
          <a href="#Compatibility">Compatibility with previous
          releases</a>
        </li>

        <li>
          <a href="#Themes">Themes / Plan Items</a>
        </li>

        <li>
          <a href="#Project">EMF Project</a>
        </li>
      </ul>

      <p>Plans do not materialize out of nowhere, nor are they
      entirely static. To ensure the planning process is
      transparent and open to the entire Eclipse community, plans
      are posted in an embryonic form and then revised from time to
      time throughout the release cycle.</p>

      <p>The first part of the plan deals with the important
      matters of release deliverables, release milestones, target
      operating environments, and release-to-release compatibility.
      These are all things that need to be clear for any release,
      even if no features were to change.</p>

      <p>The remainder of the plan consists of plan items for the
      projects under the EMF project. Each
      plan item covers a feature or API that is to be added, or
      some aspect that is to be improved. Each plan item has its
      own entry in the 
      <a href="http://bugs.eclipse.org/bugs">Eclipse bugzilla</a>

      database, with a title and a concise summary (usually a
      single paragraph) that explains the work item at a suitably
      high enough level so that everyone can readily understand
      what the work item is without having to understand the
      nitty-gritty detail.</p>

      <p>Not all plan items represent the same amount of work; some
      may be quite large, others, quite small. Some plan items may
      involve work that is localized to a single subsystem; others
      may involve coordinated changes across several projects
      within the same top-level project; and others may involve
      coordination with other top-level projects. Although some
      plan items are for work that is more pressing that others,
      the plan items appear in no particular order.</p>

      <p>With the previous release as the starting point, this is
      the plan for how we will enhance and improve it. Fixing bugs,
      improving test coverage, documentation, examples, performance
      tuning, usability, etc. are considered routine ongoing
      maintenance activities and are not included in this plan
      unless they would also involve a significant change to the
      API or feature set, or involve a significant amount of work.
      The intent of the plan is to account for all interesting
      feature work.</p>

      <h2>
      <a name="Deliverables">
      </a>

      Release Deliverables</h2>

      <p>The release deliverables are:</p>

      <ul type="disc">
        <li>Source code release for EMF is available in the Eclipse.org <a href="http://www.eclipse.org/modeling/">Modeling Project</a>
        <a href="http://dev.eclipse.org/viewcvs/index.cgi/?root=Modeling_Project">CVS
        repositories</a> for <a
        href="http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.emf/org.eclipse.emf/?root=Modeling_Project">
        EMF</a>. <ul><img width="12" height="12" src="/modeling/images/green-box.gif"
      border="0" /> <b>NOTE:</b> In addition, source builds have been requested to better support linux distributions and legal code scanning.</ul></li>

        <li>EMF runtime binaries and SDK distributions
        (downloadable). <ul><img width="12" height="12" src="/modeling/images/green-box.gif"
      border="0" /> <b>NOTE:</b> <a href="http://wiki.eclipse.org/EMF/EMF_2.5_Simplified_Downloads">This may be changing</a>, but is not yet committed to plan.</ul></li>

        <li>EMF runtime binaries and SDK features on
        eclipse.org update site (install via Eclipse update
        manager).</li>

      </ul>

      <h2>
      <a name="Milestones">
      </a>

      Release Milestones</h2>

      <p>EMF builds are available weekly as <em>Integration
      builds</em>. EMF Milestone Releases are <b>one business day</b> after the <a href="http://www.eclipse.org/eclipse/development/eclipse_project_plan_3_5.html#Milestones">Eclipse Milestone Releases</a>.
      </p>

      
      <p>Following the final milestone, release candidates will begin. EMF Release Candidates are planned to be released <b>one business day</b> after each
       <!--<a href="http://www.eclipse.org/eclipse/development/freeze_plan_3.5.html">--><i style="color:gray">Eclipse Release Candidate</i> (forthcoming) <!--</a>-->.
      This convergence is required to meet the goals of the <a href="http://www.eclipse.org/projects/ganymede.php">Ganymede Simultaneous Release</a>.</p>

      <p>Scheduled release candidates should end in 2008Q2, and beyond that point, will be produced only as needed, leading up to a release in late 2008Q2.</p>

      <h2>
      <a name="TargetOperatingEnvironments">
      </a>

      Target Operating Environments</h2>

      <p>In order to remain current, each release of an Eclipse
      project targets reasonably current versions of underlying
      operating environments and other Eclipse projects on which it
      depends.</p>

      <p>Most of Eclipse is "pure" Java 
      <sup>TM</sup>

      code and has no direct dependence on the underlying operating
      system. The chief dependence is on the Eclipse Platform, and
      on the Java 2 Platform that runs it.</p>

      <p>The EMF 2.5.0 releases depend on the
      following:</p>

      <ul type="disc">
        <li>Java 2 Platform 5.0</li>

        <li>Eclipse Platform 3.5.0</li>

      </ul>

      <p>The 2.5.0 releases of EMF are designed to run
      on any configuration supporting the above components.</p>

      <p>The Eclipse Platform runs in a variety of operating
      environments. Testing is focused on a handful of popular
      combinations of operating system and Java 2 Platform; these
      are our 
      <em>reference platforms</em>.

      Eclipse undoubtedly runs fine in many operating
      environments beyond the reference platforms we test. However,
      since we do not systematically test them we cannot vouch for
      them. Problems encountered when running Eclipse on
      non-reference platform that cannot be recreated on any
      reference platform will be given lower priority than problems
      with running Eclipse on a reference platform.</p>

      <p>See the 
      <a
      href="http://www.eclipse.org/eclipse/development/eclipse_project_plan_3_5.html#TargetOperatingEnvironments">
      Eclipse Project 3.5 plan</a> for a list of reference platforms.</p>

      <h4>Internationalization</h4>

      <p>Eclipse is designed as the basis for internationalized
      products. The user interface elements provided by the various
      Eclipse projects, including dialogs and error messages, are
      externalized. The English strings for EMF are
      provided as the default resource bundles. Translations are
      not provided with this release. However, the plug-in fragment
      mechanism provides the means by which translations into any
      number of other languages can be incorporated.</p>

      <h2>
      <a name="Compatibility">

      </a>

      Compatibility with Previous Releases</h2>

      <h3>Compatibility of Release 2.5.0 with 2.4.0</h3>

      <p>EMF 2.5.0 will be compatible with EMF 2.4.0, except in those areas noted in the 
      <a href="#MigrationGuide">
        <em>EMF 2.5.0 Migration Guide</em></a>.</p>

      <p>
      <b>API Contract Compatibility:</b>

      EMF 2.5.0 will be upwards contract-compatible
      with EMF 2.4.0 except in those areas noted in the
      
      <a href="#MigrationGuide">
        <em>EMF 2.5.0 Migration Guide.</em>
      </a>

      Programs that use affected APIs and extension points will
      need to be ported to EMF 2.5.0 APIs. Downward
      contract compatibility is not supported. There is no
      guarantee that compliance with EMF 2.5.0 APIs
      would ensure compliance with EMF 1.x APIs. Refer
      to 
      <em>
        <a
        href="http://wiki.eclipse.org/index.php/Evolving_Java-based_APIs">
        Evolving Java-based APIs</a>
      </em>

      for a discussion of the kinds of API changes that maintain
      contract compatibility.</p>

      <p>

      <b>Binary (plug-in) Compatibility:</b>

      EMF 2.5.0 will be upwards binary-compatible with
      EMF 2.4.0 except in those areas noted in the 
      <a href="#MigrationGuide">
        <em>EMF 2.5.0 Migration Guide.</em>
      </a>

      Downward plug-in compatibility is not supported: plug-ins
      compiled against EMF 2.5.0 will likely be
      unusable with EMF 1.x. Refer to 
      <em>
        <a
        href="http://wiki.eclipse.org/index.php/Evolving_Java-based_APIs">

        Evolving Java-based APIs</a>
      </em>

      for a discussion of the kinds of API changes that maintain
      binary compatibility.</p>

      <p>
      <b>Source Compatibility:</b>

      Source files written to use EMF 2.4.0 APIs will
      usually compile and run successfully against EMF
      2.5.0 APIs, although this cannot be guaranteed. 
      In some cases, it may be necessary to make minor changes to the
      source code to disambiguate things like imports or overloaded
      method invocations. Downward source compatibility is not
      supported. If source files use new APIs, they will not be
      usable with earlier versions.</p>

      <p>
      <b>Workspace Compatibility:</b>

      EMF 2.5.0 will be upwards
      workspace-compatible with EMF 2.4.0 unless noted.
      This means that workspaces and projects created by an Eclipse
      with EMF 2.4.0 installed can be successfully
      opened by an Eclipse with EMF 2.5.0 installed.
      This includes both hidden metadata, which is localized to a
      particular workspace, as well as metadata files found within
      a workspace project, which may propagate between workspaces
      via file copying or team repositories. User interface session
      state may be discarded when a workspace is upgraded. Downward
      workspace compatibility is not supported. Metadata files
      created (or overwritten) by the newer version will generally
      be unusable with older versions.</p>

      <p>
      <b>Non-compliant usage of API's:</b>

      All non-API methods and classes, and certainly everything in
      a package with "internal" in its name, are considered
      implementation details which may vary between operating
      environment and are subject to change without notice. Client
      plug-ins that directly depend on anything other than what is
      specified in the API are inherently unsupportable and receive
      no guarantees about compatibility within a single release
      much less with an earlier releases. Refer to 
      <em>
        <a
        href="http://www.eclipse.org/articles/Article-API%20use/eclipse-api-usage-rules.html">
        How to Use the Eclipse API</a>
      </em>

      for information about how to write compliant plug-ins.</p>
      
      <p>Almost the entire EMF code is available in non-internal packages and are
      assumed to be used and extended by users.  The main exception is extending the Ecore
      model itself directly (i.e., extending or implementing <tt>org.eclipse.emf.ecore.EModelElement</tt>).  There are
      no guarantees that these extensions won't be broken by changes in EMF.  If you are not sure that your code has
      such extensions, please send a question to the 
      <a href="mailto:emf-dev@eclipse.org">emf-dev@eclipse.org</a> developer mailing list or to the
    <a href="news://news.eclipse.org/eclipse.tools.emf">eclipse.tools.emf</a> newsgroup.</p>
    	

      <h3>

      <a name="MigrationGuide">
      </a>

      EMF 2.5.0 Migration Guide</h3>

      <p>At this time, there are no known issues migrating from
      2.4.0 to 2.5.0. 
      Should this change, this document will be
      revised, or a secondary document will be added documenting
      any known issues.</p>

      <h2>
      <a name="Themes">

      </a>

      Themes</h2>
  <p><img width="12" height="12" src="/modeling/images/green-box.gif"
      border="0" /> The changes under consideration for the next release of
      Eclipse EMF address a few major themes: </p>

      <ul>
        <li>
        <b>More With Less</b>

        - While supporting past releases is very important, it comes with a price -- less time to develop, and subsequently support, new features. As the development team becomes smaller, there are less hands available to support more releases.</li>

        <li>
        <b>Release Currency</b>

        - Modeling projects will maintain release currency concurrent with 3.x releases. For EMF 2.5.0, this means 
        currency with Eclipse 3.5.0 and Java SE 5.0.</li>
		
		<li><b>Modeling Project Integration</b> 
		- Facilitate and participate in integration &amp; re-use of build and release infrastructure and web content across subprojects. 
		Promote development of a community around modeling technologies at Eclipse.
        

</ul>

<p><img width="12" height="12" src="/modeling/images/green-box.gif"
      border="0" /> Additionally, the following plan items have been proposed.</p>
<ul>        
        <li><b>Build &amp; Web Infrastructure Improvements </b>
        - Continue to improve and automate build and release processes such that they can be reused by other projects and such that developers can focus on development, rather than release engineering.</li> 

</ul>


      <p>The current status of each plan item is noted:</p>

      <ul type="disc">
      <li>
        <b>Plan Item</b>

        items - a <i>Plan Item</i> that we have
        decided to address for the release. To see all committed items - see <i>"committed"</i> items</li>

        <li>
        <b>Committed</b>

        items - A committed bug is one that we have
        decided to address for the release.</li>

        <li>
        <b>Proposed</b>

        items - A bug item is one that we are
        considering addressing for the release. Although we are
        actively investigating it, we are not yet in a position to
        commit to it, or to say that we won't be able to address
        it. After due consideration, a proposal will either be
        committed or deferred.</li>

        <li>
        <b>Deferred</b>

        items - A reasonable proposal that will not make it in
        to this release for some reason is marked as deferred with
        a brief note as to why it was deferred. Deferred plan items
        may resurface as committed plan items at a later
        point.</li>
      </ul>

      <h2>
      <a name="Project">

      </a>

     EMF Project</h2>

<p>Plan items reflect new features of the EMF project, or
areas where existing features will be significantly reworked.

<h4><a name="Committed"> </a> Committed Items </h4>

<blockquote>
<p>Bugzillas with a target milestone set are committed to
that release. For the most current list of these items, see the
following links:</p>

<p><b>2.5.0 release:</b></p>
<p><a 
	href="https://bugs.eclipse.org/bugs/buglist.cgi?product=EMF&amp;component=Core&amp;component=Doc&amp;component=Edit&amp;component=Mapping&amp;component=Tools&amp;component=XML/XMI&amp;bug_status=NEW&amp;bug_status=REOPENED&amp;bug_status=ASSIGNED&amp;order=bugs.bug_status,bugs.target_milestone,bugs.bug_id&amp;query_format=advanced&amp;field0-0-0=target_milestone&amp;type0-0-0=substring&amp;value0-0-0=2.5">All Open</a> 
	| <a
	href="https://bugs.eclipse.org/bugs/buglist.cgi?product=EMF&amp;component=Core&amp;component=Doc&amp;component=Edit&amp;component=Mapping&amp;component=Tools&amp;component=XML/XMI&amp;bug_status=UNCONFIRMED&amp;bug_status=RESOLVED&amp;bug_status=VERIFIED&amp;bug_status=CLOSED&amp;order=bugs.bug_status,bugs.target_milestone,bugs.bug_id&amp;query_format=advanced&amp;field0-0-0=target_milestone&amp;type0-0-0=substring&amp;value0-0-0=2.5">All Resolved</a> 
	| <a
  href="https://bugs.eclipse.org/bugs/buglist.cgi?product=EMF&amp;component=Core&amp;component=Doc&amp;component=Edit&amp;component=Mapping&amp;component=Tools&amp;component=XML/XMI&amp;bug_status=NEW&amp;bug_status=REOPENED&amp;bug_status=ASSIGNED&amp;bug_status=UNCONFIRMED&amp;bug_status=RESOLVED&amp;bug_status=VERIFIED&amp;bug_status=CLOSED&amp;order=bugs.bug_status,bugs.target_milestone,bugs.bug_id&amp;query_format=advanced&amp;field0-0-0=target_milestone&amp;type0-0-0=substring&amp;value0-0-0=2.5">All Bugs</a>

  </p>

</blockquote>
<h4><a name="Proposed"> </a> Proposed Items</h4>

<blockquote>
<p>Bugzillas without a specific target milestone are
proposed, but not committed for a particular release. This list also includes Bugzillas that were
proposed for older releases but have not yet been addressed. For the most
current list of these items, see the following links:</p>

<p><a 
	href="https://bugs.eclipse.org/bugs/buglist.cgi?query_format=advanced&amp;short_desc_type=allwordssubstr&amp;short_desc=&amp;product=EMF&amp;component=Core&amp;component=Doc&amp;component=Edit&amp;component=Mapping&amp;component=Tools&amp;component=XML/XMI&amp;target_milestone=---&amp;long_desc_type=allwordssubstr&amp;long_desc=&amp;bug_file_loc_type=allwordssubstr&amp;bug_file_loc=&amp;keywords_type=allwords&amp;keywords=&amp;bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;emailtype1=substring&amp;email1=&amp;emailtype2=substring&amp;email2=&amp;bugidtype=include&amp;bug_id=&amp;votes=&amp;chfieldfrom=&amp;chfieldto=Now&amp;chfieldvalue=&amp;field0-0-0=noop&amp;type0-0-0=noop&amp;value0-0-0=&amp;query_based_on=">Open</a> | 
	<a
	href="https://bugs.eclipse.org/bugs/buglist.cgi?query_format=advanced&amp;short_desc_type=allwordssubstr&amp;short_desc=&amp;product=EMF&amp;component=Core&amp;component=Doc&amp;component=Edit&amp;component=Mapping&amp;component=Tools&amp;component=XML/XMI&amp;target_milestone=---&amp;long_desc_type=allwordssubstr&amp;long_desc=&amp;bug_file_loc_type=allwordssubstr&amp;bug_file_loc=&amp;keywords_type=allwords&amp;keywords=&amp;bug_status=RESOLVED&amp;bug_status=VERIFIED&amp;bug_status=CLOSED&amp;emailtype1=substring&amp;email1=&amp;emailtype2=substring&amp;email2=&amp;bugidtype=include&amp;bug_id=&amp;votes=&amp;chfieldfrom=&amp;chfieldto=Now&amp;chfieldvalue=&amp;cmdtype=doit&amp;order=Reuse+same+sort+as+last+time&amp;field0-0-0=noop&amp;type0-0-0=noop&amp;value0-0-0=">Resolved</a> </p>

	</blockquote>

<h4><a name="Deferred"> </a> Deferred Items</h4>

<blockquote>
<p>Bugzillas assigned to the non-specific target of 'Future' are
deferred, and not scheduled for a particular release. For the most
current list of these items, see the following link:</p>

<p><a 
	href="https://bugs.eclipse.org/bugs/buglist.cgi?query_format=advanced&amp;short_desc_type=allwordssubstr&amp;short_desc=&amp;product=EMF&amp;component=Core&amp;component=Doc&amp;component=Edit&amp;component=Mapping&amp;component=Tools&amp;component=XML/XMI&amp;target_milestone=Future&amp;long_desc_type=allwordssubstr&amp;long_desc=&amp;bug_file_loc_type=allwordssubstr&amp;bug_file_loc=&amp;keywords_type=allwords&amp;keywords=&amp;bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;emailtype1=substring&amp;email1=&amp;emailtype2=substring&amp;email2=&amp;bugidtype=include&amp;bug_id=&amp;votes=&amp;chfieldfrom=&amp;chfieldto=Now&amp;chfieldvalue=&amp;cmdtype=doit&amp;order=Reuse+same+sort+as+last+time&amp;field0-0-0=noop&amp;type0-0-0=noop&amp;value0-0-0=">All Open</a>
 </p>
</blockquote>

<h4><a name="Plan"> </a> Plan Items </h4>

<blockquote>
<p>Plan item bugzillas from this and previous releases:</p>
<p><a 
	href="https://bugs.eclipse.org/bugs/buglist.cgi?product=EMF&amp;component=Core&amp;component=Doc&amp;component=Edit&amp;component=Mapping&amp;component=Tools&amp;component=XML/XMI&amp;short_desc_type=substring&amp;short_desc=%5BPlan+Item%5D&amp;bug_status=NEW&amp;bug_status=REOPENED&amp;bug_status=ASSIGNED&amp;order=bugs.bug_status,bugs.target_milestone,bugs.bug_id">All Open</a> 
	| <a
	href="https://bugs.eclipse.org/bugs/buglist.cgi?product=EMF&amp;component=Core&amp;component=Doc&amp;component=Edit&amp;component=Mapping&amp;component=Tools&amp;component=XML/XMI&amp;short_desc_type=substring&amp;short_desc=%5BPlan+Item%5D&amp;bug_status=UNCONFIRMED&amp;bug_status=RESOLVED&amp;bug_status=VERIFIED&amp;bug_status=CLOSED&amp;order=bugs.bug_status,bugs.target_milestone,bugs.bug_id">All Resolved</a> 
	| <a
  href="https://bugs.eclipse.org/bugs/buglist.cgi?product=EMF&amp;component=Core&amp;component=Doc&amp;component=Edit&amp;component=Mapping&amp;component=Tools&amp;component=XML/XMI&amp;short_desc_type=substring&amp;short_desc=%5BPlan+Item%5D&amp;bug_status=NEW&amp;bug_status=REOPENED&amp;bug_status=ASSIGNED&amp;bug_status=UNCONFIRMED&amp;bug_status=RESOLVED&amp;bug_status=VERIFIED&amp;bug_status=CLOSED&amp;order=bugs.bug_status,bugs.target_milestone,bugs.bug_id">All Bugs</a></p>

</blockquote>


<p><em> <small>Note that for the links above, you may need to reset your
browser's <u>bugs.eclipse.org</u> cookie(s) in order to see all the
appropriate columns.</small> </em></p>
</div>

</body>
</html>