<html xmlns:v="urn:schemas-microsoft-com:vml"
xmlns:o="urn:schemas-microsoft-com:office:office"
xmlns:w="urn:schemas-microsoft-com:office:word"
xmlns="http://www.w3.org/TR/REC-html40">

<head>
<meta http-equiv=Content-Type content="text/html; charset=iso-8859-1">
<meta name=ProgId content=Word.Document>
<meta name=Generator content="Microsoft Word 9">
<meta name=Originator content="Microsoft Word 9">
<link rel=File-List href="./eclipse-charter_files/filelist.xml">
<link rel=Edit-Time-Data href="./eclipse-charter_files/editdata.mso">
<!--[if !mso]>
<style>
v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style>
<![endif]-->
<title>Eclipse Tools Project</title>
<!--[if gte mso 9]><xml>
 <o:DocumentProperties>
  <o:Author>Dave Thomson</o:Author>
  <o:LastAuthor>Dave Thomson</o:LastAuthor>
  <o:Revision>2</o:Revision>
  <o:TotalTime>8</o:TotalTime>
  <o:Created>2001-11-25T03:37:00Z</o:Created>
  <o:LastSaved>2001-11-25T03:37:00Z</o:LastSaved>
  <o:Pages>2</o:Pages>
  <o:Words>2527</o:Words>
  <o:Characters>14406</o:Characters>
  <o:Lines>120</o:Lines>
  <o:Paragraphs>28</o:Paragraphs>
  <o:CharactersWithSpaces>17691</o:CharactersWithSpaces>
  <o:Version>9.2720</o:Version>
 </o:DocumentProperties>
</xml><![endif]--><!--[if gte mso 9]><xml>
 <w:WordDocument>
  <w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel>
 </w:WordDocument>
</xml><![endif]-->
<style>
<!--
 /* Font Definitions */
@font-face
	{font-family:Wingdings;
	panose-1:5 0 0 0 0 0 0 0 0 0;
	mso-font-charset:2;
	mso-generic-font-family:auto;
	mso-font-pitch:variable;
	mso-font-signature:0 268435456 0 0 -2147483648 0;}
@font-face
	{font-family:Verdana;
	panose-1:2 11 6 4 3 5 4 4 2 4;
	mso-font-charset:0;
	mso-generic-font-family:swiss;
	mso-font-pitch:variable;
	mso-font-signature:647 0 0 0 159 0;}
 /* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
	{mso-style-parent:"";
	margin:0in;
	margin-bottom:.0001pt;
	mso-pagination:widow-orphan;
	font-size:12.0pt;
	font-family:"Times New Roman";
	mso-fareast-font-family:"Times New Roman";}
h1
	{margin-right:0in;
	mso-margin-top-alt:auto;
	mso-margin-bottom-alt:auto;
	margin-left:0in;
	mso-pagination:widow-orphan;
	mso-outline-level:1;
	font-size:21.0pt;
	font-family:Arial;
	mso-font-kerning:18.0pt;
	font-weight:bold;}
h2
	{margin-right:0in;
	mso-margin-top-alt:auto;
	mso-margin-bottom-alt:auto;
	margin-left:0in;
	mso-line-height-alt:10.5pt;
	mso-pagination:widow-orphan;
	mso-outline-level:2;
	font-size:18.0pt;
	font-family:Arial;
	font-weight:bold;}
h3
	{margin-right:0in;
	mso-margin-top-alt:auto;
	mso-margin-bottom-alt:auto;
	margin-left:0in;
	mso-pagination:widow-orphan;
	mso-outline-level:3;
	font-size:14.0pt;
	font-family:Arial;
	font-weight:bold;}
a:link, span.MsoHyperlink
	{color:blue;
	text-decoration:underline;
	text-underline:single;}
a:visited, span.MsoHyperlinkFollowed
	{color:blue;
	text-decoration:underline;
	text-underline:single;}
p
	{margin-right:0in;
	mso-margin-top-alt:auto;
	mso-margin-bottom-alt:auto;
	margin-left:0in;
	mso-pagination:widow-orphan;
	font-size:10.0pt;
	font-family:Arial;
	mso-fareast-font-family:"Times New Roman";}
code
	{mso-ascii-font-family:"Courier New";
	mso-fareast-font-family:"Courier New";
	mso-hansi-font-family:"Courier New";
	mso-bidi-font-family:"Courier New";}
pre
	{margin:0in;
	margin-bottom:.0001pt;
	mso-pagination:widow-orphan;
	tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;
	font-size:10.0pt;
	font-family:"Courier New";
	mso-fareast-font-family:"Courier New";}
p.indextop, li.indextop, div.indextop
	{mso-style-name:indextop;
	margin-right:0in;
	mso-margin-top-alt:auto;
	mso-margin-bottom-alt:auto;
	margin-left:0in;
	mso-pagination:widow-orphan;
	font-size:24.0pt;
	font-family:Verdana;
	mso-fareast-font-family:"Times New Roman";
	mso-bidi-font-family:Arial;
	font-weight:bold;}
p.indexsub, li.indexsub, div.indexsub
	{mso-style-name:indexsub;
	margin-right:0in;
	mso-margin-top-alt:auto;
	mso-margin-bottom-alt:auto;
	margin-left:0in;
	mso-pagination:widow-orphan;
	font-size:7.5pt;
	font-family:Arial;
	mso-fareast-font-family:"Times New Roman";
	color:#8080FF;}
@page Section1
	{size:8.5in 11.0in;
	margin:1.0in 1.25in 1.0in 1.25in;
	mso-header-margin:.5in;
	mso-footer-margin:.5in;
	mso-paper-source:0;}
div.Section1
	{page:Section1;}
 /* List Definitions */
@list l0
	{mso-list-id:97258917;
	mso-list-type:hybrid;
	mso-list-template-ids:938493464 -1722270466 1328035828 162058584 -1583577958 1708689942 358257648 -789267326 1364346306 1905806722;}
@list l0:level1
	{mso-level-number-format:bullet;
	mso-level-text:\F0B7;
	mso-level-tab-stop:.5in;
	mso-level-number-position:left;
	text-indent:-.25in;
	mso-ansi-font-size:10.0pt;
	font-family:Symbol;}
@list l1
	{mso-list-id:1140729447;
	mso-list-type:hybrid;
	mso-list-template-ids:-548665272 99540706 454694258 918687008 -856886194 92689176 392868292 981366132 -2098539492 -955852746;}
@list l1:level1
	{mso-level-number-format:bullet;
	mso-level-text:\F0B7;
	mso-level-tab-stop:.5in;
	mso-level-number-position:left;
	text-indent:-.25in;
	mso-ansi-font-size:10.0pt;
	font-family:Symbol;}
@list l2
	{mso-list-id:2083134086;
	mso-list-type:hybrid;
	mso-list-template-ids:-2080353412 1356621094 -131857262 -1447128774 -425566188 1893082798 1171154726 2031539886 1440021566 -1653822288;}
@list l2:level1
	{mso-level-number-format:bullet;
	mso-level-text:\F0B7;
	mso-level-tab-stop:.5in;
	mso-level-number-position:left;
	text-indent:-.25in;
	mso-ansi-font-size:10.0pt;
	font-family:Symbol;}
ol
	{margin-bottom:0in;}
ul
	{margin-bottom:0in;}
-->
</style>
</head>

<body lang=EN-CA link=blue vlink=blue style='tab-interval:.5in'>

<div class=Section1>

<table border=0 cellspacing=5 cellpadding=0 width="100%" style='width:100.0%;
 mso-cellspacing:3.7pt;margin-left:8.5pt;mso-padding-alt:1.5pt 1.5pt 1.5pt 1.5pt'>
 <tr>
  <td colspan=2 valign=top style='background:#0080C0;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
        <p class=MsoNormal><b><span style='font-size:10.0pt;font-family:Arial;
  color:white'>Eclipse Project Charter - v0.52</span></b><span
  style='font-size:10.0pt;font-family:Arial'><o:p></o:p></span></p>
  </td>
 </tr>
 <tr>
  <td style='padding:1.5pt 1.5pt 1.5pt 1.5pt'>
  <p class=MsoNormal><b><span style='font-size:10.0pt;font-family:Arial'>Overview</span></b><span
  style='font-size:10.0pt;font-family:Arial'><br>
  The Eclipse Project is a collaborative software development project dedicated
  to providing a robust, full-featured, commercial-quality, and freely
  available industry platform for the development of highly integrated tools.
  This document describes the composition and organization of the project,
  roles and responsibilities of the participants, and development process for
  the project. The project charter is a living document that will be updated to
  reflect the evolution of the development process evolves over time.<o:p></o:p></span></p>
  <p><b>Mission</b><br>
  Eclipse is a kind of universal tool platform - an open extensible IDE for
  anything and yet nothing in particular. The real value comes from tool
  plug-ins that &quot;teach&quot; Eclipse how to work with things - java files,
  web content, graphics, video - almost anything one can imagine. Eclipse
  allows tool builders to independently develop tools that integrate with other
  people's tools so seamlessly you can't tell where one tool ends and another
  starts.</p>
  <p>The success of Eclipse depends on how well it enables a wide range of tool
  builders to build best of breed integrated tools. But the real vision of
  Eclipse as an industry platform is only realized if these tools from
  different tool builders can be combined together by users to suit their
  unique requirements, in ways that the tool builders never even imagined. </p>
  <p>The mission of the Eclipse Project is to adapt and evolve the Eclipse
  technology to meet the needs of the Eclipse tool building community and its
  users, so that the vision of Eclipse as an industry platform is realized.</p>
  <p><b>Scope</b><br>
  The Eclipse Project encompasses both the Eclipse platform technology itself,
  and a set of tools that together form the software development kit (SDK) for
  building Eclipse-based tools. The Eclipse Project will be structured into the
  following subprojects:</p>
  <ul type=disc>
   <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:
       auto;mso-list:l1 level1 lfo1;tab-stops:list .5in'><span
       style='font-size:10.0pt;font-family:Arial'>Platform - the platform upon
       which all other Eclipse based tools are built. <o:p></o:p></span></li>
   <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:
       auto;mso-list:l1 level1 lfo1;tab-stops:list .5in'><span
       style='font-size:10.0pt;font-family:Arial'>JDT - The Java development
       tooling, or Java IDE. <o:p></o:p></span></li>
   <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:
       auto;mso-list:l1 level1 lfo1;tab-stops:list .5in'><span
       style='font-size:10.0pt;font-family:Arial'>PDE - Plug-in development
       environment. <o:p></o:p></span></li>
  </ul>
  <p><img width=435 height=134 id="_x0000_i1025"
  src="eclipse-structure.gif"></p>
  <p>&nbsp;</p>
  <p>The Platform subproject is further subdivided into the following
  components:</p>
  <table border=0 cellpadding=0 width="75%" style='width:75.0%;mso-cellspacing:
   1.5pt'>
   <tr>
    <td width="25%" style='width:25.0%;padding:.75pt .75pt .75pt .75pt'>
    <p class=MsoNormal><span style='font-size:10.0pt;font-family:Arial'>Ant<o:p></o:p></span></p>
    </td>
    <td width="75%" style='width:75.0%;padding:.75pt .75pt .75pt .75pt'>
    <p class=MsoNormal><span style='font-size:10.0pt;font-family:Arial'>Ant
    Java based build tool<o:p></o:p></span></p>
    </td>
   </tr>
   <tr>
    <td width="25%" style='width:25.0%;padding:.75pt .75pt .75pt .75pt'>
    <p class=MsoNormal><span style='font-size:10.0pt;font-family:Arial'>Compare<o:p></o:p></span></p>
    </td>
    <td width="75%" style='width:75.0%;padding:.75pt .75pt .75pt .75pt'>
    <p class=MsoNormal><span style='font-size:10.0pt;font-family:Arial'>Universal
    Compare Facility<o:p></o:p></span></p>
    </td>
   </tr>
   <tr>
    <td width="25%" style='width:25.0%;padding:.75pt .75pt .75pt .75pt'>
    <p class=MsoNormal><span style='font-size:10.0pt;font-family:Arial'>Core<o:p></o:p></span></p>
    </td>
    <td width="75%" style='width:75.0%;padding:.75pt .75pt .75pt .75pt'>
    <p class=MsoNormal><span style='font-size:10.0pt;font-family:Arial'>Core
    libraries<o:p></o:p></span></p>
    </td>
   </tr>
   <tr>
    <td width="25%" style='width:25.0%;padding:.75pt .75pt .75pt .75pt'>
    <p class=MsoNormal><span style='font-size:10.0pt;font-family:Arial'>Debug<o:p></o:p></span></p>
    </td>
    <td width="75%" style='width:75.0%;padding:.75pt .75pt .75pt .75pt'>
    <p class=MsoNormal><span style='font-size:10.0pt;font-family:Arial'>Universal
    Debugger<o:p></o:p></span></p>
    </td>
   </tr>
   <tr>
    <td width="25%" style='width:25.0%;padding:.75pt .75pt .75pt .75pt'>
    <p class=MsoNormal><span style='font-size:10.0pt;font-family:Arial'>Help<o:p></o:p></span></p>
    </td>
    <td width="75%" style='width:75.0%;padding:.75pt .75pt .75pt .75pt'>
    <p class=MsoNormal><span style='font-size:10.0pt;font-family:Arial'>Help
    system<o:p></o:p></span></p>
    </td>
   </tr>
   <tr>
    <td width="25%" style='width:25.0%;padding:.75pt .75pt .75pt .75pt'>
    <p class=MsoNormal><span style='font-size:10.0pt;font-family:Arial'>Scripting<o:p></o:p></span></p>
    </td>
    <td width="75%" style='width:75.0%;padding:.75pt .75pt .75pt .75pt'>
    <p class=MsoNormal><span style='font-size:10.0pt;font-family:Arial'>Scripting
    support<o:p></o:p></span></p>
    </td>
   </tr>
   <tr>
    <td width="25%" style='width:25.0%;padding:.75pt .75pt .75pt .75pt'>
    <p class=MsoNormal><span style='font-size:10.0pt;font-family:Arial'>Search<o:p></o:p></span></p>
    </td>
    <td width="75%" style='width:75.0%;padding:.75pt .75pt .75pt .75pt'>
    <p class=MsoNormal><span style='font-size:10.0pt;font-family:Arial'>Integrated
    Search Facility<o:p></o:p></span></p>
    </td>
   </tr>
   <tr>
    <td width="25%" style='width:25.0%;padding:.75pt .75pt .75pt .75pt'>
    <p class=MsoNormal><span style='font-size:10.0pt;font-family:Arial'>SWT<o:p></o:p></span></p>
    </td>
    <td width="75%" style='width:75.0%;padding:.75pt .75pt .75pt .75pt'>
    <p class=MsoNormal><span style='font-size:10.0pt;font-family:Arial'>Standard
    Widget Toolkit<o:p></o:p></span></p>
    </td>
   </tr>
   <tr>
    <td width="25%" style='width:25.0%;padding:.75pt .75pt .75pt .75pt'>
    <p class=MsoNormal><span style='font-size:10.0pt;font-family:Arial'>UI<o:p></o:p></span></p>
    </td>
    <td width="75%" style='width:75.0%;padding:.75pt .75pt .75pt .75pt'>
    <p class=MsoNormal><span style='font-size:10.0pt;font-family:Arial'>User
    Interface libraries<o:p></o:p></span></p>
    </td>
   </tr>
   <tr>
    <td width="25%" style='width:25.0%;padding:.75pt .75pt .75pt .75pt'>
    <p class=MsoNormal><span style='font-size:10.0pt;font-family:Arial'>Update<o:p></o:p></span></p>
    </td>
    <td width="75%" style='width:75.0%;padding:.75pt .75pt .75pt .75pt'>
    <p class=MsoNormal><span style='font-size:10.0pt;font-family:Arial'>Dynamic
    Update/Install/Field Service<o:p></o:p></span></p>
    </td>
   </tr>
   <tr>
    <td width="25%" style='width:25.0%;padding:.75pt .75pt .75pt .75pt'>
    <p class=MsoNormal><span style='font-size:10.0pt;font-family:Arial'>VCM<o:p></o:p></span></p>
    </td>
    <td width="75%" style='width:75.0%;padding:.75pt .75pt .75pt .75pt'>
    <p class=MsoNormal><span style='font-size:10.0pt;font-family:Arial'>Versioning
    and Configuration Management<o:p></o:p></span></p>
    </td>
   </tr>
   <tr>
    <td width="25%" style='width:25.0%;padding:.75pt .75pt .75pt .75pt'>
    <p class=MsoNormal><span style='font-size:10.0pt;font-family:Arial'>WebDAV<o:p></o:p></span></p>
    </td>
    <td width="75%" style='width:75.0%;padding:.75pt .75pt .75pt .75pt'>
    <p class=MsoNormal><span style='font-size:10.0pt;font-family:Arial'>WebDAV
    integration<o:p></o:p></span></p>
    </td>
   </tr>
  </table>
  <p>The JDT subproject is further subdivided into the following components:</p>
  <table border=0 cellpadding=0 width="75%" style='width:75.0%;mso-cellspacing:
   1.5pt'>
   <tr>
    <td width="25%" style='width:25.0%;padding:.75pt .75pt .75pt .75pt'>
    <p class=MsoNormal><span style='font-size:10.0pt;font-family:Arial'>JDT
    Core<o:p></o:p></span></p>
    </td>
    <td width="75%" style='width:75.0%;padding:.75pt .75pt .75pt .75pt'>
    <p class=MsoNormal><span style='font-size:10.0pt;font-family:Arial'>Compiler
    and Builder<o:p></o:p></span></p>
    </td>
   </tr>
   <tr>
    <td width="25%" style='width:25.0%;padding:.75pt .75pt .75pt .75pt'>
    <p class=MsoNormal><span style='font-size:10.0pt;font-family:Arial'>JDT UI<o:p></o:p></span></p>
    </td>
    <td width="75%" style='width:75.0%;padding:.75pt .75pt .75pt .75pt'>
    <p class=MsoNormal><span style='font-size:10.0pt;font-family:Arial'>Java
    IDE User Interface<o:p></o:p></span></p>
    </td>
   </tr>
   <tr>
    <td width="25%" style='width:25.0%;padding:.75pt .75pt .75pt .75pt'>
    <p class=MsoNormal><span style='font-size:10.0pt;font-family:Arial'>JDt
    Debug<o:p></o:p></span></p>
    </td>
    <td width="75%" style='width:75.0%;padding:.75pt .75pt .75pt .75pt'>
    <p class=MsoNormal><span style='font-size:10.0pt;font-family:Arial'>Debug
    support for Java<o:p></o:p></span></p>
    </td>
   </tr>
  </table>
  <p>The PDE subproject is further subdivided into the following components:</p>
  <table border=0 cellpadding=0 width="75%" style='width:75.0%;mso-cellspacing:
   1.5pt'>
   <tr>
    <td width="25%" style='width:25.0%;padding:.75pt .75pt .75pt .75pt'>
    <p class=MsoNormal><span style='font-size:10.0pt;font-family:Arial'>PDE
    Core<o:p></o:p></span></p>
    </td>
    <td width="75%" style='width:75.0%;padding:.75pt .75pt .75pt .75pt'>
    <p class=MsoNormal><span style='font-size:10.0pt;font-family:Arial'>PDE
    Build<o:p></o:p></span></p>
    </td>
   </tr>
   <tr>
    <td width="25%" style='width:25.0%;padding:.75pt .75pt .75pt .75pt'>
    <p class=MsoNormal><span style='font-size:10.0pt;font-family:Arial'>PDE UI<o:p></o:p></span></p>
    </td>
    <td width="75%" style='width:75.0%;padding:.75pt .75pt .75pt .75pt'>
    <p class=MsoNormal><span style='font-size:10.0pt;font-family:Arial'>PDE
    User Interface<o:p></o:p></span></p>
    </td>
   </tr>
  </table>
  <p><b>Project Management Committee</b><a name=PMC></a><br>
  The Eclipse Project is managed by a small group known as the Eclipse Project
  Management Committee [Eclipse PMC].</p>
  <p>The Eclipse PMC is responsible for the strategic direction and success of
  the Eclipse Project. This governing and advisory body is expected to ensure
  the project's welfare and guide its overall direction. The PMC is responsible
  for overall development direction, conflict resolution, development processes
  and infrastructure, and the overall technical success of the project.</p>
  <p>The PMC has the following responsibilities:</p>
  <ul type=disc>
   <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:
       auto;mso-list:l0 level1 lfo2;tab-stops:list .5in'><span
       style='font-size:10.0pt;font-family:Arial'>Providing the leadership and
       vision to guide the project's overall direction. <o:p></o:p></span></li>
   <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:
       auto;mso-list:l0 level1 lfo2;tab-stops:list .5in'><span
       style='font-size:10.0pt;font-family:Arial'>Providing assistance and
       support to the developers working on the project by removing obstacles,
       solving problems, and resolving conflicts. <o:p></o:p></span></li>
   <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:
       auto;mso-list:l0 level1 lfo2;tab-stops:list .5in'><span
       style='font-size:10.0pt;font-family:Arial'>Ensuring that subproject
       plans are produced, and presenting these plans to the Board. <o:p></o:p></span></li>
   <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:
       auto;mso-list:l0 level1 lfo2;tab-stops:list .5in'><span
       style='font-size:10.0pt;font-family:Arial'>Establishing the development
       processes and infrastructure needed for the development team to be
       effective. <o:p></o:p></span></li>
   <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:
       auto;mso-list:l0 level1 lfo2;tab-stops:list .5in'><span
       style='font-size:10.0pt;font-family:Arial'>Recommending new subprojects
       to the Board, if appropriate, and appointing the subproject lead. <o:p></o:p></span></li>
   <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:
       auto;mso-list:l0 level1 lfo2;tab-stops:list .5in'><span
       style='font-size:10.0pt;font-family:Arial'>Establishing the initial set
       of subproject committers, and establishing the procedures for voting in
       new committers. <o:p></o:p></span></li>
   <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:
       auto;mso-list:l0 level1 lfo2;tab-stops:list .5in'><span
       style='font-size:10.0pt;font-family:Arial'>Helping to ensure that subprojects
       have enough contributors, and helping to fill vacancies in roles. <o:p></o:p></span></li>
   <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:
       auto;mso-list:l0 level1 lfo2;tab-stops:list .5in'><span
       style='font-size:10.0pt;font-family:Arial'>Producing &#8220;how to get
       involved&#8221; guidelines to help new potential contributors get started.<o:p></o:p></span></li>
   <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:
       auto;mso-list:l0 level1 lfo2;tab-stops:list .5in'><span
       style='font-size:10.0pt;font-family:Arial'>Coordinating relationships
       with other eclipse.org projects. <o:p></o:p></span></li>
   <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:
       auto;mso-list:l0 level1 lfo2;tab-stops:list .5in'><span
       style='font-size:10.0pt;font-family:Arial'>Facilitating code or other donations
       by individuals or companies. <o:p></o:p></span></li>
   <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:
       auto;mso-list:l0 level1 lfo2;tab-stops:list .5in'><span
       style='font-size:10.0pt;font-family:Arial'>Ensures licensing is
       compatible with licensing established by board. <o:p></o:p></span></li>
   <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:
       auto;mso-list:l0 level1 lfo2;tab-stops:list .5in'><span
       style='font-size:10.0pt;font-family:Arial'>Representing the project to
       the outside world. <o:p></o:p></span></li>
  </ul>
  <p>The PMC Lead is appointed by the Board. The initial PMC is selected by the
  PMC Lead. Thereafter, to become a member of the PMC, an individual must be
  nominated by a member of the PMC, and unanimously approved by all PMC
  members. The goal is to keep the membership of the PMC very small.</p>
  <p>In the unlikely event that a member of the PMC becomes disruptive to the
  process or ceases to contribute for an extended period, the member may be
  removed by unanimous vote of remaining PMC members.</p>
  <p>The PMC is responsible for producing and maintaining the project charter.
  Development must conform to any rules or processes outlined in the charter,
  so a change to the development process may necessitate a change to the
  charter.</p>
  <p>The work of the PMC is shared by the PMC members. All PMC members are
  expected to contribute actively. In particular, PMC members are expected to
  take responsibility for overseeing certain areas of work in the project, and
  reporting to the PMC on these areas.</p>
  <p>Active participation in the user newsgroup and the appropriate developer
  mailing lists is a responsibility of all PMC members, and is critical to the
  success of the project. PMC members are required to monitor the main project
  mailing list, and the developer mailing lists for all subprojects and
  components they are overseeing.</p>
  <p><b>Roles</b><br>
  The Eclipse Project is a meritocracy -- the more you contribute, and the
  higher the quality of your contribution, the more you are allowed to do.
  However with this comes increased responsibility.</p>
  <p><b>Users</b><br>
  Users are the people who use the products that the Project produces. People
  in this role aren't contributing code, but they are using the products,
  reporting bugs, and making feature requests and suggestions. Users are
  encouraged to participate through the user newsgroup(s), asking questions,
  providing suggestions, and helping other users. Users are also encouraged to
  report problem reports using the bug tracking system. </p>
  <p><b>Developers</b><br>
  Users who contribute code or documentation become developers. Developers are
  the people who contribute code, fixes, documentation, or other work that goes
  into the product. Developers are also encouraged to participate in the user
  newsgroup(s), and should monitor the developer mailing list associated with
  their area of contribution. When appropriate, developers may also contribute
  to development design discussions related to their area of contribution.
  Developers are expected to be proactive in reporting problems in the bug
  tracking system.</p>
  <p><b>Committers</b><br>
  Developers who give frequent and valuable contributions to a subproject, or
  component of a subproject (in the case of large subprojects), can have their
  status promoted to that of a &quot;Committer&quot; for that subproject or
  component respectively. A Committer has write access to the source code
  repository for the associated subproject (or component), and gains voting
  rights allowing them to affect the future of the subproject (or component).</p>
  <p>In order for a Developer to become a Committer, another Committer for the
  subproject (or component) can nominate that Developer or the Developer can
  ask for it. Once a Developer is nominated, the Committers for the subproject
  (or component) will vote. If there are at least 3 positive votes and no
  negative votes, the Developer is recommended to the PMC for commit
  privileges. If the PMC approves, the Developer is converted into a Committer
  and given write access to the source code repository for that subproject (or
  component). Becoming a Committer is a privilege that is earned by
  contributing and showing discipline and good judgement. It is a
  responsibility that should be neither given nor taken lightly</p>
  <p>At times, Committers may go inactive for a variety of reasons. The
  decision making process of the project relies on active committers who
  respond to discussions and votes in a constructive and timely manner. The PMC
  is responsible for ensuring the smooth operation of the project. A Committer
  that is disruptive, does not participate actively, or has been inactive for
  an extended period may have his or her commit status removed by the PMC.</p>
  <p>Active participation in the user newsgroup and the appropriate developer
  mailing lists is a responsibility of all Committers, and is critical to the
  success of the project. Committers are required to monitor and contribute to
  the user newsgroup.</p>
  <p>Committers are required to monitor the developer mailing list associated
  with all subprojects and components for which they have commit privileges.
  This is a condition of being granted commit rights to the subproject or
  component. It is mandatory because committers must participate in votes
  (which in some cases require a certain minimum number of votes) and must
  respond to the mailing list in a timely fashion in order to facilitate the
  smooth operation of the project. When a Committer is granted commit rights
  they will be added to the appropriate mailing lists. A Committer must not be
  unsubscribed from a developer mailing list unless their associated commit
  privileges are also removed.</p>
  <p>Committers are required to track, participate in, and vote on, relevant
  discussions in their associated subprojects and components. There are three
  voting responses: +1 (yes), -1 (no, or veto), and 0 (abstain).</p>
  <p>Committers are responsible for proactively reporting problems in the bug
  tracking system, and annotating problem reports with status information,
  explanations, clarifications, or requests for more information from the submitter.
  Committers are responsible for updating problem reports when they have done
  work related to the problem.</p>
  <p><b>Subprojects</b><br>
  The work of the Project is organized into subprojects. New subprojects must
  be significant works consistent with the mission of the Eclipse Project, be
  recommended by the PMC, and confirmed by the Board. Subprojects can be
  discontinued by decision of the Board.</p>
  <p>When a new subproject is created, the PMC appoints a subproject lead to
  act as the technical leader and names the initial set of Committers for the
  subproject. Thereafter the PMC may appoint a new subproject lead from time to
  time as required, but the new subproject lead must be confirmed by a majority
  of the other Committers of the subproject. Subproject leads are accountable to
  the PMC for the success of their project.</p>
  <p><b>Subproject Components</b><br>
  The PMC may decide to divide subproject further into components. If a
  subproject is divided into components, commit privileges are normally granted
  at the component level, and the committers for a given component vote on
  issues specific to that component. Components are established and
  discontinued by the PMC. When the PMC creates a component it appoints a
  component lead to act as the technical leader and names the initial set of
  Committers for the component. The component lead is designated as a committer
  for the subproject and represents the component in discussions and votes
  pertaining to the subproject as a whole. Component Committers do not
  participate in votes at the level of the subproject as a whole, unless they
  are also the component lead.</p>
  <p><b>Ports</b><br>
  For components that contain platform-specific code (such as SWT), it may be
  advantageous to allow developers to work on a port of the component to a new
  platform without requiring that they already be committers for the component.
  In this case the main code base is known as the component &quot;core&quot;,
  and the port code base is known as a component &quot;port&quot;. The decision
  to set up a port is made by the PMC. When a new port of a component is
  created, the PMC appoints a Port Lead, and an initial set of committers who
  will have commit and voting privileges specifically for the port. The port is
  done under the auspices of the core component, and all committers for the
  core component automatically also have commit and voting privileges on the
  port. Normally the Component Lead will also be the Port Lead.</p>
  <p><b>Architecture Team</b><br>
  The Platform, JDT, and PDE will have coordinated release plans, milestone
  dates, freeze cycles, builds, and ship dates. These subprojects will be
  coordinated by a group consisting of the subproject leads, the component
  leads from these subprojects, and the members of the PMC. This group will be
  called the Eclipse Project Architecture Team.</p>
  <p><b>Infrastructure</b><br>
  The infrastructure required to support the development process is the
  responsibility of the PMC. The Eclipse Project will have at least the
  following:</p>
  <ul type=disc>
   <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:
       auto;mso-list:l2 level1 lfo3;tab-stops:list .5in'><span
       style='font-size:10.0pt;font-family:Arial'>Bug Database - Bugzilla
       database for tracking bugs and feature requests. <o:p></o:p></span></li>
   <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:
       auto;mso-list:l2 level1 lfo3;tab-stops:list .5in'><span
       style='font-size:10.0pt;font-family:Arial'>Source Repository -- One or
       more CVS repositories containing both the master source code and
       documentation for the subprojects. <o:p></o:p></span></li>
   <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:
       auto;mso-list:l2 level1 lfo3;tab-stops:list .5in'><span
       style='font-size:10.0pt;font-family:Arial'>Website - A website will
       contain information about the project, including documentation,
       downloads of releases, and this charter. <o:p></o:p></span></li>
   <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:
       auto;mso-list:l2 level1 lfo3;tab-stops:list .5in'><span
       style='font-size:10.0pt;font-family:Arial'>General Mailing List -
       Mailing list for development discussions pertaining to the project as a
       whole or that cross subprojects. This mailing list is open to the
       public. <o:p></o:p></span></li>
   <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:
       auto;mso-list:l2 level1 lfo3;tab-stops:list .5in'><span
       style='font-size:10.0pt;font-family:Arial'>Subproject Mailing Lists -
       Development mailing list for technical discussions related to the
       subproject. This mailing list is open to the public. <o:p></o:p></span></li>
   <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:
       auto;mso-list:l2 level1 lfo3;tab-stops:list .5in'><span
       style='font-size:10.0pt;font-family:Arial'>Component Mailing Lists --
       Development mailing list for technical discussions related to the
       component. This mailing list is open to the public. <o:p></o:p></span></li>
  </ul>
  <p><b>The Development Process</b><br>
  Each subproject lead must produce a development plan for the release cycle,
  and the development plan must be approved by the PMC and by a majority of
  Committers of the subproject.</p>
  <p>Each subproject must identify, and make available on its web site, the
  requirements and prioritizations it is working against in the current release
  cycle. In addition, each subproject must post a release plan showing the date
  and content of the next major release, including any major milestones, and
  must keep this plan up to date.</p>
  <p>The Committers of a subproject or component decide which changes may be
  committed to the master code base of a subproject or component respectively.
  Three +1 ('yes' votes) with no -1 ('no' votes or vetoes) are needed to
  approve a code change. Vetoes must be followed by an explanation for the veto
  within 24 hours or the veto becomes invalid. All votes are conducted via the
  developer mailing list associated with the subproject or component.</p>
  <p>Special rules may be established for subprojects or components with fewer
  than three Committers. For efficiency, some code changes from some
  contributors (e.g. feature additions, bug fixes) may be approved in advance,
  or approved in principle based on an outline of the work, in which case they
  may be committed first and changed as needed, with conflicts resolved by
  majority vote of the Committers of the subproject or component, as
  applicable. More restrictive rules for releasing changes may be established
  by the PMC near the end of release cycles or for maintenance streams.</p>
  <p>The master copy of the code base must reside on the project web site where
  it is accessible to all developers and committers. Committers must check
  their changes and new work into the master code base as promptly as possible
  (subject to any check-in voting rules that may be in effect) in order to
  foster collaboration among widely distributed groups and so that the latest
  work is always available to everyone. The PMC is responsible for establishing
  a release engineering and build process to ensure that builds can be reliably
  produced on a regular and frequent basis from the master code base and made
  available for download from the project web site.</p>
  <p>The PMC is responsible for establishing the level of testing appropriate
  for each subproject, and approving the test plans.</p>
  <p>All development technical discussions are conducted using the development
  mailing lists. If discussions are held offline, then a summary must be posted
  to the mailing list to keep the other committers informed.</p>
        <p><b>Licensing</b><br>
          All contributions to the Eclipse Project must adhere to the Common Public 
          License <a href="http://www.eclipse.org/legal/cpl-v10.html">http://www.eclipse.org/legal/cpl-v10.html</a>. 
          Notwithstanding the above, at the discretion of the PMC, Eclipse Project 
          downloads may include separately licensed code from third parties as 
          a convenience and where permitted by the third party license, provided 
          this is clearly indicated.</p>
        <p>All contributions must contain the following copyright notice.</p>
        <pre>/**********************************************************************</pre>
        <pre>Copyright (c) {date} {name of original contributor} and others.</pre>
        <pre>All rights reserved. &nbsp; This program and the accompanying materials</pre>
        <pre>are made available under the terms of the Common Public License v1.0</pre>
        <pre>which accompanies this distribution, and is available at</pre>
        <pre><a
  href="http://www.eclipse.org/legal/cpl-v10.html">http://www.eclipse.org/legal/cpl-v10.html</a></pre>
        <pre><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></pre><pre>Contributors:</pre><pre><span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </span>&lt;contributor1&gt; - &lt;description of contribution&gt;</pre><pre><span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </span>&lt;contributor2&gt; - &lt;description of contribution&gt;</pre><pre><span style="mso-spacerun: yes">&nbsp;&nbsp; </span><span style="mso-spacerun: yes">&nbsp;</span>...</pre><pre>**********************************************************************/</pre>
        <p> The original contributor is the one who contributes the first version 
          of the file. A contributor may be a person or an organization - whoever 
          owns the copyright. If the contributor is an organization, the person 
          may also be indicated. For each additional contributor, indicate the 
          part of the code or contribution that came from the contributor, especially 
          if it contains an interesting algorithm or data table etc. For clarity, 
          also indicate the contributor in the actual section of contributed code. 
          Also reference the bugzilla bug ID if applicable. The basic principle 
          is to clearly identify the contribution... especially if it is a separable 
          block of code.</p>
        </td>
  <td style='padding:1.5pt 1.5pt 1.5pt 1.5pt'>
  <p class=MsoNormal><![if !supportEmptyParas]>&nbsp;<![endif]><span
  style='font-size:10.0pt'><o:p></o:p></span></p>
  </td>
 </tr>
</table>

<p class=MsoNormal style='margin-top:14.2pt'><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>

</div>

</body>

</html>
