Difference between revisions of "EclipseLink/Development/Incubator"

From Eclipsepedia

Jump to: navigation, search
(Creating a new Incubation Sub-Component)
(Creating a new Incubator Feature)
 
(28 intermediate revisions by 4 users not shown)
Line 1: Line 1:
 
__NOTOC__
 
__NOTOC__
== EclipseLink Incubation ==
+
= EclipseLink Incubator =
  
The (proposed) Incubation component of EclipseLink allows new functionality and prototypes to be developed in isolation of the shipped components and does not affect the regular build/test processes. Each incubation sub-component will exist on its own and will be developed in association with an open bug or enhancement request.
+
The Incubator component of EclipseLink allows new functionality to be developed in isolation of the shipped components. The purpose is to allow consumers to optionally try out the incubation functionality and provide feedback so that it can evolve to meet the needs of the community.  
 +
 
 +
'''What should incubate?''' In deciding when a new incubation sub-component should be created the committers should consider the opportunity incubation allows to gather feedback and evolve the solution without effecting the existing product or imposing any backwards compatibility requirements.
  
 
== Current Incubation Sub-Components ==
 
== Current Incubation Sub-Components ==
Line 13: Line 15:
 
! SVN Location
 
! SVN Location
 
|-
 
|-
| [http://bugs.eclipse.org/200045 200045] Dynamic Persistence || [[User:Douglas.clarke.oracle.com | dclarke]] || [[EclipseLink/Development/JPA/Dynamic]] || /svnroot/rt/org.eclipse.persistence/trunk/incubation/dynamic
+
| {{bug|253682}} Platform || [[User:Tom.ware.oracle.com | tware]] || [[EclipseLink/Development/Incubator/Platform]] || /svnroot/rt/org.eclipse.persistence/incubator/extensions/trunk
 
|-
 
|-
 +
! {{bug|280949}} Partitioning || [[User:douglas.clarke@oracle.com|dclarke]] || [[EclipseLink/Development/Incubator/Partitioning]] || proposed
 +
|-
 +
! {{bug|304370 }} EclipseLink-Gemini JPA|| [[User:michael.keith@oracle.com|mkeith]] || [[EclipseLink/Development/Incubator/GeminiJPA]] || proposed
 
|}
 
|}
  
Line 21: Line 26:
 
The development of incubation sub-components is intended to allow rapid innovation of ideas independent of the main development while still conforming to the Eclipse development and IP rules.  
 
The development of incubation sub-components is intended to allow rapid innovation of ideas independent of the main development while still conforming to the Eclipse development and IP rules.  
  
==== Creating a new Incubation Sub-Component ====
+
==== Creating a new Incubator Feature ====
  
In order to create a new incubation sub-component the following steps should be followed:
+
In order to create a new incubation feature the following steps should be followed:
  
# Open a bug or enhancement request for the proposed incubation work
+
# Open a bug or enhancement request for the proposed incubation feature and assign it to the '''Incubator''' component
#* Include INCUBATION in the summary and whiteboard to enable searching
+
# Send an email to the eclipselink-dev@eclipse.org mailing list proposing the bug for development in the EclipseLink Incubator
#** EXAMPLE: ''Dynamic Persistence - INCUBATION''
+
# After approval at the weekly meeting assign it to yourself in status '''Assigned'''
# Send an email to the eclipselink-dev@eclipse.org mailing list proposing the bug for development in the incubation component
+
# At the next weekly committer meeting present the idea and seek approval
+
  
 
The creation and development of the sub-component should include the following:
 
The creation and development of the sub-component should include the following:
  
 
* Create a WIKI for the work under: wiki.eclipse.org/Development/...
 
* Create a WIKI for the work under: wiki.eclipse.org/Development/...
** Explain the work being developed
+
** Explain the feature being developed
 
** Functional requirements and design  
 
** Functional requirements and design  
 
** How to download use and provide feedback  
 
** How to download use and provide feedback  
 +
** What version does it work with and which version the work is being developed in
 +
** Any build/test/package instructions
 +
** Any usage documentations
 +
** Any other useful information to facilitate use and feedback
 +
  
 
* Create a folder in the incubation component for the work /trunk/incubation/...
 
* Create a folder in the incubation component for the work /trunk/incubation/...
 
** Folder should contain a project and ANT build/package scripts (''Note: These will only be executed manually'')  
 
** Folder should contain a project and ANT build/package scripts (''Note: These will only be executed manually'')  
  
* During development ensure all commits clearly indicate the incubation sub-component and bug #
+
* During development ensure all commits clearly indicate the incubator feature and bug #
** EXAMPLE: ''Incubation-Dynamic-200045: Added support for JPA eclispelink-orm.xml metadata processing''
+
** EXAMPLE: ''Incubation-Dynamic-200045: Added support for JPA eclipselink-orm.xml metadata processing''
  
 
==== Promoting an Incubation Sub-Component ====
 
==== Promoting an Incubation Sub-Component ====
Line 49: Line 57:
  
 
Upon completion of moving an incubation sub-component into the main project components the incubation folders should be deleted in an SVN transaction and the wiki pages involved should be updated to reflect the completed state of the work.
 
Upon completion of moving an incubation sub-component into the main project components the incubation folders should be deleted in an SVN transaction and the wiki pages involved should be updated to reflect the completed state of the work.
 +
 +
==== Common Incubation Header ====
 +
<source lang="java">
 +
/*******************************************************************************
 +
* Copyright (c) 1998, 2008 Oracle. All rights reserved.
 +
* This program and the accompanying materials are made available under the
 +
* terms of the Eclipse Public License v1.0 and Eclipse Distribution License v. 1.0
 +
* which accompanies this distribution.
 +
* The Eclipse Public License is available at http://www.eclipse.org/legal/epl-v10.html
 +
* and the Eclipse Distribution License is available at
 +
* http://www.eclipse.org/org/documents/edl-v10.php.
 +
*
 +
* Contributors:
 +
*    dclarke - Dynamic Persistence INCUBATION - Enhancement 200045
 +
*    http://wiki.eclipse.org/EclipseLink/Development/JPA/Dynamic
 +
*   
 +
* This code is being developed under INCUBATION and is not currently included
 +
* in the automated EclipseLink build. The API in this code may change, or
 +
* may never be included in the product. Please provide feedback through mailing
 +
* lists or the bug database.
 +
******************************************************************************/
 +
</source>
 +
 +
== SVN Structure ==
 +
 +
Incubation work will developed in SVN in a peer folder to the main component's trunk folder.
 +
 +
http://dev.eclipse.org/svnroot/rt/org.eclipse.persistence/incubator/
 +
 +
Each incubation effort will create a sub-folder in here with its own structure for branching and maintaining the IDE projects used.
 +
 +
Example:
 +
 +
* /incubator
 +
** /dynamic
 +
*** /trunk
 +
**** /org.eclipse.persistence.core.dynamic - ''Project containing the extensions to core''
 +
**** /org.eclipse.persistence.jpa.dynamic - ''Project containing the extensions to JPA''
 +
**** /eclispelink.core.test.dynamic - ''Project containing the extensions to core's testing''
 +
**** /eclispelink.jpa.test.dynamic - ''Project containing the extensions to JPA's testing''
 +
 +
[[Category:EclipseLink|Incubator]]

Latest revision as of 10:49, 16 June 2011

[edit] EclipseLink Incubator

The Incubator component of EclipseLink allows new functionality to be developed in isolation of the shipped components. The purpose is to allow consumers to optionally try out the incubation functionality and provide feedback so that it can evolve to meet the needs of the community.

What should incubate? In deciding when a new incubation sub-component should be created the committers should consider the opportunity incubation allows to gather feedback and evolve the solution without effecting the existing product or imposing any backwards compatibility requirements.

[edit] Current Incubation Sub-Components

Name Committer(s) Wiki SVN Location
bug 253682 Platform tware EclipseLink/Development/Incubator/Platform /svnroot/rt/org.eclipse.persistence/incubator/extensions/trunk
bug 280949 Partitioning dclarke EclipseLink/Development/Incubator/Partitioning proposed
bug 304370 EclipseLink-Gemini JPA mkeith EclipseLink/Development/Incubator/GeminiJPA proposed

[edit] Incubation Process Guidelines

The development of incubation sub-components is intended to allow rapid innovation of ideas independent of the main development while still conforming to the Eclipse development and IP rules.

[edit] Creating a new Incubator Feature

In order to create a new incubation feature the following steps should be followed:

  1. Open a bug or enhancement request for the proposed incubation feature and assign it to the Incubator component
  2. Send an email to the eclipselink-dev@eclipse.org mailing list proposing the bug for development in the EclipseLink Incubator
  3. After approval at the weekly meeting assign it to yourself in status Assigned

The creation and development of the sub-component should include the following:

  • Create a WIKI for the work under: wiki.eclipse.org/Development/...
    • Explain the feature being developed
    • Functional requirements and design
    • How to download use and provide feedback
    • What version does it work with and which version the work is being developed in
    • Any build/test/package instructions
    • Any usage documentations
    • Any other useful information to facilitate use and feedback


  • Create a folder in the incubation component for the work /trunk/incubation/...
    • Folder should contain a project and ANT build/package scripts (Note: These will only be executed manually)
  • During development ensure all commits clearly indicate the incubator feature and bug #
    • EXAMPLE: Incubation-Dynamic-200045: Added support for JPA eclipselink-orm.xml metadata processing

[edit] Promoting an Incubation Sub-Component

After the incubation work has reached maturity and the owning committer(s) wish to promote it into the product. This should be done under standard project development with other committers reviewing the requirements, design, implementation, and tests prior to committing.

Upon completion of moving an incubation sub-component into the main project components the incubation folders should be deleted in an SVN transaction and the wiki pages involved should be updated to reflect the completed state of the work.

[edit] Common Incubation Header

/*******************************************************************************
 * Copyright (c) 1998, 2008 Oracle. All rights reserved.
 * This program and the accompanying materials are made available under the 
 * terms of the Eclipse Public License v1.0 and Eclipse Distribution License v. 1.0 
 * which accompanies this distribution. 
 * The Eclipse Public License is available at http://www.eclipse.org/legal/epl-v10.html
 * and the Eclipse Distribution License is available at 
 * http://www.eclipse.org/org/documents/edl-v10.php.
 *
 * Contributors:
 *     dclarke - Dynamic Persistence INCUBATION - Enhancement 200045
 *     			 http://wiki.eclipse.org/EclipseLink/Development/JPA/Dynamic
 *     
 * This code is being developed under INCUBATION and is not currently included 
 * in the automated EclipseLink build. The API in this code may change, or 
 * may never be included in the product. Please provide feedback through mailing 
 * lists or the bug database.
 ******************************************************************************/

[edit] SVN Structure

Incubation work will developed in SVN in a peer folder to the main component's trunk folder.

http://dev.eclipse.org/svnroot/rt/org.eclipse.persistence/incubator/

Each incubation effort will create a sub-folder in here with its own structure for branching and maintaining the IDE projects used.

Example:

  • /incubator
    • /dynamic
      • /trunk
        • /org.eclipse.persistence.core.dynamic - Project containing the extensions to core
        • /org.eclipse.persistence.jpa.dynamic - Project containing the extensions to JPA
        • /eclispelink.core.test.dynamic - Project containing the extensions to core's testing
        • /eclispelink.jpa.test.dynamic - Project containing the extensions to JPA's testing