blob: d927dc964a8f9f8ec32baf02cb9949066ac8eebc [file] [log] [blame]
<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.&nbsp; 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>.&nbsp;</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>&nbsp; <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>.&nbsp;
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&nbsp; <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).&nbsp; There should be no errors or warnings.</li>
<li>Run org.eclipse.mylar.tests.AllTests as a JUnit Plug-in Test, with
assertions enabled.&nbsp; 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&lt;Component&gt;Tests suite, and all can be run
via org.eclipse.mylar.tests.AllTests.&nbsp; </p>
<ul>
<li>Add the following to the test configuration under Arguments -&gt; VM
Arguments: -enableassertions -Xmx384M</li>
<li>Add a <b>credentials.properties</b> file to
org.eclipse.mylar.bugzilla.tests, and define &quot;username: xxx&quot; and
&quot;password: yyy&quot; 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: &lt;blank&gt;</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.&nbsp; 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.&nbsp; 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>.&nbsp; 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.&nbsp; 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.&nbsp; </li>
<li>Synchronize often to ensure you have the latest code.&nbsp; 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 -&gt; Preferences -&gt; Java -&gt; Code Style -&gt; Formatter.&nbsp;
Format code using Eclipse's formatter (Ctrl+Shift+F)
and ensure that no&nbsp; have been added.</li>
<li>Add an @author tag to each class that you create.</li>
<li>Ensure that there is no console output.&nbsp; 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
-&gt; Create Patch, and make the file suffix &quot;.txt&quot;.</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 -&gt; Overview -&gt; change version
number to current date (e.g. 0.4.7.v20060125-0800)<ul>
<li>On Plug-ins tab -&gt; Versions... -&gt; 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> -&gt; <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>&nbsp; </p>
</body></html>