Skip to main content

Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

Mylyn/Hudson Integration for Mylyn

Hudson Integration for Mylyn

This page contains the project proposal created by [Harshana Martin] for the idea of "Hudson Integration for Mylyn" from the [GSoc 2010 idea list]. I am extreamly happy to have comments from the viewers.


Summery

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.


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.

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.

Implementation work of this project can be divided to 2 different sections.

  1. Provide a basic UI layer for Eclipse that displays build status, console output and test results for builds.
  2. 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.

  1. Research on the Hudson CI Server, Hudson Remote API and API access, OSLC-Automation API and it's RESTful service APIs.
  2. Research on the Mylyn codebase, code conventions, jFace and other UI components.
  3. Implementing the client application for Hudson's remote API & Testing.
  4. Implementation/Integration with OSLC-Automation RESTful service APIs & Testing.
  5. Implement the Basic UIs for the above mentioned features.
  6. Integration of UI with the client application which implements the Hudson's Remote API & Testing.
  7. Completing documentation.


Project Scope

  1. Implementing basic UI layer for Eclipse that displays build status, console output and test results for builds.
  2. implementing a client for Hudson's remote API and OSLC-Automation RESTful remote services APIs.
  3. Integration of above components with the existing Mylyn project


Deliverables

  1. 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.
  2. A Proper documentation guide for users and the developers.


Schedule

Milestone Date Planned  items
M1 May 3, 2010 Research on the Hudson CI Server, Hudson Remote API and API access, OSLC-Automation API and it's RESTful service APIs.
M2 May 24, 2010 Research on the Mylyn codebase, code conventions, jFace and other UI components.
M3 June 14, 2010 Implementing the client application for Hudson's remote API & Testing.
M4 June 30, 2010 Implementation of OSLC-Automation RESTful service APIs & Testing.
M5 July 19, 2010 Integration of Hudson Remote API implementation and OSLC-Automation RESTful service API implementation & Testing.
M6 july 26, 2010 Implement the Basic UIs for the above mentioned features.
M7 August 2, 2010 Integration of UI with the client application which implements the Hudson's Remote API & Testing.
M8 August 10, 2010 Integrating of Hudson integration with Mylyn project with the Mylyn project & Testing.
M9 August 14, 2010 Completing Documentation.


Challenges

  1. Providing Interoperability among different vendors and hardware platforms.


References

  1. [http://eclipse.org/project-slides/mylyn-restructuring-review.html]
  2. [http://wiki.hudson-ci.org/display/HUDSON/Distributed+builds]
  3. [http://en.wikipedia.org/wiki/Hudson_(software)]
  4. [http://en.wikipedia.org/wiki/Continuous_integration]
  5. [http://en.wikipedia.org/wiki/Application_lifecycle_management]
  6. [http://www.slideshare.net/carlo.bonamico/continuous-integration-with-hudson]
  7. [http://wiki.hudson-ci.org/display/HUDSON/Remote+access+API]
  8. [http://wiki.hudson-ci.org/display/HUDSON/Use+Hudson]
  9. [https://ecf2.osuosl.org/hudson/]
  10. [http://wiki.hudson-ci.org/display/HUDSON/Exposing+data+to+the+remote+API]

Back to the top