Jump to: navigation, search

Difference between revisions of "Mylyn/Hudson Integration for Mylyn"

(Schedule)
 
(36 intermediate revisions by 2 users not shown)
Line 1: Line 1:
== Hudson Integration for Mylyn ==
+
This page tracks the status of the [http://code.google.com/soc/ GSOC] project "Hudson integration for Mylyn".<br />
 +
Student: Markus Knittig<br />
 +
Mentor: Steffen Pingel
  
This page contains the project proposal created by [[mailto:harshana05@gmail.com Harshana Martin]] for the idea of "Hudson Integration for Mylyn" from the [[http://wiki.eclipse.org/Google_Summer_of_Code_2010_Ideas GSoc 2010 idea list]]. I am extreamly happy to have comments from the viewers.
+
== About ==
  
== Summery  ==
+
The goal of this projects is to integrate Hudson with Mylyn. It will be part of Mylyn/Build after the [http://eclipse.org/project-slides/mylyn-restructuring-review.html restructuring of Mylyn]. It should provided the following features:
 
+
* Monitoring build statuses in Eclipse
Eclipse Mylyn is the task and application lifecycle management (ALM) framework for Eclipse. under this Mylyn project there are several sub projects as Tasks, Context, SCM, Build, Docs and etc. The project idea "Hudson integration for Mylyn" is aiming at implementing a client application which implements Hudson's remote APIs and OSLC-Automation RESTful service APIs for interoperability among different vendors and platforms and implementing the basic UI layer for Eclipse that displays build status, console output and test results for builds.
+
* Viewing build details in Eclipse
 +
* Running a build from within Eclipse
 +
* Viewing test results in Eclipse
 +
* Viewing a build log in Eclipse
 +
* Adding a task from a failed build in Eclipse
  
 
== Details  ==
 
== Details  ==
  
Eclipse Mylyn is the task and application lifecycle management (ALM) framework for Eclipse. under this Mylyn project there are several sub projects as Tasks, Context, SCM, Build, Docs and etc. Integration with the Hudson continuous build server is categorized under the Build sub project since this provides a reference implementation to the Build server integration which follows the set of Open standard APIs called OSLC-Automation. So this implementation will follow the Open standard APIs for build automation which is known as OSLC-Automation. These set of standard APIs provides interoperability among different software/hardware vendors as well as different software/hardware platforms. So any set of software and hardware will be able to communicate with another different set of software and hardware which follows the same APIs. This provides the information exchange less painful and less overhead.
+
=== Package structure ===
  
When we consider the build automation Hudson CI server is one of the widely used servers. It provides users to build system automatically without human intervention upon set of triggers such as SCM commits, time based triggers such as nightly builds. But the problem is currently there is no UI in the Eclipse IDE which provides access to the Hudson server. So the users who are using Hudson server can write code in Eclipse and then commit it to their respective SCM system from Eclipse IDE using CVS, Subversion, Egit and other SCM integrations.But then to check whether code compiles well, he/she has to switch to a web browser to check the hudson server status. So if we can provide the Hudson integration, then users can write code, commit code and test and validate code from the Eclipse IDE without switching to any other view. So this will decrease the context switching among tasks of humans and it will increase the productivity of developers.  
+
The project namespace will be ''org.eclipse.mylyn.hudson''.
 +
The namespace for common build infrastructure will be ''org.eclipse.mylyn.builds''.
  
Implementation work of this project can be divided to 2 different sections.
+
=== Remote API ===
  
#Provide a basic UI layer for Eclipse that displays build status, console output and test results for builds.
+
The project will consume the Hudson API via REST/XML with JAXB as marshaller (using the provided xml schemas).
#Implement a client for Hudson's remote API which follows OSLC-Automation API for interoperability.
+
  
The project can be divided in to several stages as follow.
+
=== Common Builds API ===
  
#Research on the Hudson CI Server, Hudson Remote API and API access, OSLC-Automation API and it's RESTful service APIs.
+
The common builds API should consist of at least the following components:
#Research on the Mylyn codebase, code conventions, jFace and other UI components.
+
* A builds view (See [http://confluence.atlassian.com/download/attachments/169118592/EclipseBambooViewWithDropdown.png Bamboo] and [http://tasktop.com/blog/wp-content/uploads/2010/03/cruise.png Cruise])
#Implementing the client application for Hudson's remote API &amp; Testing.  
+
** Flat or hierarchical -> probably both
#Implementation/Integration with OSLC-Automation RESTful service APIs &amp; Testing.  
+
* Specialized task view for builds with the following parts
#Implement the Basic UIs for the above mentioned features.  
+
** Summary
#Integration of UI with the client application which implements the Hudson's Remote API &amp; Testing.  
+
** Tests (JUnit)
#Completing documentation.
+
** Code changes (depends on Mylyn SCM)
 
+
** Build log
== Project Scope  ==
+
 
+
#Implementing basic UI layer for Eclipse that displays build status, console output and test results for builds.
+
#implementing a client for Hudson's remote API and OSLC-Automation RESTful remote services APIs.
+
#Integration of above components with the existing Mylyn project
+
 
+
== Deliverables  ==
+
 
+
#A complete set of tools to access the Hudson Continuous Integration server from the Eclipse IDE via Mylyn with interoperability with other vendors and different hardware platforms.
+
#A Proper documentation guide for users and the developers.
+
  
 
== Schedule  ==
 
== Schedule  ==
Line 46: Line 42:
 
! Date  
 
! Date  
 
! Planned&nbsp; items
 
! Planned&nbsp; items
 +
! Status
 +
! Bugzilla Entry
 
|- style="background: lightgrey none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;"
 
|- style="background: lightgrey none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;"
 
! M1  
 
! M1  
| May 3, 2010  
+
| May 9, 2010  
| align="left" | Research on the Hudson CI Server, Hudson Remote API and API access, OSLC-Automation API and it's RESTful service APIs.
+
| align="left" | A Research on the Hudson CI Server, Hudson Remote API and API access.
 +
| [[Image:Ok green.gif]]
 +
| {{bug|312928}} {{bug|314770}}
 
|- style="background: lightgrey none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;"
 
|- style="background: lightgrey none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;"
 
! M2  
 
! M2  
| May 24, 2010  
+
| May 23, 2010  
| align="left" | Research on the Mylyn codebase, code conventions, jFace and other UI components.
+
| align="left" | Set up basic mylyn connector infrastructure. Integrated basic functions of the Hudson API.
 +
| [[Image:Ok green.gif]]
 +
| {{bug|317384}} {{bug|315151}} {{bug|317767}}
 
|- style="background: lightgrey none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;"
 
|- style="background: lightgrey none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;"
 
! M3  
 
! M3  
| June 14, 2010  
+
| June 20, 2010  
| align="left" | Implementing the client application for Hudson's remote API &amp; Testing.
+
| align="left" | Implementing features to monitor the build status in Eclipse and basic detail view as well as running a build from within Eclipse
 +
| [[Image:Progress.gif]][[Image:Glass.gif]]
 +
| {{bug|315717}} {{bug|315151}} {{bug|318228}} {{bug|317768}} {{bug|319644}} {{bug|318103}} {{bug|319340}}
 
|- style="background: lightgrey none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;"
 
|- style="background: lightgrey none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;"
 
! M4  
 
! M4  
| June 30, 2010  
+
| July 4, 2010  
| align="left" | Implementation of OSLC-Automation RESTful service APIs &amp; Testing.
+
| align="left" | Polish detail view (view console output).
 +
| [[Image:Progress.gif]]
 +
| {{bug|321192}}
 
|- style="background: lightgrey none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;"
 
|- style="background: lightgrey none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;"
 
! M5  
 
! M5  
| July 19, 2010  
+
| July 25, 2010  
| align="left" | Integration of Hudson Remote API implementation and OSLC-Automation RESTful service API implementation &amp; Testing.
+
| align="left" | Add function for adding a build description and build deletion. View JUnit tests from a build. Add a new task based on a failed build.
 +
| [[Image:Progress.gif]]
 +
| {{bug|321191}}
 
|- style="background: lightgrey none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;"
 
|- style="background: lightgrey none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;"
 
! M6  
 
! M6  
| july 26, 2010  
+
| August 8, 2010  
| align="left" | Implement the Basic UIs for the above mentioned features.
+
| align="left" | Possible improve Mylyn/Build by providing code for common functionality.
 +
| [[Image:Progress.gif]]
 +
| N/A
 
|- style="background: lightgrey none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;"
 
|- style="background: lightgrey none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;"
 
! M7  
 
! M7  
| August 2, 2010
 
| align="left" | Integration of UI with the client application which implements the Hudson's Remote API &amp; Testing.
 
|- style="background: lightgrey none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;"
 
! M8
 
| August 10, 2010
 
| align="left" | Integrating of Hudson integration with Mylyn project with the Mylyn project &amp; Testing.
 
|- style="background: lightgrey none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;"
 
! M9
 
 
| August 14, 2010  
 
| August 14, 2010  
 
| align="left" | Completing Documentation.
 
| align="left" | Completing Documentation.
 +
| [[Image:Progress.gif]]
 +
| N/A
 
|}
 
|}
 
<br>
 
 
== Challenges  ==
 
 
#Providing Interoperability among different vendors and hardware platforms.
 
 
== References  ==
 
 
#[[http://eclipse.org/project-slides/mylyn-restructuring-review.html http://eclipse.org/project-slides/mylyn-restructuring-review.html]]
 
#[[http://wiki.hudson-ci.org/display/HUDSON/Distributed+builds http://wiki.hudson-ci.org/display/HUDSON/Distributed+builds]]
 
#[[http://en.wikipedia.org/wiki/Hudson_(software) http://en.wikipedia.org/wiki/Hudson_(software)]]
 
#[[http://en.wikipedia.org/wiki/Continuous_integration http://en.wikipedia.org/wiki/Continuous_integration]]
 
#[[http://en.wikipedia.org/wiki/Application_lifecycle_management http://en.wikipedia.org/wiki/Application_lifecycle_management]]
 
#[[http://www.slideshare.net/carlo.bonamico/continuous-integration-with-hudson http://www.slideshare.net/carlo.bonamico/continuous-integration-with-hudson]]
 
#[[http://wiki.hudson-ci.org/display/HUDSON/Remote+access+API http://wiki.hudson-ci.org/display/HUDSON/Remote+access+API]]
 
#[[http://wiki.hudson-ci.org/display/HUDSON/Use+Hudson http://wiki.hudson-ci.org/display/HUDSON/Use+Hudson]]
 
#[[https://ecf2.osuosl.org/hudson/ https://ecf2.osuosl.org/hudson/]]
 
#[[http://wiki.hudson-ci.org/display/HUDSON/Exposing+data+to+the+remote+API http://wiki.hudson-ci.org/display/HUDSON/Exposing+data+to+the+remote+API]]
 
  
 
[[Category:SOC]]
 
[[Category:SOC]]

Latest revision as of 03:28, 29 July 2010

This page tracks the status of the GSOC project "Hudson integration for Mylyn".
Student: Markus Knittig
Mentor: Steffen Pingel

About

The goal of this projects is to integrate Hudson with Mylyn. It will be part of Mylyn/Build after the restructuring of Mylyn. It should provided the following features:

  • Monitoring build statuses in Eclipse
  • Viewing build details in Eclipse
  • Running a build from within Eclipse
  • Viewing test results in Eclipse
  • Viewing a build log in Eclipse
  • Adding a task from a failed build in Eclipse

Details

Package structure

The project namespace will be org.eclipse.mylyn.hudson. The namespace for common build infrastructure will be org.eclipse.mylyn.builds.

Remote API

The project will consume the Hudson API via REST/XML with JAXB as marshaller (using the provided xml schemas).

Common Builds API

The common builds API should consist of at least the following components:

  • A builds view (See Bamboo and Cruise)
    • Flat or hierarchical -> probably both
  • Specialized task view for builds with the following parts
    • Summary
    • Tests (JUnit)
    • Code changes (depends on Mylyn SCM)
    • Build log

Schedule

Milestone Date Planned  items Status Bugzilla Entry
M1 May 9, 2010 A Research on the Hudson CI Server, Hudson Remote API and API access. Ok green.gif bug 312928 bug 314770
M2 May 23, 2010 Set up basic mylyn connector infrastructure. Integrated basic functions of the Hudson API. Ok green.gif bug 317384 bug 315151 bug 317767
M3 June 20, 2010 Implementing features to monitor the build status in Eclipse and basic detail view as well as running a build from within Eclipse Progress.gifGlass.gif bug 315717 bug 315151 bug 318228 bug 317768 bug 319644 bug 318103 bug 319340
M4 July 4, 2010 Polish detail view (view console output). Progress.gif bug 321192
M5 July 25, 2010 Add function for adding a build description and build deletion. View JUnit tests from a build. Add a new task based on a failed build. Progress.gif bug 321191
M6 August 8, 2010 Possible improve Mylyn/Build by providing code for common functionality. Progress.gif N/A
M7 August 14, 2010 Completing Documentation. Progress.gif N/A