Skip to main content
Jump to: navigation, search

Difference between revisions of "Kepler Project Plan"

(initial project plan proposal.)
 
 
(73 intermediate revisions by 6 users not shown)
Line 1: Line 1:
 
''Proposed by: [[User:Jcasey.mergere.com|Jcasey.mergere.com]] 14:35, 8 December 2006 (EST)''
 
''Proposed by: [[User:Jcasey.mergere.com|Jcasey.mergere.com]] 14:35, 8 December 2006 (EST)''
  
=== Kepler Proposal Information ===
+
''Modified by: [[User:slewis.composent.com|slewis at composent.com]] 14:55, 11 December 2006 (PST)''
  
* [http://www.eclipse.org/proposals/kepler/ Original Proposal]
+
''Commented by: [[User:henrik.lindberg.cloudsmith.com|henrik at cloudsmith.com]] 08:38, 12 December 2006 (EST)''
* [[Kepler Working Proposal|Working Proposal (wiki)]]
+
  
=== Notes and Conventions ===
+
''Commented by: [[User:slewis.composent.com|slewis at composent.com]] 12:48, 12 December 2006 (PST)''
  
* This project should be divided into a series of relatively short milestones, each of which will trigger a new release of the Kepler project once completed. Milestones should be achievable in six weeks, plus or minus one week.
+
''Commented and Edited by: [[User:slewis.composent.com|slewis at composent.com]] 12:25, 26 December 2006 (PST)''
  
* I'm referring to files formatted using the native Kepler project model syntax as '''kmodel-extension''' files, since they are meant to catch project metadata that cannot be stored in the original metadata files for the project.
+
''Commented by: [[User:thomas.tada.se|thomas at tada.se]] 17:19, 26 December 2006 (EST)''
 +
 
 +
''Updated by: [[User:carlos.sanchez.devzuz.com|carlos.sanchez at devzuz.com]] 19:37, 25 August 2007 (CEST)''
 +
 
 +
=== Kepler Project Proposal ===
 +
 
 +
* [http://www.eclipse.org/proposals/kepler/ Original Proposal]
 +
* [[Kepler Working Proposal|Working Proposal (wiki)]]
  
 
=== Proposed Schedule ===
 
=== Proposed Schedule ===
  
 
''NOTE: Notation '''<nowiki>'d'</nowiki>''' signifies the date of Kepler project approval with EMO, since this will keep us from having a code repository, etc. @EF.''
 
''NOTE: Notation '''<nowiki>'d'</nowiki>''' signifies the date of Kepler project approval with EMO, since this will keep us from having a code repository, etc. @EF.''
 +
 +
'''NOTE: This proposed schedule is DRAFT and subject to change based upon input from other participants about related project plans and schedules'''
  
 
{| class="wikitable" border="1" cellspacing="0" cellpadding="2"
 
{| class="wikitable" border="1" cellspacing="0" cellpadding="2"
Line 30: Line 38:
 
|}
 
|}
  
<div id="Milestone 1"/>
+
=== Notes and Conventions ===
=== Milestone 1 ===
+
 
 +
* This project should be divided into a series of relatively short milestones, each of which will trigger a new release of the Kepler project once completed.  Milestones should be achievable in six weeks, plus or minus one week.
 +
 
 +
* Files formatted using the (new) native Kepler project model syntax as '''kmodel-extension''' files, since they are meant to catch project metadata that cannot be stored in the original metadata files for the project.
 +
 
 +
----
 +
 
 +
=== Kepler Integration Strategy ===
 +
 
 +
'''NOTE''': The general strategy for implementing Kepler deliverables listed below will be integration of existing technologies from both Eclipse projects (e.g. Buckminster, PDE, ALF, Corona, EMFT, ECF, Phoenix, etc), and other open source community resources (e.g. Apache Maven, Bugzilla, Php, contributed new technologies, Continuum, Eclipse Wiki, etc).  The desire is to leverage as much of existing efforts as possible, avoid reimplementation and rework, and cooperatively use all available expertise and technology for '''Community Lifecycle Mangagement''' (you heard it hear first :).
 +
 
 +
<div style="border: 2px solid #8E87EB; padding: 6px;">Here is a comment.  Please feel free to insert your own comments inline below by reusing this markup. ''--Scott Lewis''</div>
 +
 
 +
<div id="Milestone 1">
 +
 
 +
----
 +
 
 +
=== Milestone 1 : Core Model Definition ===
 +
 
 +
==== EMF Models for the core model and base extensions ====
 +
 
 +
Provide the core schema for handling the storage of project meta-data. 
 +
 
 +
For more information on the core structure see [[Proposed_Kepler_Collaboration_Model_Structure]].
 +
 
 +
Also define a set of core project, version and artifact facets that can be used to capture common information.
 +
 
 +
==== Definition of meta-data around artifacts ====
 +
 
 +
Provide a clearer definition around the artifacts side of the project model.  Understanding how to represent the artifacts (files) that are part of the project and are key to collaborating and consuming the project.
 +
 
 +
==== Maven2 and PDE model adapters (integration with Buckminster) ====
  
==== Headless Eclipse-Plugin and OSGi Builds ====
+
Work with Buckminster to define how we can leverage their ability to parse different project types and gather project information that can be used in collaboration.
  
* Support building simple Eclipse plugin projects from Maven/Continuum using pde-maven-plugin from Codehaus Mojo project.
+
==== Collaboration Model Viewer/Editor ====
** '''EXIT CRITERIA:''' BIRT, GEF, ECF projects can be built in headless mode on Continuum ''(not necessarily integrated into the projects themselves; we can work on that goal from this milestone on)''
+
  
==== Build Management ====
+
Provide an Eclipse editor that can be used to create/view or edit a collaboration model.  The core editor will provide access to the core model,  through the use of extension points you will be able to register editor sections to represent different facets of the collaboration model.  This will allow people to create extensions to the editor when new facets are defined.
     
+
* Initial Framework to orchestrate external builds from Kepler using native Kepler project model.
+
  
==== Common Project Model ====
+
See [[Kepler_Collaboration_Model_Editor]]
  
* Define extensible Kepler project model API
+
</div>
* Read native Eclipse project files using existing parsers, and construct a Kepler project instance in memory
+
** ''.project''
+
** ''.classpath''
+
** ''MANIFEST.MF''
+
** ''plugin.xml''
+
** ''feature.xml''
+
* Define Kepler native file format, for capturing augmented model information not captured by the original project metadata files
+
* Support generating project metadata in one of many specific metadata formats, regardless of metadata origin
+
** Mark each generated metadata file as '''GENERATED''' in a header comment, to warn users against modifying it
+
** Mark original set of project metadata files as authoritative, plus kmodel-extras file
+
  
<div id="Milestone 2"/>
+
<div id="Milestone 2">
=== Milestone 2 ===
+
  
==== Headless Eclipse-Plugin and OSGi Builds ====
+
----
  
* Maven plugin to automate/orchestrate the various steps which are currently explicit when performing PDE/plugin builds within Maven using the pde-maven-plugin ''(to be contributed back to pde-maven-plugin at codehaus)''
+
=== Milestone 2 : Adapters and UI ===
* Other possible refinements to clean up the way the pde-maven-plugin works, accommodating more Eclipse versions and/or installation variables.
+
  
==== Build Management ====
+
==== Definition of integration with component model from Buckminster ====
 +
==== Definition of extension points for extending collaboration model ====
 +
==== Definition of extension points for extending collaboration model viewer/editor ====
 +
==== Integration of Corona Event notifications in Collaboration model ====
  
* Builder bindings: Ability to execute "main build" for any integrated build tool whenever the Eclipse project is built in the IDE.
+
</div>
** Execute Maven build using ''defaultGoal'' specification from the POM
+
** Consolidation of Europa Common Build Infrastructure Ant scripts inside a PDE-specific Kepler-Ant integration point. ''(NOTE: this requires help from those who know PDE/CBI more thoroughly)''
+
*** Using Kepler, allow augmentation of standard PDE builds using these CBI scripts/scriptlets.
+
* Accessory builds (using the build tool to execute a non-default build activity, such as generating javadocs)
+
** Support for calling specific Maven lifecycle phases/goals
+
** Support for calling specific Buckminster actions.
+
** Support for calling specific Ant targets
+
  
==== Common Project Model ====
+
<div id="Milestone 3">
 
+
* Possible refinements to accommodate Corona, Buckminster, other interested projects ''(NOTE: this depends on discussions with other projects to determine alignment, etc.)''
+
* Tracking of the origin for each model element ''(for eventual write-back purposes)''
+
* Selection of searchable artifact sources to be used for current project ''(using configured sources, above)''
+
* Search for project dependencies using artifact sources ''(see configuration, above)''
+
** Use generic dialog provider base for common search elements.
+
** Use extension point to augment search form elements.
+
* Graphical editor for Kepler model
+
** Synchronization with Eclipse .project/.classpath/etc. files
+
** Track which elements should be modified using external editors ''(i.e. not embeddable in the Kepler editor)''
+
*** spawn that editor when one of these elements is chosen for editing
+
**** if possible, track the spawned editor, and when it is saved, check whether we can change the modified state ''(label decoration)'' for the main model editor.
+
  
==== Configuration (currently global-only, not per-project) ====
+
----
  
* Model
+
=== Milestone 3 : Definition of Collaboration Storage Extensions ===
** Preferred external project metadata format
+
*** Eclipse .project/.classpath + kmodel-externals files
+
* Searchable artifact sources
+
** Ordering of these sources
+
* Build Management
+
** Extension point for configuring external tools
+
  
<div id="Milestone 3"/>
+
==== Definition of concept of Project Store and Artifact Store ====
=== Milestone 3 ===
+
==== API definitions for Project Store and Artifact Store (WSDL) ====
 +
==== UI components for searching Project Store and Artifact Store ====
 +
==== Integration of Q4E for generating model for Maven ====
 +
==== Integration of PDE/Java for generating model from Eclipse projects ====
  
''NOTE: This milestone will remain incomplete until we know more from the outcomes of previous milestones.''
+
</div>
  
==== Build Management ====
+
<div id="Milestone 4">
  
* Support graphical configuration helper-classes per plugin
+
----
** Search for graphical editor helper-class for each plugin; use default XML-editor if not found.
+
* Search for plugins
+
** Add plugin repository (select from searchable artifact source list, filtered for entry with Maven capabilities)
+
* Project-level integration for Problems/Errors view
+
** Filtering by type of Kepler problem
+
* User input/prompt dialog framework (to allow external build tool to prompt the user for information)
+
  
==== Build Server ====
+
=== Milestone 4 : Project Store and Integration Extensions ===
  
* Support for Add/Remove/Edit of project definitions on the build server
+
==== Prototype of local Project Store and Artifact Store ====
* Support for Triggered builds that starts browser window to monitor build results using native build-server interface.
+
==== Extension point definition to allow tooling to integrate based on Collaboration Model ====
  
==== Configuration ====
+
</div>
 
+
* Support per-project configuration of all existing Kepler options
+
* Build Server
+
** Global build-server list
+
  
<div id="Milestone 4"/>
+
<div id="Milestone 5">
=== Milestone 4 ===
+
  
''NOTE: This milestone will remain incomplete until we know more from the outcomes of previous milestones.''
+
----
  
==== Build Server ====
+
=== Milestone 5 : Integration ===
  
* Support for graphical management of build server
+
==== Integration of Corona ====
* Replace build monitoring/results browser window with integrated notifications framework for remote events.
+
==== Integration of ECF (IRC/Jabber) ====
** Track elapsed time
+
==== Integration of SCM tooling ====
** Track accumulated output
+
==== Integration of Mylyn ====
** Support multiple monitor types
+
*** Polling monitor: Configurable polling period
+
*** Async monitor: monitor abstract event connection (can be JMS/socket/etc.)
+
** Event/Process management interface for gaining access to server-side controls available for that process.
+
  
==== Configuration ====
+
</div>
  
* Build Server
+
<div id="Milestone 6">
** Per-project configuration of build server(s) to be used
+
*** Allow selection from global list
+
*** Allow one-off configuration of build server(s) for that project only
+
  
<div id="Milestone 5"/>
+
----
=== Milestone 5 ===
+
  
''NOTE: This milestone will remain incomplete until we know more from the outcomes of previous milestones.''
+
=== Milestone 6 : Integration of Build/CI Servers ===
  
==== Build Server Goals ====
+
==== Definition of Build/CI server API (Buckminster) ====
 +
==== UI Components for Build Servers ====
 +
==== Meta-data extensions for builds servers ====
  
* Support backing up/restoring build server configuration to/from file.
+
</div>
* Tool Detection
+
** Support abstract detection mechanism for use in various detection scenarios ''(below)''.
+
** Support detection of build servers; add to the global build-server list
+
** Support detection of remote dependency sources
+

Latest revision as of 17:46, 1 February 2012

Proposed by: Jcasey.mergere.com 14:35, 8 December 2006 (EST)

Modified by: slewis at composent.com 14:55, 11 December 2006 (PST)

Commented by: henrik at cloudsmith.com 08:38, 12 December 2006 (EST)

Commented by: slewis at composent.com 12:48, 12 December 2006 (PST)

Commented and Edited by: slewis at composent.com 12:25, 26 December 2006 (PST)

Commented by: thomas at tada.se 17:19, 26 December 2006 (EST)

Updated by: carlos.sanchez at devzuz.com 19:37, 25 August 2007 (CEST)

Contents

Kepler Project Proposal

Proposed Schedule

NOTE: Notation 'd' signifies the date of Kepler project approval with EMO, since this will keep us from having a code repository, etc. @EF.

NOTE: This proposed schedule is DRAFT and subject to change based upon input from other participants about related project plans and schedules

Proposed schedule for Kepler milestones.
Milestone Start Date Target Date Comments
#Milestone 1 d + 1 week d + 7 weeks 1-week delay anticipated to get CVS, other infrastructure setup @EF.
#Milestone 2 d + 9 weeks d + 15 weeks 1-week delay expected to review/fix process using lessons from first dev cycle.
#Milestone 3 d + 16 weeks d + 22 weeks
#Milestone 4 d + 23 weeks d + 29

Notes and Conventions

  • This project should be divided into a series of relatively short milestones, each of which will trigger a new release of the Kepler project once completed. Milestones should be achievable in six weeks, plus or minus one week.
  • Files formatted using the (new) native Kepler project model syntax as kmodel-extension files, since they are meant to catch project metadata that cannot be stored in the original metadata files for the project.

Kepler Integration Strategy

NOTE: The general strategy for implementing Kepler deliverables listed below will be integration of existing technologies from both Eclipse projects (e.g. Buckminster, PDE, ALF, Corona, EMFT, ECF, Phoenix, etc), and other open source community resources (e.g. Apache Maven, Bugzilla, Php, contributed new technologies, Continuum, Eclipse Wiki, etc). The desire is to leverage as much of existing efforts as possible, avoid reimplementation and rework, and cooperatively use all available expertise and technology for Community Lifecycle Mangagement (you heard it hear first :).

Here is a comment. Please feel free to insert your own comments inline below by reusing this markup. --Scott Lewis

Milestone 1 : Core Model Definition

EMF Models for the core model and base extensions

Provide the core schema for handling the storage of project meta-data.

For more information on the core structure see Proposed_Kepler_Collaboration_Model_Structure.

Also define a set of core project, version and artifact facets that can be used to capture common information.

Definition of meta-data around artifacts

Provide a clearer definition around the artifacts side of the project model. Understanding how to represent the artifacts (files) that are part of the project and are key to collaborating and consuming the project.

Maven2 and PDE model adapters (integration with Buckminster)

Work with Buckminster to define how we can leverage their ability to parse different project types and gather project information that can be used in collaboration.

Collaboration Model Viewer/Editor

Provide an Eclipse editor that can be used to create/view or edit a collaboration model. The core editor will provide access to the core model, through the use of extension points you will be able to register editor sections to represent different facets of the collaboration model. This will allow people to create extensions to the editor when new facets are defined.

See Kepler_Collaboration_Model_Editor


Milestone 2 : Adapters and UI

Definition of integration with component model from Buckminster

Definition of extension points for extending collaboration model

Definition of extension points for extending collaboration model viewer/editor

Integration of Corona Event notifications in Collaboration model


Milestone 3 : Definition of Collaboration Storage Extensions

Definition of concept of Project Store and Artifact Store

API definitions for Project Store and Artifact Store (WSDL)

UI components for searching Project Store and Artifact Store

Integration of Q4E for generating model for Maven

Integration of PDE/Java for generating model from Eclipse projects


Milestone 4 : Project Store and Integration Extensions

Prototype of local Project Store and Artifact Store

Extension point definition to allow tooling to integrate based on Collaboration Model


Milestone 5 : Integration

Integration of Corona

Integration of ECF (IRC/Jabber)

Integration of SCM tooling

Integration of Mylyn


Milestone 6 : Integration of Build/CI Servers

Definition of Build/CI server API (Buckminster)

UI Components for Build Servers

Meta-data extensions for builds servers

Back to the top