Jump to: navigation, search

Difference between revisions of "M2T Plan 0.8 (Europa)"

m (Release deliverables: typos and missing content)
(Revised to reflect release as it actually happened)
 
(One intermediate revision by the same user not shown)
Line 1: Line 1:
 
== Overview ==
 
== Overview ==
 
This is a draft.
 
  
 
''Please send comments about this plan to the m2t-dev@eclipse.org developer mailing list. (Once it is created.)''
 
''Please send comments about this plan to the m2t-dev@eclipse.org developer mailing list. (Once it is created.)''
  
This document lays out the feature and API set for the next feature release of the Eclipse M2T project, designated release 1.0.  
+
This document lays out the feature and API set for the next feature release of the Eclipse M2T project, designated release 0.8.  
  
 
Plans do not materialize out of nowhere, nor are they entirely static.
 
Plans do not materialize out of nowhere, nor are they entirely static.
Line 33: Line 31:
 
The release deliverables are:
 
The release deliverables are:
 
* M2T Core component
 
* M2T Core component
** Source code release, available as versions tagged "R1_0" in the org.eclipse [http://dev.eclipse.org/viewcvs/ CVS repository]
+
** '''Defered'''
** Downloadable distributions of the binary runtime and SDK
+
** Eclipse Update Site distributions of the binary runtime and SDK.
+
 
* M2T Shared component
 
* M2T Shared component
** Source code release, available as versions tagged "R1_0" in the org.eclipse [http://dev.eclipse.org/viewcvs/ CVS repository]
+
** '''Defered'''
** Downloadable distributions of the binary runtime and SDK
+
** Eclipse Update Site distributions of the binary runtime and SDK.
+
 
* JET component
 
* JET component
 
** Source code release, available as versions tagged "R0_8" in the org.eclipse [http://dev.eclipse.org/viewcvs/ CVS repository]
 
** Source code release, available as versions tagged "R0_8" in the org.eclipse [http://dev.eclipse.org/viewcvs/ CVS repository]
Line 45: Line 39:
 
** Eclipse Update Site distributions of the binary runtime and SDK.
 
** Eclipse Update Site distributions of the binary runtime and SDK.
 
* Xpand component
 
* Xpand component
** Source code release, available as versions tagged "RX_Y" in the org.eclipse [http://dev.eclipse.org/viewcvs/ CVS repository]
+
** '''Defered'''
** Downloadable distributions of the binary runtime and SDK
+
** Eclipse Update Site distributions of the binary runtime and SDK.
+
 
* MTL component
 
* MTL component
** Source code release, available as versions tagged "RX_Y" in the org.eclipse [http://dev.eclipse.org/viewcvs/ CVS repository]
+
** '''Discontinued'''
** Downloadable distributions of the binary runtime and SDK
+
** Eclipse Update Site distributions of the binary runtime and SDK.
+
  
 
== Release milestones ==
 
== Release milestones ==
Line 62: Line 52:
 
* Friday, May 18, 2007 - M7 - Stable Build based on Eclipse 3.3 RC0
 
* Friday, May 18, 2007 - M7 - Stable Build based on Eclipse 3.3 RC0
  
The 1.0 release is targeted for late June 2007.  
+
The 0.8 release is targeted for late June 2007.  
 
All release deliverables will be available for donwload as soon as the release has been tested and validated in the target operation configurations listed below.
 
All release deliverables will be available for donwload as soon as the release has been tested and validated in the target operation configurations listed below.
  
Line 71: Line 61:
 
Most of Eclipse is "pure" JavaTM 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.
 
Most of Eclipse is "pure" JavaTM 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.
  
The M2T 1.0 release depends on the following:
+
The M2T 0.8 release depends on the following:
  
 
* Java 2 Platform 1.4, or later
 
* Java 2 Platform 1.4, or later
Line 84: Line 74:
  
 
== Compatibility with previous releases ==
 
== Compatibility with previous releases ==
 
=== M2T Core component ===
 
'''API Contract Compatibility''': New component, contract compatibility is not applicable.
 
 
'''Binary (plug-in) Compatibility''': New component, binary compatibility is not applicable.
 
 
'''Source Compatibility''': New component, Source compatibility is not applicable.
 
 
'''Workspace Compatibility''': New component, Workspace compatibility is not applicable.
 
 
'''Non-compliante usage of API's''':
 
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 [http://www.eclipse.org/articles/Article-API%20use/eclipse-api-usage-rules.html How to Use the Eclipse API] for information about how to write compliant plug-ins.
 
 
=== M2T Shared component ===
 
'''API Contract Compatibility''': New component, contract compatibility is not applicable.
 
 
'''Binary (plug-in) Compatibility''': New component, binary compatibility is not applicable.
 
 
'''Source Compatibility''': New component, Source compatibility is not applicable.
 
 
'''Workspace Compatibility''': New component, Workspace compatibility is not applicable.
 
 
'''Non-compliante usage of API's''':
 
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 [http://www.eclipse.org/articles/Article-API%20use/eclipse-api-usage-rules.html How to Use the Eclipse API] for information about how to write compliant plug-ins.
 
  
 
=== JET Component ===
 
=== JET Component ===
Line 146: Line 108:
 
Refer to [http://www.eclipse.org/articles/Article-API%20use/eclipse-api-usage-rules.html How to Use the Eclipse API] for information about how to write compliant plug-ins.
 
Refer to [http://www.eclipse.org/articles/Article-API%20use/eclipse-api-usage-rules.html How to Use the Eclipse API] for information about how to write compliant plug-ins.
  
=== XPand Component ===
 
 
'''API Contract Compatibility''':
 
XPand X.Y will be upwards contract-compatible with XPand X.Y-1 expect in those areas noted in the ''XPand X.Y Migration Guide''.
 
Programs that us affected APIS and extension points will need to be ported to XPand X.Y APIs.
 
Downward contract compatibility is not supported.
 
There is no guarantee that complies with the XPand X.Y APIs will ensure complies with the XPand X.Y-1 APIs.
 
Refer to [http://www.eclipse.org/eclipse/development/java-api-evolution.html Evolving Java-based APIs] for a discussion of the kinds of API changes that maintain contract compatibility.
 
 
'''Binary (plug-in) Compatibility''':
 
XPand X.Y will be upwards binary-compatible with XPand X.Y-1 expect in those areas noted in the ''XPand X.Y Migration Guide''.
 
Downward plug-in compatibility is not supported: plug-ins compiled against XPand X.Y will likely be unusalbe with XPand X.Y-1.
 
Refer to [http://www.eclipse.org/eclipse/development/java-api-evolution.html Evolving Java-based APIs] for a discussion of the kinds of API changes that maintain binary compatibility.
 
 
'''Source Compatibility''':
 
Sources files written to the XPand X.Y-1 APIs will usually compile and run successfully against the XPand X.Y 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.
 
 
'''Workspace Compatibility''':
 
XPand X.Y will be upwards workspace-compatible with XPand X.Y-1 unless noted.
 
This means that workspaces and projects created by an Eclipse with JET 0.7 installed can be successfully opened by an Eclipse with XPand X.Y 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.
 
 
'''Non-compliante usage of API's''':
 
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 [http://www.eclipse.org/articles/Article-API%20use/eclipse-api-usage-rules.html How to Use the Eclipse API] for information about how to write compliant plug-ins.
 
  
 
== Themes ==
 
== Themes ==
Line 185: Line 115:
 
== M2T Core component ==
 
== M2T Core component ==
 
=== Committed Items ===
 
=== Committed Items ===
* Extensible API Framework for invoking model-to-text transformations/modules independently of the language in which the transformation/module is written.
+
''None at this time''
* Extensible API Framework for invoking a template independently of the langage in which the template is written.
+
  
 
=== Proposed Items ===
 
=== Proposed Items ===
Line 192: Line 121:
  
 
=== Deferred Items ===
 
=== Deferred Items ===
''None at this time''
+
* Extensible API Framework for invoking model-to-text transformations/modules independently of the language in which the transformation/module is written.
 +
* Extensible API Framework for invoking a template independently of the langage in which the template is written.
  
 
== M2T Shared component ==
 
== M2T Shared component ==
 
=== Committed Items ===
 
=== Committed Items ===
* Shared 'user-region' component to mark user text that is to be preserved between executions of a template.
+
''Not participating in the 0.8 release''
 
+
=== Proposed Items ===
+
* Incorporate EMF JMerge, Properties Merge and Imports Manager as M2T components.
+
 
+
=== Deferred Items ===
+
''None at this time''
+
  
 
== JET Component ==
 
== JET Component ==
Line 216: Line 140:
  
 
== XPand Component ==
 
== XPand Component ==
 
+
''Not participating in the 0.8 release''
=== Committed Items ===
+
''None at this time''
+
 
+
=== Proposed Items ===
+
''None at this time''
+
 
+
=== Deferred Items ===
+
''None at this time''
+
  
 
== MTL Component ==
 
== MTL Component ==
''Not participating in the 1.0 release''
+
''Not participating in the 0.8 release''
  
 
[[Category:M2T]] [[Category:Modeling]]
 
[[Category:M2T]] [[Category:Modeling]]

Latest revision as of 11:23, 18 October 2007

Overview

Please send comments about this plan to the m2t-dev@eclipse.org developer mailing list. (Once it is created.)

This document lays out the feature and API set for the next feature release of the Eclipse M2T project, designated release 0.8.

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.

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.

The remainder of the plan consists of plan items for the components under the Eclipse MDT 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 Eclipse bugzilla 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.

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.

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.

Thus current status of each plan item is noted:

  • Committed plan item – A committed plan item is one that we have decided to address for the release.
  • Proposed plan item – A proposed plan 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.
  • Deferred plan item – A reasonable proposal that will not make it into 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.

Release deliverables

The release deliverables are:

  • M2T Core component
    • Defered
  • M2T Shared component
    • Defered
  • JET component
    • Source code release, available as versions tagged "R0_8" in the org.eclipse CVS repository
    • Downloadable distributions of the binary runtime and SDK
    • Eclipse Update Site distributions of the binary runtime and SDK.
  • Xpand component
    • Defered
  • MTL component
    • Discontinued

Release milestones

Release milesones occur at roughly six (6) week intervals. The milestones are aligned with the Europa+1 milestone dates:

  • Thursday, January 4, 2007 - M4 - Stable Build based on Eclipse 3.3 M4
  • Friday, February 23, 2007 - M5 - Stable Build based on Eclipse 3.3 M5
  • Friday, April 6, 2007 - M6 - API Freeze? - Stable Build based on Eclipse 3.3 M6
  • Friday, May 18, 2007 - M7 - Stable Build based on Eclipse 3.3 RC0

The 0.8 release is targeted for late June 2007. All release deliverables will be available for donwload as soon as the release has been tested and validated in the target operation configurations listed below.

Target operating environments

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.

Most of Eclipse is "pure" JavaTM 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.

The M2T 0.8 release depends on the following:

  • Java 2 Platform 1.4, or later
  • Eclipse Platform 3.2, or later
  • EMF 2.2, or later

The M2T platform is designed to run on any configuration supporing the above components.

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 reference platforms. 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 a 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.

See the Eclipse Project 3.3 plan for a list of reference platforms.

Compatibility with previous releases

JET Component

API Contract Compatibility: JET 0.8 will be upwards contract-compatible with JET 0.7 expect in those areas noted in the JET 0.8 Migration Guide. Programs that us affected APIS and extension points will need to be ported to JET 0.8 APIs. Downward contract compatibility is not supported. There is no guarantee that complies with the JET 0.8 APIs will ensure complies with the JET 0.7 APIs. Refer to Evolving Java-based APIs for a discussion of the kinds of API changes that maintain contract compatibility.

Binary (plug-in) Compatibility: JET 0.8 will be upwards binary-compatible with JET 0.7 expect in those areas noted in the JET 0.8 Migration Guide. Downward plug-in compatibility is not supported: plug-ins compiled against JET 0.8 will likely be unusalbe with JET 0.7. Refer to Evolving Java-based APIs for a discussion of the kinds of API changes that maintain binary compatibility.

Source Compatibility: Sources files written to the JET 0.7 APIs will usually compile and run successfully against the JET 0.8 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.

Workspace Compatibility: JET 0.8 will be upwards workspace-compatible with JET 0.7 unless noted. This means that workspaces and projects created by an Eclipse with JET 0.7 installed can be successfully opened by an Eclipse with JET 0.8 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.

Non-compliante usage of API's: 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 How to Use the Eclipse API for information about how to write compliant plug-ins.


Themes

The changes under consideration for the next release of Eclipse M2T align with themes identified by the Eclipse Requirements Council and Modeling project.

M2T Core component

Committed Items

None at this time

Proposed Items

None at this time

Deferred Items

  • Extensible API Framework for invoking model-to-text transformations/modules independently of the language in which the transformation/module is written.
  • Extensible API Framework for invoking a template independently of the langage in which the template is written.

M2T Shared component

Committed Items

Not participating in the 0.8 release

JET Component

Committed Items

  • Support compilation of EMF JET (org.eclipse.emf.codegen) templates into EMF JET signature compatible Java classes.
  • TODO JET Editor committed items

Proposed Items

  • Provide an incremental JET compiler to facilitate JET Editor

Deferred Items

None at this time

XPand Component

Not participating in the 0.8 release

MTL Component

Not participating in the 0.8 release