Enriching Mylyn's Task Context with Breakpoints
Short description: Mylyn does a great job building a context for our tasks. Yet, it is currently focused on files and resources that are used while accomplishing a task. However, nowadays the IDE has access to far more artifacts and activities that can be mapped to a task - for example: builds, reviews or commits. I propose to extend the Mylyn context model in order to allow for adding all different kinds of artifacts. Further, I propose to use this new functionality in order to add Breakpoint information to the context.
It is hardly possible to find development-related information that cannot be displayed and managed from within Eclipse. Plugins allow the platform to manage all kind of connections to remote systems - like SCM-systems, build-server or database-server. All of these additional plugins might contain task-related information that would be a nice addition to Mylyn's task context. As an example, think of team provider that contribute SCM paths to the Mylyn context and thus allow adopters of the context to check out the resources required to solve the task with one click.
However, Mylyn currently does not provide APIs to allow third-party plugins to publish additional information to the context and there are a lot of things to be considered before this step might be possible. The backwards compatibility of context information should for example be secured. Also, if a third-party plugin adds additional information to the context, developers should still be able to use the context without the requirement to install the third-party plugin.
The main goal of this Google Summer of Code project is to come up with a concept and implementation to make the Mylyn context more flexible in the described way. Then, I am going to provide a reference implementation that adds breakpoints to the Mylyn context.
Breakpoint Support for Mylyn is an often discussed and requested feature and should be a straightforward example for the new APIs. See for example the ongoing discussion on Bug #155333.
What are your Deliverables?
First, I am going to deliver new Mylyn APIs that enable third-party plugins to contribute task-relevant information to the context. Then, I will provide an example implementation for those APIs, which adds breakpoint information to the context.
What are your Milestones?
July 9th: midterm evaluation
July 10th - August 1st: implementation of a plugin that adds breakpoints to the context
August 1st - August 13th: bug fixing, documentation, spreading the word
August 13th: Pencil down date
How much time can you spend on this project?
The GSoC is a great learning experience for students. I will spend a lot of time getting to know the required technologies and thinking of ways to solve occurring problems during the project. For sure there will also be a lot of full-time coding weeks to achieve the project goals. Ultimately, I am also going to work further on this topic after the end of Google Summer of Code 2012 and do a master's thesis on research topics that are related to Mylyn.
What skills do you already have that will help you complete this project?
During the Summer of Code 2010 I was able to get to know some facades of the huge ecosystem that empowers Eclipse technologies. I worked on a Google Wave provider for the Eclipse Communication Framework during the summer and continued the work as a committer after the end of the program. Since that time, I've been working on several Eclipse projects and have tried to stay in touch with the community during visits at EclipseCon.
I have about 5 years of experience with Java development working part-time for a major German ISP. During this time I learned about project management and software engineering in general and used Java as my main programming language.
What do you expect from your mentor?
Mylyn is a great and widely adopted Eclipse plugin. Thus, I am going to think twice before providing any patch that adds additional functionality to the project. However, in order to make sure that I am able to reach the high level of quality that Mylyn is known for, I expect advice on the implementation concept and code reviews from my mentor.
Who are you?
My name is Sebastian Schmidt (Email: email@example.com, Skype-ID: schmidt-seb). Currently enrolled in a graduate program in computer science at Technical University Munich, I am going to continue my studies at The University of British Columbia starting this fall. I am very passionate about software engineering and always search for new challenges besides my studies.