Jump to: navigation, search

Difference between revisions of "TM/Code Ownership"

< TM
m
Line 1: Line 1:
Code ownership on Target Management Project
+
What do we want to achieve by explicit code ownership?
 +
* '''Integrity of the Design''': The owner is responsible for a solid extensible design.
 +
** People other than the owner can make bug fixes, but please let the owner know
 +
** Dont make design-breaking changes without letting the owner know
 +
** Typically there is a single owner for each functionality. Multiple "two-in-a-box" owners are only possible if they work very closely together
 +
** There may be a backup person for an owner, in case the owner is out-of-office.
 +
* '''Timely Bug Triage''': The owner is responsible for reviewing (and probably reassigning) bugs of his area in a timely fashion
 +
** Helps dispatching new bugs to component owners first
 +
** Ownership can be for functionality that spans multiple packages (If functionality is seen by user as a single entity)
 +
* '''Credit for Quality throuh visibility'''
 +
** Owners of a component should be publicly visible, so they can get the credit for good work
  
 
<table border=1 cellspacing=0 cellpadding=1>
 
<table border=1 cellspacing=0 cellpadding=1>
Line 6: Line 16:
 
<th>Area</th>
 
<th>Area</th>
 
<th>Plugin/Package</th>
 
<th>Plugin/Package</th>
 +
<th>Backup owner</th>
 
</tr>
 
</tr>
  
 
<tr><td rowspan=3>Dave Dykstal</td>
 
<tr><td rowspan=3>Dave Dykstal</td>
 
<td>RSE Persistency</td>
 
<td>RSE Persistency</td>
<td>org.eclipse.rse.ui/persistence</td></tr>
+
<td>org.eclipse.rse.ui/persistence</td>
 +
<td>&nbsp;</td></tr>
 
<tr>
 
<tr>
 
<td>RSE password prompt</td>
 
<td>RSE password prompt</td>
 +
<td>&nbsp;</td>
 
<td>&nbsp;</td></tr>
 
<td>&nbsp;</td></tr>
 
<tr>
 
<tr>
 
<td>RSE JUnit tests</td>
 
<td>RSE JUnit tests</td>
 +
<td>&nbsp;</td>
 
<td>&nbsp;</td></tr>
 
<td>&nbsp;</td></tr>
  
 
<tr><td rowspan="4">Dave McKnight</td>
 
<tr><td rowspan="4">Dave McKnight</td>
 
<td>RSE dstore</td>
 
<td>RSE dstore</td>
<td>org.eclipse.dstore.core<br />
+
<td>
 +
<p>org.eclipse.dstore.core<br />
 
org.eclipse.dstore.extra<br />  
 
org.eclipse.dstore.extra<br />  
 
org.eclipse.rse.connectorservice.dstore<br />
 
org.eclipse.rse.connectorservice.dstore<br />
Line 28: Line 43:
 
org.eclipse.rse.subsystems.processes.dstore<br />
 
org.eclipse.rse.subsystems.processes.dstore<br />
 
org.eclipse.rse.subsystems.shells.dstore<br />
 
org.eclipse.rse.subsystems.shells.dstore<br />
</td>
+
</p></td>
 +
<td>&nbsp;</td>
 
</tr>
 
</tr>
 
<tr>
 
<tr>
 
<td>RSE services</td>
 
<td>RSE services</td>
 
<td>
 
<td>
org.eclipse.rse.services.files<br />
+
<p>org.eclipse.rse.services.files<br />
 
org.eclipse.rse.services.processes<br />
 
org.eclipse.rse.services.processes<br />
 
org.eclipse.rse.services.search<br />
 
org.eclipse.rse.services.search<br />
 
org.eclipse.rse.services.shells<br />  
 
org.eclipse.rse.services.shells<br />  
</td>
+
</p></td>
 +
<td>&nbsp;</td>
 
</tr>
 
</tr>
 
<tr>
 
<tr>
Line 44: Line 61:
 
<p>org.eclipse.rse.core<br />
 
<p>org.eclipse.rse.core<br />
 
org.eclipse.rse.core.filters<br />
 
org.eclipse.rse.core.filters<br />
 
 
org.eclipse.rse.core.model<br />
 
org.eclipse.rse.core.model<br />
 
org.eclipse.rse.core.subsystems<br />
 
org.eclipse.rse.core.subsystems<br />
Line 52: Line 68:
 
</p>
 
</p>
 
</td>
 
</td>
 +
<td>&nbsp;</td>
 
</tr>
 
</tr>
 
<tr>
 
<tr>
 
<td>RSE views</td>
 
<td>RSE views</td>
 
<td>
 
<td>
 
 
<p>org.eclipse.rse.ui.view<br />
 
<p>org.eclipse.rse.ui.view<br />
 
org.eclipse.rse.ui.view.monitor<br />
 
org.eclipse.rse.ui.view.monitor<br />
Line 64: Line 80:
 
org.eclipse.rse.ui.widgets<br />
 
org.eclipse.rse.ui.widgets<br />
 
org.eclipse.rse.ui.widgets.services<br />
 
org.eclipse.rse.ui.widgets.services<br />
</p>
+
</p></td>
</td>
+
<td>&nbsp;</td>
 
</tr>
 
</tr>
  
  
<tr><td rowspan=4>Kushal Munir</td>
+
<tr><td rowspan=5>Kushal Munir</td>
 
<td>RSE New Connection Wizard Delegate</td>
 
<td>RSE New Connection Wizard Delegate</td>
<td>org.eclipse.rse.ui/org.eclipse.rse.ui.wizards</td></tr>
+
<td>org.eclipse.rse.ui/org.eclipse.rse.ui.wizards</td>
 +
<td>&nbsp;</td></tr>
 
<tr>
 
<tr>
 
<td>RSE Archive Handlers</td>
 
<td>RSE Archive Handlers</td>
<td>org.eclipse.rse.services.clientserver.archivehandlers</td></tr>
+
<td>org.eclipse.rse.services.clientserver.archivehandlers</td>
 +
<td>&nbsp;</td></tr>
 
<tr>
 
<tr>
 
<td>RSE core comm</td>
 
<td>RSE core comm</td>
<td>org.eclipse.rse.core.comm</td></tr>
+
<td>org.eclipse.rse.core.comm</td>
 +
<td>&nbsp;</td></tr>
 
<tr>
 
<tr>
 
<td>RSE search</td>
 
<td>RSE search</td>
<td>org.eclipse.rse.files.ui.search<br />
+
<td>
org.eclipse.rse.ui.view.search</td></tr>
+
<p>org.eclipse.rse.files.ui.search<br />
 +
org.eclipse.rse.ui.view.search
 +
</p></td>
 +
<td>&nbsp;</td></tr>
 +
<tr>
 +
<td>RSE file encodings</td>
 +
<td>(multiple)</td>
 +
<td>&nbsp;</td></tr>
  
 
<tr><td rowspan=8>Martin Oberhuber</td>
 
<tr><td rowspan=8>Martin Oberhuber</td>
 
<tr>
 
<tr>
 
<td>RSE ssh</td>
 
<td>RSE ssh</td>
<td>org.eclipse.rse.connectorservice.ssh<br/>
+
<td>
 +
<p>org.eclipse.rse.connectorservice.ssh<br/>
 
org.eclipse.rse.services.ssh<br/>
 
org.eclipse.rse.services.ssh<br/>
 
org.eclipse.rse.ssh-feature<br/>
 
org.eclipse.rse.ssh-feature<br/>
 
org.eclipse.rse.subsystems.files.ssh<br/>
 
org.eclipse.rse.subsystems.files.ssh<br/>
org.eclipse.rse.subsystems.shells.ssh</td></tr>
+
org.eclipse.rse.subsystems.shells.ssh
 +
</p></td>
 +
<td>&nbsp;</td></tr>
 
<tr>
 
<tr>
 
<td>RSE ftp</td>
 
<td>RSE ftp</td>
<td>org.eclipse.rse.ftp-feature<br/>
+
<td>
 +
<p>org.eclipse.rse.ftp-feature<br/>
 
org.eclipse.rse.services.files.ftp<br/>
 
org.eclipse.rse.services.files.ftp<br/>
org.eclipse.rse.subsystems.files.ftp</td></tr>
+
org.eclipse.rse.subsystems.files.ftp
 +
</p></td>
 +
<td>&nbsp;</td></tr>
 
<tr>
 
<tr>
 
<td>RSE local</td>
 
<td>RSE local</td>
<td>org.eclipse.rse.connectorservice.local<br/>
+
<td>
 +
<p>org.eclipse.rse.connectorservice.local<br/>
 
org.eclipse.rse.local-feature<br/>
 
org.eclipse.rse.local-feature<br/>
 
org.eclipse.rse.services.local<br/>
 
org.eclipse.rse.services.local<br/>
 
org.eclipse.rse.subsystems.files.local<br/>
 
org.eclipse.rse.subsystems.files.local<br/>
 
org.eclipse.rse.subsystems.processes.local<br/>
 
org.eclipse.rse.subsystems.processes.local<br/>
org.eclipse.rse.subsystems.shells.local</td></tr>
+
org.eclipse.rse.subsystems.shells.local
 +
</p></td>
 +
<td>&nbsp;</td></tr>
 
<tr>
 
<tr>
 
<td>RSE examples</td>
 
<td>RSE examples</td>
<td>org.eclipse.rse.examples-feature<br/>
+
<td>
 +
<p>org.eclipse.rse.examples-feature<br/>
 
org.eclipse.rse.examples.daytime<br/>
 
org.eclipse.rse.examples.daytime<br/>
 
org.eclipse.rse.examples.tutorial<br/>
 
org.eclipse.rse.examples.tutorial<br/>
org.eclipse.rse.remotecdt</td></tr>
+
org.eclipse.rse.remotecdt
 +
</p></td>
 +
<td>&nbsp;</td></tr>
 
<tr>
 
<tr>
 
<td>RSE content assist</td>
 
<td>RSE content assist</td>
<td>org.eclipse.rse.shells.ui/org.eclipse.rse.shells.ui.view </td></tr>
+
<td>org.eclipse.rse.shells.ui/org.eclipse.rse.shells.ui.view </td>
 +
<td>&nbsp;</td></tr>
 
<tr>
 
<tr>
 
<td>RSE nightly builds</td>
 
<td>RSE nightly builds</td>
<td>org.eclipse.rse.build<br/>
+
<td>
 +
<p>org.eclipse.rse.build<br/>
 
org.eclipse.rse.core-feature<br/>
 
org.eclipse.rse.core-feature<br/>
 
org.eclipse.rse.dstore-feature<br/>
 
org.eclipse.rse.dstore-feature<br/>
Line 121: Line 161:
 
org.eclipse.rse.sdk<br/>
 
org.eclipse.rse.sdk<br/>
 
org.eclipse.rse.sdk-feature<br/>
 
org.eclipse.rse.sdk-feature<br/>
org.eclipse.rse.updatesite</td></tr>
+
org.eclipse.rse.updatesite
 +
</p></td>
 +
<td>&nbsp;</td></tr>
 
<tr>
 
<tr>
 
<td>RSE manual tests</td>
 
<td>RSE manual tests</td>
<td>org.eclipse.rse.tests.manual</td></tr>
+
<td>org.eclipse.rse.tests.manual</td>
 +
<td>&nbsp;</td></tr>
  
 
<tr><td rowspan=1>Javier Montalvo</td>
 
<tr><td rowspan=1>Javier Montalvo</td>
 
<td>Discovery</td>
 
<td>Discovery</td>
<td>(org.eclipse.tm.core) discovery/*</td></tr>
+
<td>(org.eclipse.tm.core) discovery/*</td>
 +
<td>&nbsp;</td></tr>
  
 
<tr><td rowspan=1>Ted Williams</td>
 
<tr><td rowspan=1>Ted Williams</td>
 
<td>Terminalview</td>
 
<td>Terminalview</td>
<td>(org.eclipse.tm.core) terminal/*</td></tr>
+
<td>(org.eclipse.tm.core) terminal/*</td>
 +
<td>&nbsp;</td></tr>
  
 
</table>
 
</table>

Revision as of 11:50, 13 September 2006

What do we want to achieve by explicit code ownership?

  • Integrity of the Design: The owner is responsible for a solid extensible design.
    • People other than the owner can make bug fixes, but please let the owner know
    • Dont make design-breaking changes without letting the owner know
    • Typically there is a single owner for each functionality. Multiple "two-in-a-box" owners are only possible if they work very closely together
    • There may be a backup person for an owner, in case the owner is out-of-office.
  • Timely Bug Triage: The owner is responsible for reviewing (and probably reassigning) bugs of his area in a timely fashion
    • Helps dispatching new bugs to component owners first
    • Ownership can be for functionality that spans multiple packages (If functionality is seen by user as a single entity)
  • Credit for Quality throuh visibility
    • Owners of a component should be publicly visible, so they can get the credit for good work
Owner Area Plugin/Package Backup owner
Dave Dykstal RSE Persistency org.eclipse.rse.ui/persistence  
RSE password prompt    
RSE JUnit tests    
Dave McKnight RSE dstore

org.eclipse.dstore.core
org.eclipse.dstore.extra
org.eclipse.rse.connectorservice.dstore
org.eclipse.rse.dstore.security
org.eclipse.rse.services.dstore
org.eclipse.rse.subsystems.files.dstore
org.eclipse.rse.subsystems.processes.dstore
org.eclipse.rse.subsystems.shells.dstore

 
RSE services

org.eclipse.rse.services.files
org.eclipse.rse.services.processes
org.eclipse.rse.services.search
org.eclipse.rse.services.shells

 
RSE core model

org.eclipse.rse.core
org.eclipse.rse.core.filters
org.eclipse.rse.core.model
org.eclipse.rse.core.subsystems
org.eclipse.rse.subsystems.files.core
org.eclipse.rse.subsystems.processes.core
org.eclipse.rse.subsystems.shells.core

 
RSE views

org.eclipse.rse.ui.view
org.eclipse.rse.ui.view.monitor
org.eclipse.rse.ui.view.scratchpad
org.eclipse.rse.ui.view.search
org.eclipse.rse.ui.view.team
org.eclipse.rse.ui.widgets
org.eclipse.rse.ui.widgets.services

 
Kushal Munir RSE New Connection Wizard Delegate org.eclipse.rse.ui/org.eclipse.rse.ui.wizards  
RSE Archive Handlers org.eclipse.rse.services.clientserver.archivehandlers  
RSE core comm org.eclipse.rse.core.comm  
RSE search

org.eclipse.rse.files.ui.search
org.eclipse.rse.ui.view.search

 
RSE file encodings (multiple)  
Martin Oberhuber
RSE ssh

org.eclipse.rse.connectorservice.ssh
org.eclipse.rse.services.ssh
org.eclipse.rse.ssh-feature
org.eclipse.rse.subsystems.files.ssh
org.eclipse.rse.subsystems.shells.ssh

 
RSE ftp

org.eclipse.rse.ftp-feature
org.eclipse.rse.services.files.ftp
org.eclipse.rse.subsystems.files.ftp

 
RSE local

org.eclipse.rse.connectorservice.local
org.eclipse.rse.local-feature
org.eclipse.rse.services.local
org.eclipse.rse.subsystems.files.local
org.eclipse.rse.subsystems.processes.local
org.eclipse.rse.subsystems.shells.local

 
RSE examples

org.eclipse.rse.examples-feature
org.eclipse.rse.examples.daytime
org.eclipse.rse.examples.tutorial
org.eclipse.rse.remotecdt

 
RSE content assist org.eclipse.rse.shells.ui/org.eclipse.rse.shells.ui.view  
RSE nightly builds

org.eclipse.rse.build
org.eclipse.rse.core-feature
org.eclipse.rse.dstore-feature
org.eclipse.rse.releng.infocenter
org.eclipse.rse.sdk
org.eclipse.rse.sdk-feature
org.eclipse.rse.updatesite

 
RSE manual tests org.eclipse.rse.tests.manual  
Javier Montalvo Discovery (org.eclipse.tm.core) discovery/*  
Ted Williams Terminalview (org.eclipse.tm.core) terminal/*