Difference between revisions of "Mylyn/SOC/2007/Mylyn Plug-in for DrProject"

From Eclipsepedia

< Mylyn‎ | SOC
Jump to: navigation, search
(Done)
Line 66: Line 66:
  
 
=== Done ===
 
=== Done ===
* [https://www.drproject.org/DrProject/wiki/MylarIntegration Mylyn Web Connector Configuration template] for [https://www.drproject.org DrProject] (June 1, 2007)
+
* [https://www.drproject.org/DrProject/wiki/MylarIntegration Mylyn Web Connector Configuration template] for [https://www.drproject.org DrProject] (June 4, 2007)
''Note: using this template, DrProject users can take advantage of the task and context management features provided by Mylyn. Althought the integration is limited, e.g. not rich editor support, this does provides a way for DrProject users to do everything within Eclipse, besides the attractive features of Mylyn.''
+
''Note: using this template, DrProject users can take advantage of the task and context management features provided by Mylyn. Althought the integration is limited, e.g. not rich editor support, this does provide a way for DrProject users to do everything within Eclipse, besides the attractive features of Mylyn.''
 
* First iteration of implementing [https://bugs.eclipse.org/bugs/show_bug.cgi?id=191114 191114]('''P2''') ([https://bugs.eclipse.org/bugs/show_bug.cgi?id=191114#c21 June 19, 2007])
 
* First iteration of implementing [https://bugs.eclipse.org/bugs/show_bug.cgi?id=191114 191114]('''P2''') ([https://bugs.eclipse.org/bugs/show_bug.cgi?id=191114#c21 June 19, 2007])
 
* move the network I/O operation in previewWiki() into an asynchronously running job from the UI thread ([https://bugs.eclipse.org/bugs/show_bug.cgi?id=191114#c27 June 20, 2007])
 
* move the network I/O operation in previewWiki() into an asynchronously running job from the UI thread ([https://bugs.eclipse.org/bugs/show_bug.cgi?id=191114#c27 June 20, 2007])
Line 74: Line 74:
 
* first implementation of [https://bugs.eclipse.org/bugs/show_bug.cgi?id=194269 194269]('''P2''') ([https://bugs.eclipse.org/bugs/show_bug.cgi?id=194269#c4 July 4, 2007])
 
* first implementation of [https://bugs.eclipse.org/bugs/show_bug.cgi?id=194269 194269]('''P2''') ([https://bugs.eclipse.org/bugs/show_bug.cgi?id=194269#c4 July 4, 2007])
 
* first implementation of [https://bugs.eclipse.org/bugs/show_bug.cgi?id=194827 194827]('''P2''') ([https://bugs.eclipse.org/bugs/show_bug.cgi?id=194827#c1 July 4, 2007])
 
* first implementation of [https://bugs.eclipse.org/bugs/show_bug.cgi?id=194827 194827]('''P2''') ([https://bugs.eclipse.org/bugs/show_bug.cgi?id=194827#c1 July 4, 2007])
 
+
* improving the implementation of [https://bugs.eclipse.org/bugs/show_bug.cgi?id=191114 191114]('''P2''') [https://bugs.eclipse.org/bugs/show_bug.cgi?id=191114#c46] ([https://bugs.eclipse.org/bugs/show_bug.cgi?id=191114#c48 July 6, 2007])
 +
* redesign the code structure for rendering wiki-formatted text [https://bugs.eclipse.org/bugs/show_bug.cgi?id=194827#c4] ([https://bugs.eclipse.org/bugs/show_bug.cgi?id=191114#c53 July 9, 2007])
 
=== In Progress ===
 
=== In Progress ===
* improving the implementation of [https://bugs.eclipse.org/bugs/show_bug.cgi?id=191114 191114]('''P2''') [https://bugs.eclipse.org/bugs/show_bug.cgi?id=191114#c46]
 
  
 
=== To Do ===
 
=== To Do ===
* redesign the code structure for rendering wiki-formatted text [https://bugs.eclipse.org/bugs/show_bug.cgi?id=194827#c4]
+
 
 
* solve the issues with the Browser widget [https://bugs.eclipse.org/bugs/show_bug.cgi?id=194269#c6]
 
* solve the issues with the Browser widget [https://bugs.eclipse.org/bugs/show_bug.cgi?id=194269#c6]
  

Revision as of 17:10, 9 July 2007


Student: Xiaoyang Guan
Mentor: Greg Wilson

Contents

About

Most professional programmers now use an IDE like Eclipse, and many Computer Science students have also adopted it. Most professionals and open source developers also rely on web-based project management portals such as SourceForge, Jira, and Trac. These are still not commonly used in classrooms, but projects like DrProject are working to change that. DrProject is a fork of Trac that has been customized for classrooms use; it is now being used in several courses at two universities, and is being evaluated by several others.

At present, most developers have to switch from their IDE to a browser in order to file or view bugs, edit wiki pages, and so on. One prominent exception is the Mylar project, which has been working since 2003 to provide a view inside Eclipse that allows programmers to see and update shared information, particularly from bug tracking systems like Bugzilla. The aim of this project is to bring that capability into the classroom by using Mylar to create a bridge between DrProject and Eclipse. This integration will allow students to perform the management on the repositories in DrProject directly in Eclipse.

In addition, as an enhancement to Mylar, this project will provide wiki integration. This involves providing mechanisms for rich editing and viewing of task repository comments in wiki format, potentially adding wiki editing.

Plan

Wiki Integration

The first primary goal is to support wiki formatting in task editor. This will be carried out based on the current Trac connector in Mylar. (see bug#184904)

Use Cases

  • Provide a HTML-based widget for rendering wiki-formatted text. This might involve writing a simple wiki rendering engine as a prototype. Limitation of HTML is that we can’t link to structured elements within Eclipse (e.g. Java elements in stack traces, other tasks). [EK that is not necessary true. if you create hyperlinks then you can navigate to the appropriate elements]
  • Provide a rich/styled text widget that renders the basic wiki syntax, provides rich editing, but has wiki formatting underneath so that the Trac server gets wiki text. Benefit is that this can fully link to elements within Eclipse.
  • Make it easy to paste links to Mylar tasks within wikis. This could be done by having the Copy Details action take templates similar to Mylar’s Commit Comment Templates, and specify a good default template for wiki formatting, e.g. [<url> <id>: <summary>]
  • Provide button widgets for automatically inserting wiki markup characters in input text, the same as those in the web-based interface, and a preview button that renders the ticket preview. This provides similar user experience as using the web-based interface. [EK those should be regular actions that can be bound to shortcut keys and shown on some toolbar]
  • Provide content assistant similar to that in Eclipse Java IDE that facilitates editing wiki markup syntax.

Implementations

Wiki-formatting is allowed in ticket description and comments sections. The description of an existing Trac ticket is editable, the same as the new comment section; while existing comments are read-only. In the editable sections, a new browser widget and a preview button will be added besides the current StyledText widget for editting the raw wiki text. In the read-only sections, the current StyledText widget will be replaced by a browser widget to present the text in HTML format.

Formatting the wiki text into HTML is done by calling the wiki.wikiToHtml function provided by the Trac XmlRpcPlugin. To minimize the time for opening an existing repository task, the HTML formatted presentations of the current description and existing comments will be cached offline. A round-trip to Trac repository to format the modified description and new comment only occurs when the user clicks the preview button, and this operation is run asynchronously in a separate thread from the UI thread.

Note: to build a client-side wiki text formatter in Eclipse has the follow problems, suggested by Greg Wilson [1]:

#1. Most wikis format PotentialLinkText differently depending on whether the
page being linked to actually exists or not, but the only way to know that is
to query the database where the wiki pages are stored.  The client *could*
cache that information, but that would still leave:

#2. Most wiki systems have some sort of macro facility.  In Trac, for example,
you can register bits of Python code, then invoke them to do things like list
all the wiki pages, provide backlinks, etc.  Macros usually pull stuff out of
the database.  I can't see any way to do this client-side (unless we include
interpreters for the major scripting languages and a DB proxy in the wiki
formatter, which I think is out of scope ;-).  Macros are used often enough, in
enough wiki systems, that I don't think they can be left out; if we're going to
round-trip to the server to execute macros, we might as well do one round trip
to format the whole page, no?

Progress

See bug report 191114(P2), 194269(P2), 194827(P2) for the progress.

Done

Note: using this template, DrProject users can take advantage of the task and context management features provided by Mylyn. Althought the integration is limited, e.g. not rich editor support, this does provide a way for DrProject users to do everything within Eclipse, besides the attractive features of Mylyn.

In Progress

To Do

  • solve the issues with the Browser widget [4]

Bug List

  • provide preview for new comment in Trac ticket (194827)
  • display existing comments in HTML (194269)
  • provide HTML-based widget for rendering formatted wiki text in ticket description (191114)
  • integrate Trac wiki pages with Mylar (190891)
  • Provide wiki editing facilities in task editor (184904)
  • Manage Mylar Plugin for DrProject GSOC project (185781)