platform-ui-home/contributing/checklist.html

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.5 - (download) (as text) (annotate)
Wed Oct 25 17:30:35 2006 UTC (3 years, 1 month ago) by johna
Branch: MAIN
CVS Tags: HEAD
Changes since 1.4: +1 -1 lines
moved API evolution guidelines to wiki
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
  <title>UI Component Development Resources</title>
  <meta http-equiv="Content-Type"
 content="text/html; charset=iso-8859-1">
  <link rel="stylesheet" href="http://dev.eclipse.org/default_style.css"
 type="text/css">
</head>
<body bgcolor="#ffffff" text="#000000">
<p></p>
<table border="0" cellpadding="2" cellspacing="5" width="100%">
  <tbody>
    <tr> 
      <td colspan="2" align="left" bgcolor="#0080c0" valign="top"><b><font
 color="#ffffff" face="Arial,Helvetica"> Platform UI Component Contributors Check 
        List </font></b></td>
    </tr>
    <tr> 
      <td align="right" valign="top" width="2%"><img
 src="http://dev.eclipse.org/images/Adarrow.gif" alt="List title arrow"
 border="0" height="16" width="16"></td>
      <td width="98%"><p><b>Plug-in Check list</b> </p>
        <p>Contributing new function in a plug-in often occurs when features built 
          in other products tend to reveal solid generic capabilities that all 
          UI developers might want to use. In this case the process followed generally 
          involves the following steps:</p>
        <ol>
          <li>Existing plug-in is seen as a useful feature at the level of the 
            Platform UI 
            <ol>
              <li>Ideally the plug-in proves itself by being shipped in 1 or more 
                releases of prefereably multiple products</li>
              <li>Ideally requests from the community are being sent to Platform 
                UI asking for this feature</li>
              <li>Always good to have at least two (2) scenarios ready that will 
                be clients of this feature in to help solidify the robustness 
                of the new API</li>
            </ol>
          </li>
          <li>Contact is made with Platform UI requesting the feature be moved 
            down</li>
          <li>Discussion over the feature ensues. 
            <ol>
              <li>If agreed upon, then committment is discussed. 
                <ol>
                  <li>contributing team needs to provide 2 or more names of developers 
                    who will maintain the code 
                    <ol>
                      <li>NOTE: this means the exisiting Platform UI team generally 
                        will not absorb code in this case, you must continue to 
                        maintain it</li>
                    </ol>
                  </li>
                  <li>without this committment the code does not go in</li>
                </ol>
              </li>
            </ol>
          </li>
          <li>Code reviews occur</li>
          <li>JUnit Tests must be provided that verify the new feature</li>
          <li>Once the tests and code are ready the projects are requested to 
            be created along with user privilidges</li>
          <li>Then the code is committed and made part of the builds </li>
        </ol></td>
    </tr>
    <tr> 
      <td align="right" valign="top" width="2%"><img
 src="http://dev.eclipse.org/images/Adarrow.gif" alt="List title arrow"
 border="0" height="16" width="16"></td>
      <td width="98%"> <b>Code Check list</b> <ul>
          <li>Follow the Eclipse Platform's <a href="http://dev.eclipse.org/conventions.html">Standards, Conventions and Guidelines</a></li> 
          <li>UI will need you to use project-specific settings for compiler warnings/errors, 
            code formatting etc. that are copied from the other UI plug-ins' settings</li>
          <li>use &quot;organize imports&quot; (Ctrl-Shift-O) to clean up the 
            imports (we do not use org.eclipse.* type notation)</li>
          <li> don't put CVS headers in the files (with revision information etc.)</li>
          <li> the copyright header goes before the package declaration, starting 
            in the very first line. 
            <ul>
              <li>It may be necessary to agree on a copyright depending on who 
                is contributing the code</li>
            </ul>
          </li>
          <li>commit comments are required for all code commits, bugs should be 
            logged to track work and the bug number and a description is then 
            used in the commit comment to describe the chagne. For example when 
            fixing a bug, use &quot;Fixed bug xxx: &lt;title of bug&gt;&quot;. 
            Otherwise, describe what you did with a short sentence, this will 
            help us track the changes</li>
          <li> before committing changes, catch up to all changes made by others, 
            and then run the tests</li>
          <li> don't commit your changes if this will cause compile errors for 
            others</li>
          <li> it is considered good practice to write code that does not have 
            warnings. If possible, fix warnings existing whenever you see them, 
            they can crop up due to compiler changes occassionally</li>
          <li> non-externalized strings are considered errors, do not ship non-externalized 
            strings</li>
          <li>write/update Javadoc for all API you introduce/change. See <a href="http://wiki.eclipse.org/index.php/Evolving_Java-based_APIs">Evolving Java-based APIs</a> by Jim des Rivi&egrave;res to understand what it means to maintain an API</li>
        </ul></td>
    </tr>
    <tr> 
      <td align="right" valign="top"><img
 src="http://dev.eclipse.org/images/Adarrow.gif" alt="List title arrow"
 border="0" height="16" width="16"></td>
      <td width="98%"> <p><strong>Bugs</strong></p>
        <p>New bugs related to this feature will be sent to you as owner. Please 
          try and review all new bugs and respond as quickly as possible. We realize 
          that you might have some other full time job to worry about, but we 
          do expect some level of responsiveness. </p></td>
    </tr>
    <tr> 
      <td align="right" valign="top" width="2%"><img
 src="http://dev.eclipse.org/images/Adarrow.gif" alt="List title arrow"
 border="0" height="16" width="16"></td>
      <td width="98%"> <p><b>Build Check List</b></p>
        <ol>
          <li>Doug can you put something here?<br>
          </li>
        </ol></td>
    </tr>
    <tr> 
      <td align="right" valign="top" width="2%"><img
 src="http://dev.eclipse.org/images/Adarrow.gif" alt="List title arrow"
 border="0" height="16" width="16"></td>
      <td width="98%"> <b>Mailing Lists</b> <p> Once you are a contributor/committer 
          to Platform UI, you should be tracking the platform UI mailing list 
          to watch for issues related to what you've been doing, and feel free 
          to be part of other development discussions that affect your component. 
          See the<a href="../dev.html"> UI Development page</a> for our mailing 
          list information.</p>
        <p>In addition you should follow the <a href="http://dev.eclipse.org/mailman/listinfo/platform-releng-dev">platform-releng-dev</a> 
          to track build and test failures in your component, upon seeing them 
          in a build they should be immediately resolved.</p></td>
    </tr>
    <tr> 
      <td align="right" valign="top" width="2%"><img
 src="http://dev.eclipse.org/images/Adarrow.gif" alt="List title arrow"
 border="0" height="16" width="16"></td>
      <td width="98%"> <b>Patches</b> <ul>
          <li>patches should be provided by way of bug reports with email to a 
            committer if you need them applied</li>
        </ul></td>
    </tr>
  </tbody>
</table>
</body>
</html>