| <?php require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/app.class.php"); require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/nav.class.php"); require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/menu.class.php"); $App = new App(); $Nav = new Nav(); $Menu = new Menu(); include($App->getProjectCommon()); # All on the same line to unclutter the user's desktop' |
| |
| #***************************************************************************** |
| # |
| # committer_howto.php |
| # |
| # Author: Martin Oberhuber |
| # Date: 2006-05-23 |
| # |
| # Description: Committer Howto for the DSDP TM Project |
| # |
| # |
| #**************************************************************************** |
| |
| # |
| # Begin: page-specific settings. Change these. |
| $pageTitle = "TM Committer Howto"; |
| $pageKeywords = "DSDP, Target Management, Committer, Howto, Guidelines, IP"; |
| $pageAuthor = "Martin Oberhuber"; |
| |
| # Add page-specific Nav bars here |
| # Format is Link text, link URL (can be http://www.someothersite.com/), target (_self, _blank), level (1, 2 or 3) |
| # $Nav->addNavSeparator("My Page Links", "downloads.php"); |
| # $Nav->addCustomNav("My Link", "mypage.php", "_self", 3); |
| # $Nav->addCustomNav("Google", "http://www.google.com/", "_blank", 3); |
| |
| # End: page-specific settings |
| # |
| |
| # Paste your HTML content between the EOHTML markers! |
| $html = <<<EOHTML |
| |
| <div id="midcolumn"> |
| <h1>$pageTitle</h1> |
| <p>While we do not want to get too process-heavy, there are a few simple |
| things that will make all our lives easier. Here are a few "howto..." |
| cookbook-style instructions for performing typical committer tasks.</p> |
| |
| <p>If you need any background information regarding these instructions, |
| look at the <a href="committer_guide.php">committer guidelines</a>. |
| |
| <p>How do I... |
| <ul> |
| <li><a href="#check_code">Properly check my code before checkin</a></li> |
| <li><a href="#format_checkin_comment">Format my checkin comment</a></li> |
| <li><a href="#checkin_fix">Work with bugs and fixes</a></li> |
| <li><a href="#external_contrib">Apply a patch from an external contributor</a></li> |
| <li><a href="#project_log">Edit the TM Project Log (tm-log.csv)</a></li> |
| <li><a href="#sloccount">Count lines of code in a contribution</a></li> |
| <li><a href="#legacy_code">Add some legacy code to the project</a></li> |
| <li><a href="#add_plugin">Add a plugin or other project to the workspace</a></li> |
| <li><a href="#fix_copyrights">Find missing or incorrect Copyright notices in my code and fix them</a></li> |
| </ul> |
| </p> |
| |
| <a name="check_code"></a> |
| <h2>Properly check my code before checkin</h2> |
| <ul> |
| <li>Ensure that you have <a href="/dsdp/tm/development/compiler_warnings.php">Compiler Warnings |
| </a> switched on as recommended. For every file that you modify, please ensure that it |
| compiles without warnings before you check it in.</li> |
| <li>Keep the <a href="http://wiki.eclipse.org/DSDP/TM/Code_Ownership"> |
| Code Ownership Page</a> up-to-date on the Wiki.</li> |
| </ul> |
| |
| <a name="format_checkin_comment"></a> |
| <h2>Format my checkin comment</h2> |
| <p> |
| There are |
| <a href="http://wiki.eclipse.org/Search_CVS%2C_Release_Notes%2C_%26_Build_News"> |
| tools available</a> which build a MySQL database of all CVS |
| checkins and allow searching it, or even associate checkins with |
| bugzilla bugs in order to generate release notes: |
| for example see the |
| <a href="http://www.eclipse.org/modeling/emf/searchcvs.php?q=project%3A+org.eclipse.emf+days%3A+7"> |
| EMF Search CVS</a> and |
| <a href="http://www.eclipse.org/modeling/emf/news/relnotes.php?project=emf&version=HEAD"> |
| EMF Release Notes</a>.</p> |
| <p> |
| At the TM project, we'll want to make use of these tools as soon |
| as possible. In order to associate cvs checkins with bugzilla, |
| these tools need the bug id properly formatted in the checkin comment. |
| Multiple formats are supported, but this is the preferred one (see also |
| <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=164719"> |
| bug 164719</a> and |
| <a href="http://dev.eclipse.org/mhonarc/lists/cross-project-issues-dev/msg00732.html"> |
| this e-mail</a>): |
| <ul> |
| <li>All checkin comments should be formatted like this:<br/> |
| <b>[123456] fixing ugly images</b><br/> |
| <b>[123456] apply patch from Ewa Matejska for remotecdt-over-dstore</b><p/> |
| Where the number [123456] references a bugzilla number, of course. Checkins that fix |
| multiple bugs should have the various bug numbers listed on a separate line of the |
| checkin comment each. |
| </ul> |
| |
| <a name="checkin_fix"></a> |
| <h2>Work with bugs and fixes</h2> |
| <ul> |
| <li>See the <a href="/dsdp/tm/development/bug_process.php">Bug Process Page</a> |
| for bugzilla queries to find interesting bugs, and our general bug process |
| (handling bugzilla states and priorities)</li> |
| <li>Test your fix once to verify that it actually works - if this is |
| not too difficult. You may also place a note on the bugzilla report, |
| asking the original submitter to verify.</li> |
| <li>Ideally, write a JUnit test to make sure the bug will not creep |
| in again (may not always be applicable).</li> |
| <li>Commit your fix, <a href="#format_checkin_comment">adding the bugzilla number</a> |
| to the commit message. |
| Example: <ul> |
| <li><b>[139207] fix browsing into tar archives by dstore</b></li> |
| </ul></li> |
| <li>Set the <b>bugzilla report FIXED</b> and verify that the bugzilla |
| <b>Target Milestone</b> reflects the version that your fix is about |
| to go into. The bugzilla comment along with the state change |
| should include some help that allows a reader to understand what was done. Some good examples:<ul> |
| <li><b>Fixed by correcting id in files.ui/plugin.xml</b></li> |
| <li><b>Fixed in SystemViewPart and other *ViewPart files by using common action handler</b></li> |
| </ul> |
| The comment in bugzilla should be short enough so that it is not |
| much effort creating it. But long enough to help a later |
| reader find the corresponding change in cvs, and/or get some idea |
| what the problem actually was and what was done about it: |
| <ul> |
| <li>In case a single file was changed, a reference to the filename is sufficient</li> |
| <li>In case multiple files were changed, the most dominant file is often sufficient</li> |
| <li>In case lots of files were changed, the plugin or the component is fine</li> |
| </ul></li> |
| </ul> |
| |
| <a name="external_contrib"></a> |
| <h2>Apply a patch from an external contributor</h2> |
| <ul> |
| <li>Ensure that the patch is on <b>bugzilla</b>. If not, ask the contributor |
| to create a bugzilla entry. This is requird even for patches from |
| co-workers in your own company!</li> |
| <li><b>Contact the contributor</b> and ask the following (see the |
| <a href="http://www.eclipse.org/legal/EclipseLegalProcessPoster.pdf"> |
| Eclipse Legal Poster</a>): |
| <ul><li>If this is the first time the contributor makes a contribution: |
| Contact information for IP records - Name, Company, E-Mail, Office address, Office phone.</li> |
| <li>Did you write the contribution yourself?</li> |
| <li>Did you reference any 3rd party material?</li> |
| <li>If yes, under what terms (license) did you receive this material?</li> |
| <li>Are you authorized by your employer to make the contribution?</li> |
| </ul> |
| In the typical case (no IP problems expected), the contributor should put |
| a message like the following on the bugzilla report that holds his/her patch: |
| <p style="border: thin 1px dashed; background-color: ivory; |
| padding-top: 2px; |
| padding-left: 2px; |
| padding-right: 2px; |
| padding-bottom: 2px"> |
| Legal Message: I, {name}, declare that I developed attached code from |
| scratch, without referencing any 3rd party materials except material |
| licensed under the EPL. {I am authorized by my employer to make this |
| contribution under the EPL.} |
| </p> |
| </li> |
| <li>Apply the patch in a <b>test workspace</b>, and review the code for any obvious traces |
| of copyright breaches, blasphemy or "bad words". It makes sense to have a |
| separate workspace for applying patches only, such that your current work |
| on other things is not affected negatively.</li> |
| <li><b>Collaborate with the contributor</b> (i.e. exchange e-mails) until the patch satisfies your needs. |
| Doing so educates our contributors, keeps the process transparent, and takes work off committers: |
| <ul><li>Patch works on HEAD (if not: ask contributor to re-base and re-submit the patch)</li> |
| <li>Contributor''s name added to the Copyright section of all modified files</li> |
| <li>Coding style appropriate</li>. |
| </ul></li> |
| <li>If the contribution is more than 250 lines of code and the contributor |
| is not from your own company, or there is any |
| uncertainty about licening and purity of IP and copyrights: fill out |
| a Contribution Questionnaire (available from the |
| <a href="https://dev.eclipse.org/committers/">committer tools</a>)</li> |
| <li>Once IP due diligence is completed: Apply the patch and commit it. Do not |
| make local modifications between applying and committing, in order to keep the |
| process transparent. <b>Put the bugzilla number on the commit message</b>.</li> |
| <li>Add a line describing the contribution to the <b>tm-log.csv</b> Project Log, see |
| <a href="#project_log">below</a>.</li> |
| <li>Add the keyword <b>contributed</b> to the bugzilla report that the patch came |
| from. Verify that the bugzilla <b>Target Milestone</b> reflects the |
| version that your fix is about to go into, then set the bugzilla report |
| to <b>FIXED</b>. |
| </ul> |
| |
| <a name="project_log"></a> |
| <h2>Edit the TM Project Log (tm-log.csv)</h2> |
| <ul> |
| <li>The Project Log is required as per the Eclipse |
| <a href="http://www.eclipse.org/projects/dev_process/project-log.php"> |
| Project Log Guidelines</a>. It records every non-committer-contribution |
| (including legacy code contributions). Please keep it up-to-date.</li> |
| <li><a name="www_tm_dev"></a> |
| Add the <b>www-tm-development</b> project to your workspace. |
| You can do this most easily by importing the Team Project set |
| from<ul><li> |
| <a href="http://www.eclipse.org/dsdp/tm/development/www-tm-development.psf"> |
| http://www.eclipse.org/dsdp/tm/development/www-tm-development.psf</a> |
| </li></ul></li> |
| <li>When you already have the www-tm-development project in your workspace, |
| <b>update it</b> before editing -- this saves you from having to merge before checkin.</li> |
| <li>In the www-tm project, add a line for the contribution in the <b>tm-log.csv</b> |
| file. There are some sample lines already, so adding one should not be too hard.</li> |
| <li>For <a href="#sloccount">counting lines of code</a> see the section below.</li> |
| <li><b>Commit</b> the changed tm-log.csv file.</li> |
| </ul> |
| |
| <a name="sloccount"></a> |
| <h2>Count lines of code in a contribution</h2> |
| <ul> |
| <li>For Eclipse IP review bookkeeping, we need to count lines of code in contribution, |
| INCLUDING xml files, documentation, readmes, property files and so on. Most |
| known code counters do not fulfill these needs. The simple shellscripts |
| below count all lines of all text files except empty lines.</li> |
| <li>We optionally also suppress lines that only contain whitespace, empty comments |
| or {} charactes. This is in order to account for different coding styles, |
| which might prefer to have the { characters on a separate line or not.</li>' |
| <li><img src="http://www.eclipse.org/images/new.gif"/> |
| We now have scripts to count the lines of code in a contribution. Download |
| any of the following: |
| <ul> |
| <li><a href="http://www.eclipse.org/downloads/download.php?file=/dsdp/tm/div/line_count_scripts-2.0RC1.tar">line_count_scripts-2.0RC1.tar</a> |
| <li><a href="http://www.eclipse.org/downloads/download.php?file=/dsdp/tm/div/line_count_scripts-2.0RC1.zip">line_count_scripts-2.0RC1.zip</a> |
| </ul> |
| These scripts count all lines in either a patch or a list of directories, |
| suppressing binary files and optionally also empty lines or lines containing |
| only empty comments. See the script source code for details. |
| <ul> |
| <li>UNIX shellscripts should run out of the box. On Windows, Cygwin is |
| required. Windows .bat files are provided as wrappers if cygwin is |
| not your primary environment. The .bat files expect the cygwin bin |
| directory in your PATH or installed in C:\Cygwin\bin - change the |
| .bat file if you do not like this assumption.</li> |
| <li>For contributions supplied as an archive, use the |
| <a href="http://dev.eclipse.org/viewcvs/index.cgi/www/dsdp/tm/development/scripts/lc?root=Eclipse_Website&view=co"> |
| lc script</a> |
| (plus |
| <a href="http://dev.eclipse.org/viewcvs/index.cgi/www/dsdp/tm/development/scripts/lc.bat?root=Eclipse_Website&view=co"> |
| lc.bat</a> if you are on Windows). Run it |
| with one or more directories to count as arguments. <b>Example:</b><br/> |
| <code> |
| # Count lines in all RSE plugins, including empty lines<br/> |
| lc -e org.eclipse.rse.* |
| </code> |
| </li> |
| <li>For contributions supplied as a patch, use the |
| <a href="http://dev.eclipse.org/viewcvs/index.cgi/www/dsdp/tm/development/scripts/lcp?root=Eclipse_Website&view=co"> |
| lcp script</a> |
| (plus |
| <a href="http://dev.eclipse.org/viewcvs/index.cgi/www/dsdp/tm/development/scripts/lcp.bat?root=Eclipse_Website&view=co"> |
| lcp.bat</a> if you are on Windows). |
| Run it with the patch file as argument. <b>Example:</b><br/> |
| <code> |
| # Count lines in contributed patch for bug 12345<br/> |
| lcp bug12345_patch.diff.txt |
| </code> |
| </li> |
| </ul></li> |
| </ul> |
| |
| <a name="legacy_code"></a> |
| <h2>Add some legacy code to the project</h2> |
| <ul> |
| <li>Obtain <b>PMC Member Approval</b>: Write an e-mail to |
| <a href="mailto:dsdp-pmc@eclipse.org">dsdp-pmc@eclipse.org</a>, |
| describing the intended contribution. Give the PMC an idea of how large the |
| contribution is, what it is good for (cryptography?), and if there are |
| any other licenses than the EPL involved.</li> |
| <li>PMC Member Approval should be returned by E-Mail.</li> |
| <li>Create a <b>Bugzilla Entry</b> holding the contribution in a form that is suitable for checkin. |
| A ZIP archive of all the files/projects affected is fine.</li> |
| <li>Fill in a Contribution Questionnaire (available from the |
| <a href="https://dev.eclipse.org/committers/">committer tools</a>) |
| and wait for EMO approval.</li> |
| <li>Once approved, check in the contribution. Dont forget to add the <b>bugzilla number |
| on the commit message.</b> Commit the code verbatim as from the bug entry first, |
| and make any necessary modifications later.</li> |
| <li>If project(s) were added, update the <b>*.psf Project Set Files</b> (see |
| <a href="#add_plugin">below</a>). |
| <li>Add a line describing the contribution to the <b>tm-log.csv</b> Project Log, see |
| <a href="#project_log">above</a>.</li> |
| </ul> |
| |
| <a name="add_plugin"></a> |
| <h2>Add a plugin or other project to the workspace</h2> |
| <ul> |
| <li>Commit your modifications.</li> |
| <li>In the <b>www-tm-development</b> project (see <a href="#www_tm_dev">above</a> for how |
| to get it), update the <b><a href="/dsdp/tm/development/cvs_setup"> |
| team project sets</a></b>. |
| You can either export a selection as team project set, and sort |
| the lines afterwards (e.g. in Emacs, do M-X sort-lines). Or, edit the |
| project set manually. For the pserver version, you typically need to replace-all |
| ":extssh:" by ":pserver:".</li> |
| <li>Send an <b>E-mail</b> to dsdp-tm-dev, informing everybody that team project sets |
| have been updated with your new plugins.</li> |
| <li>For <b>release engineering</b> purposes, it may be necessary to also reference your |
| new plugins in an existing feature, add new features, modify Mapfiles |
| and/or the ANT files for nightly builds in the project <tt>org.eclipse.rse.build</tt>. |
| These tasks can all be accomplished by your build and release engineer, |
| so this is another reason for sending an <b>E-mail to dsdp-tm-dev</b> |
| when you added a new plugin. |
| </ul> |
| |
| <a name="fix_copyrights"></a> |
| <h2>Find missing or incorrect Copyright notices in my code and fix them</h2> |
| <ul> |
| <!-- |
| <li>Please use the Releng tool from the bottom of the |
| <a href="http://archive.eclipse.org/eclipse/downloads/drops/R-3.2-200606291905/index.php"> |
| Eclipse 3.2 Download Page</a></li> |
| <li>See the description there: "6. Fix Copyrights"</li> |
| --> |
| <li>Please use the Releng tool from the bottom of the |
| <a href="http://archive.eclipse.org/eclipse/downloads/drops/R-3.3-200706251500/index.php#org.eclipse.releng"> |
| Eclipse 3.3 Download Page</a></li> |
| <li>See the description there at the end of the page: |
| <a href="http://archive.eclipse.org/eclipse/downloads/drops/R-3.3-200706251500/details.php#org.eclipse.releng">Fix Copyright</a></li> |
| <li>For more detail information about "Fix Copyright" vs. "Advanced Fix Copyrights" also see |
| <ul><li><a href="http://dev.eclipse.org/mhonarc/lists/cross-project-issues-dev/msg01116.html">This message</a> on cross-project-issues-dev</li> |
| <li><a href="http://dev.eclipse.org/mhonarc/lists/cross-project-issues-dev/msg01118.html">This message</a> which was a reply on it</li> |
| <li><a href="http://dev.eclipse.org/mhonarc/lists/dsdp-tm-dev/msg01214.html">This message</a> on dsdp-tm-dev</li> |
| </ul></li> |
| </ul> |
| |
| <p/> |
| </div> |
| |
| EOHTML; |
| |
| # Generate the web page |
| $App->generatePage($theme, $Menu, $Nav, $pageAuthor, $pageKeywords, $pageTitle, $html); |
| ?> |