| <html> |
| <head> |
| <title> |
| Mylar FAQ |
| </title> |
| </head> |
| <body> |
| <center><h1>Mylar Contributor Reference</h1></center> |
| <p>Those interested in contributing should start out by emailing |
| <a href="mailto:mylar-dev@eclipse.org">mylar-dev@eclipse.org</a> in order to get |
| an idea of the current priorities. Also refer to the list of <a href="https://bugs.eclipse.org/bugs/buglist.cgi?query_format=advanced&short_desc_type=allwordssubstr&short_desc=&product=Mylar&long_desc_type=allwordssubstr&long_desc=&bug_file_loc_type=allwordssubstr&bug_file_loc=&keywords_type=allwords&keywords=helpwanted&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&emailtype1=substring&email1=&emailtype2=substring&email2=&bugidtype=include&bug_id=&votes=&chfieldfrom=&chfieldto=Now&chfieldvalue=&cmdtype=doit&order=Reuse+same+sort+as+last+time&field0-0-0=noop&type0-0-0=noop&value0-0-0="> |
| reports marked help wanted</a>. </p> |
| <ul> |
| <li><a href="#contributing-intro">Introduction</a></li> |
| <li><a href="#contributing-setup">Workspace setup</a></li> |
| <li><a href="#tests">Running tests</a></li> |
| <li><a href="#bootstrap">Working bootstrapped</a></li> |
| <li><a href="#contributing-patches">Contributing patches</li> |
| <!-- <li>Building</li>--> |
| </a></li> |
| <li><a href="#building-jira">Building the JIRA Connector</a></li> |
| <li><a href="#building-trac">Building the Trac Connector</a></li> |
| <li><a href="#building-dist">Building a distribution</a></li> |
| <li><a href="#web-site-authoring">Web site authoring</a></li> |
| </ul><hr width="50%"> |
| <h3> <br> |
| <a name="contributing-setup">Workspace setup</a></h3> |
| <ul> |
| <li>Building Mylar feature from HEAD requires |
| the latest Eclipse milestone release and |
| <a href="http://java.sun.com/j2se/1.5.0/download.jsp">JDK 1.5</a>. |
| Associate the J2SE-1.5 with your installed JRE on the Execution Environments preference page. </li> |
| <li>In the CVS Repositories view, add the following CVS location: |
| <b>HOST =</b> dev.eclipse.org <b>Repository Path</b>: |
| /cvsroot/technology.<br>If you do not have an account you may enter <b>anonymous</b> for the user name |
| and leave the password blank.</li> |
| <li>Check out all of the projects under org.eclipse.mylar (except mylar.jira, |
| mylar.sandbox, mylar.viz, and mylar.zest.* which have additional |
| dependencies). There should be no errors or warnings.</li> |
| <li>Run org.eclipse.mylar.tests.AllTests as a JUnit Plug-in Test, with |
| assertions enabled. All tests should pass and there should be no |
| console output.</li> |
| </ul> |
| <hr> |
| <h3><a name="tests">Running tests</a></h3> |
| <p>Each component has it's own All<Component>Tests suite, and all can be run |
| via org.eclipse.mylar.tests.AllTests. </p> |
| <ul> |
| <li>Add the following to the test configuration under Arguments -> VM |
| Arguments: -enableassertions -Xmx384M</li> |
| <li>Add a <b>credentials.properties</b> file to |
| org.eclipse.mylar.bugzilla.tests, and define "username: xxx" and |
| "password: yyy" in it. Email mylar-dev@ecipse.org for a username and |
| password.</li> |
| </ul> |
| <hr> |
| <h3><a name="building-jira">JIRA Connector</a></h3> |
| <ul> |
| <li>Get the latest <a href="http://subclipse.tigris.org/download.html"> |
| Subclipse</a> plug-in, e.g. from the following update site: |
| subclipse.tigris.org/update_1.0.x</li> |
| <li>Set up a Subversion repository for |
| <a href="http://jira-dashboard.tigris.org/">JIRA Dashboard</a> (see the |
| <a href="http://jira-dashboard.tigris.org/servlets/ProjectSource">JIRA |
| Dahsboard doc</a> for troubleshooting):<ul> |
| <li>username: <code>guest</code> </li> |
| <li>password: <blank></li> |
| <li>repository: |
| <a href="http://jira-dashboard.tigris.org/svn/jira-dashboard/trunk"> |
| http://jira-dashboard.tigris.org/svn/jira-dashboard/trunk</a></li> |
| </ul> |
| </li> |
| <li>Check out the JIRA Dashboard Core features:<ul> |
| <li>org.tigris.jira.core</li> |
| <li>org.tigris.jira.core.soap</li> |
| <li>org.tigris.jira.core-feature</li> |
| </ul> |
| </li> |
| <li>Create a working set that excludes <i>org.tigris.jira</i> plug-ins |
| so that you have no warnings in the Problems list</li> |
| <li>Note that the JIRA connector has it's own test suite: <i> |
| org.eclipse.mylar.jira.tests.AllJiraTests</i></li> |
| </ul> |
| <hr> |
| <h3><a name="building-trac">Trac Connector</a></h3> |
| <ul> |
| <li>Get the latest <a href="http://subclipse.tigris.org/download.html"> |
| Subclipse</a> plug-in, e.g. from the following update site: |
| subclipse.tigris.org/update_1.0.x</li> |
| <li>Set up a Subversion repository for |
| <a href="https://oss.steffenpingel.de/"> |
| oss.steffenpingel.de</a>: |
| <ul> |
| <li>repository: |
| <a href="https://oss.steffenpingel.de/svn/mylar-trac-connector/trunk"> |
| https://oss.steffenpingel.de/svn/mylar-trac-connector/trunk</a></li> |
| </ul> |
| </li> |
| <li>Check out the library which is required by the connector:<ul> |
| <li>org.apache.xmlrpc</li> |
| </ul> |
| </li> |
| <li>Note that the Trac connector has it's own test suite: <i> |
| org.eclipse.mylar.trac.tests.AllTracTests</i></li> |
| </ul> |
| <hr> |
| <h3><a name="bootstrap">Working bootstrapped</a> </h3> |
| <p>Working bootstrapped (i.e. self-hosted) makes eating your own dog food easier |
| and avoids having to update to dev builds:</p> |
| <ul> |
| <li>Set up a fresh workspace launched from an Eclipse that does not have |
| Mylar installed, and check out Mylar into |
| it.</li> |
| <li>Create a new <i>Launch Configuration</i>, point it at your workspace, |
| and work in that. Note that the launching workspace will typically |
| consume very little memory.</li> |
| <li>Whenever your changes make it into HEAD close your runtime |
| workspace, update from CVS, and then re-launch. It is possible to |
| run in debug mode so that the changes apply to the workspace immediately |
| after synch, but this can cause problems with the running workspace if |
| classes change or go missing.</li> |
| </ul> |
| <hr> |
| <h3><a name="contributing-patches">Contributing patches</a> </h3> |
| <p>All contributions to Mylar including patches should be made by using |
| Mylar in order to ensure that we |
| <a href="http://en.wikipedia.org/wiki/Eat_one's_own_dog_food">eat our our |
| own dog food</a>. A task context should be attached to each patch to |
| make applying and evolving it easier.</p> |
| <ul> |
| <li>Each patch should correspond to a single bug report, and a single |
| patch should be made for each set of changes to be reviewed.</li> |
| <li>With few exceptions patches should be accompanied by a JUnit test, |
| and in general unit tests are one of the most valuable and long-lived |
| contributions. If you are having trouble writing a test (e.g. |
| trickiness verifying what happens in the UI) comment on the |
| corresponding bug report so that we can point you at similar test cases |
| or consider extending the test harness if needed. </li> |
| <li>Minimize the amount of changes to existing code to make review |
| easier. </li> |
| <li>Synchronize often to ensure you have the latest code. Once you |
| start modifying resources, put the Synchronize view in Outgoing mode and press |
| the Change Set button so that Mylar tracks the context for the patch.</li> |
| <li>Before creating a new JUnit test class class check the components test |
| suite for similar test cases (e.g. |
| <tt>AllTasklistTests</tt>).</li> |
| <li>Set the formatter by importing org.eclipse.mylar/developer/javaFormatterSettings.xml |
| into Window -> Preferences -> Java -> Code Style -> Formatter. |
| Format code using Eclipse's formatter (Ctrl+Shift+F) |
| and ensure that no have been added.</li> |
| <li>Add an @author tag to each class that you create.</li> |
| <li>Ensure that there is no console output. For logging errors use |
| <tt>MylarStatusHandler</tt>.</li> |
| </ul> |
| <p>To submit:</p> |
| <ul> |
| <li>Ensure there are no build errors, warnings, and that <tt>org.eclipse.mylar.tests.AllTests</tt> passes.</li> |
| <li>Synchronize using Incoming mode and ensure that there are no |
| conflicts, and merge them locally if there are.</li> |
| <li>Right click the task context change set (or the project containing |
| the patch--patches should be made for a project, not a file), press Team |
| -> Create Patch, and make the file suffix ".txt".</li> |
| <li>Attach the patch to the bug report, and <i>indicate in the comment |
| what testing was done to validate it</i> (e.g. unit test coverage, |
| manual tests performed).</li> |
| <li>Attach the task context to the bug report.</li> |
| </ul> |
| <hr> |
| <h3><a name=building-dist>Building a distribution</a></h3> |
| <ul> |
| <li>Using PDE Build support to create a Mylar distribution from HEAD, using |
| a plain Eclipse 3.2<ul> |
| <li>org.eclipse.mylar-feature/feature.xml -> Overview -> change version |
| number to current date (e.g. 0.4.7.v20060125-0800)<ul> |
| <li>On Plug-ins tab -> Versions... -> Force feature version into plug-in and |
| fragment manifests</li> |
| <li>Repeat above for org.eclipse.mylar-bugzilla-feature.xml</li> |
| </ul> |
| </li> |
| <li>org.eclipse.mylar-site/e3.2/site.xml<ul> |
| <li>Delete old features (grayed out)</li> |
| <li>Add new mylar-bugzilla and mylar features</li> |
| <li>Hit Build All (if this fails restart Eclipse and try again)</li> |
| </ul> |
| </li> |
| </ul> |
| </li> |
| <li>To install, add the path of org.eclipse.mylar-site/e3.2/site.xml as a |
| local update site</li> |
| <li>Bugzilla support can be built independently of the Mylar UI by checking |
| out the following projects mylar.bugzilla.core, mylar.bugzilla.ui, |
| mylar.tasklist, mylar.core </li> |
| </ul> |
| <p>Merging and building the 3.1 branch:</p> |
| <ul> |
| <li>Right-click the org.eclipse.mylar.java, mylar.ide, and mylar.xml |
| project, <i>Team</i> -> <i>Switch to Another Branch...</i>, then <i>Refresh</i> the |
| <i>Branches</i> |
| and select <b>e_3_1 </b></li> |
| <li>The list of files that should not be overwritten is in: |
| org.eclipse.mylar-site/merge.text</li> |
| </ul> |
| <p>Deploying:</p> |
| <ul> |
| <li>Instructions are in org.eclipse.mylar-site/release.txt</li> |
| </ul> |
| <hr> |
| <h3><a name=web-site-authoring>Web site authoring</a></h3> |
| <ul> |
| <li>Create a new CVS location: dev.eclipse.org:/cvsroot/org.eclipse</li> |
| <li>Check out www/mylar as a project</li> |
| <li>To push documentation from org.eclipse.mylar.doc to the web site use the |
| targets in mylar/build.xml</li> |
| </ul> |
| <p> </p> |
| </body></html> |