blob: 29a533f4a215d8a06e9ab94935eb8f22479c5928 [file] [log] [blame]
<html>
<head>
<meta http-equiv=Content-Type content="text/html; charset=iso-8859-1">
<link rel=Edit-Time-Data href="./technology-charter_files/editdata.mso">
<title>Eclipse Tools Project</title>
<style><!--
.Normal
{font-size:12.0pt;
font-family:"Times New Roman";}
-->
</style>
</head>
<body text="#000000" bgcolor="#ffffff" link="#0000ee" vlink="#551a8b" alink="#ff0000">
<table border=0 cellspacing=5 cellpadding=0 width="100%">
<tr>
<td colspan=2 valign=top bgcolor="#0080C0" class="Normal">
<p><b><span style='font-size:10.0pt;font-family:Arial;
color:white'>Eclipse Technology Project Charter - v1.0</span></b></p>
</td>
</tr>
<tr>
<td class="Normal">
<p><b>Overview</b><br>
The Eclipse Technology Project is an open software research and development
project, which encapsulates three related activity streams, each of which
is based on or uses the Eclipse Platform and/or Eclipse Tools: </p>
<p style=' '> 1.<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span> academic research projects and other exploratory investigations
(&#8220;Research Stream&#8221;);</p>
<p style=' '> 2.<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span> development of educational materials, teaching aids and courseware
(&#8220;Education Stream&#8221;);</p>
<p style=' '> 3.<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span> incubation of small-scale, innovative platform and tools projects
(&#8220;Incubators Stream&#8221;).</p>
<p>The project charter is a living document that will be updated to reflect
the evolution of the mission and development processes over time.</p>
<p><b>Mission</b><br>
The mission of the Eclipse Technology Project is to provide a home within
eclipse.org for small, informally structured subprojects which add new
capabilities to the Eclipse software base (Incubators Stream), foster
greater community awareness and understanding of Eclipse (Education Stream),
or explore research issues in Eclipse-relevant domains such as programming
languages, tools, and development environments (Research Stream).&nbsp;
The Eclipse Technology Project is intended to: </p>
<p style=' '> 1.<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span> provide the open source community with a lighter weight alternative
to the larger scale, more structured development activities carried out
by other PMCs, and </p>
<p style=' '> 2.<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span> create opportunities for researchers, academics and educators
to play a significant role within the Eclipse community.&nbsp; </p>
<p><b>Scope</b><br>
The scope of the Eclipse Technology Project will encompass a wide variety
of small subprojects, rather than a few large ones.&nbsp; While anticipating
enormous diversity in the content of these activities, from a process-oriented
viewpoint they will all share important common characteristics, which
argues for a common management envelope:</p>
<p style='
'> <span
style='font-family:Symbol'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span> Focus on pre-competitive development and research</p>
<p style='
'> <span
style='font-family:Symbol'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span> Use of informal development processes</p>
<p style='
'> <span
style='font-family:Symbol'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span> Fluid project tracking due to frequent plan changes</p>
<p style='
'> <span
style='font-family:Symbol'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span> Flexible milestones which adapt based on partial results</p>
<p style='
'> <span
style='font-family:Symbol'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span> Small teams</p>
<p style='
'> <span
style='font-family:Symbol'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span> Resource commitments tentative, due to volunteer labor
or lack of sponsor funding</p>
<p style='
'> <span
style='font-family:Symbol'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span> Development often cross-cuts the scope of several other
Eclipse subprojects</p>
<p>The Eclipse Technology Project serves as a single point of focus for
such teams, and provides them with a home within the Eclipse community,
to encourage communication, and where appropriate, collaboration and coordination.&nbsp;
By providing common management for these projects eclipse.org can facilitate
maximum sharing and creation of common components, and avoid redundant
efforts.&nbsp; In many cases successful Research subprojects will evolve
into Incubators, and Incubators in turn may migrate to other PMCs, either
by merging into an existing subproject, or by forming the basis for a
new one.</p>
<p>The Education Stream plays a vital role in promoting the use of Eclipse.
&nbsp;By making high quality educational materials freely available, we
both enable self-education by individual users, and facilitate the incorporation
of Eclipse-related materials into university courses and commercial educational
offerings.</p>
<p>The list of subprojects under the Eclipse Technology PMC will be maintained
as an addendum to this charter (Attachment A).</p>
<p><b>Project Management Committee</b><a name=PMC></a><br>
The Eclipse Technology Project is managed by a small group known as the
Eclipse Technology Project Management Committee [Eclipse Technology PMC].</p>
<p>The Eclipse Technology PMC is responsible for the strategic direction
and success of the Eclipse Technology Project.&nbsp; However, it will
operate differently from other eclipse.org PMCs, in keeping with a more
informal style of organization.&nbsp; While as the governing body it is
expected to ensure the project&#8217;s overall welfare and define its
technical vision, with respect to individual subprojects its role is less
to direct than to guide.&nbsp; Each subproject will be given a great deal
of local autonomy.&nbsp; In particular, a subproject will be responsible
for its own technical program, and for defining and adopting appropriate
development processes.&nbsp; The PMC is responsible for ensuring that
each subproject operates in a manner consistent with eclipse.org&#8217;s
Charter and guiding principles, especially fairness and openness; for
conflict resolution; for providing necessary project infrastructure; and
for ensuring the overall technical success of the project.&nbsp; </p>
<p>Unlike other PMCs, the Eclipse Technology PMC is also responsible for
approving new subprojects, subject to review by the Eclipse Board at its
regular meetings.&nbsp; However, only the Eclipse Board can terminate
a subproject.&nbsp; This arrangement allows the PMC to be flexible and
responsive while ensuring that the Board continues to be the final arbiter
of eclipse.org&#8217;s integrity and strategic direction. </p>
<p>The PMC has the following responsibilities:</p>
<p style=' '> <span style='font-family:Symbol'>·<span
style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span> Providing the leadership and vision to guide the project&#8217;s
overall direction. </p>
<p style=' '> <span style='font-family:Symbol'>·<span
style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span> Providing assistance and support to the developers and
researchers working on the project by removing obstacles, solving problems,
and resolving conflicts. </p>
<p style=' '> <span style='font-family:Symbol'>·<span
style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span> Searching for new subprojects, inviting subproject proposals,
evaluating and approving proposals.</p>
<p style=' '> <span style='font-family:Symbol'>·<span
style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span> Defining a process for creating, evaluating and approving
subprojects. This process will cover new projects created from scratch,
as well as the mechanism for evaluating pre-existing projects and adopting
them as an Eclipse Technology subproject. </p>
<p style=' '> <span style='font-family:Symbol'>·<span
style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span> Recommending to the Board when a subproject should discontinued.
</p>
<p style=' '> <span style='font-family:Symbol'>·<span
style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span> Appointing the subproject lead, establishing the initial
set of subproject committers, and establishing the procedures for electing
new committers. </p>
<p style=' '> <span style='font-family:Symbol'>·<span
style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span> Helping to ensure that subprojects have enough contributors,
and helping to fill vacancies. </p>
<p style=' '> <span style='font-family:Symbol'>·<span
style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span> Coordinating relationships with other eclipse.org projects.
</p>
<p style=' '> <span style='font-family:Symbol'>·<span
style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span> Facilitating code or other donations by individuals or
companies. </p>
<p style=' '> <span style='font-family:Symbol'>·<span
style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span> Ensuring that licensing is compatible with the licensing
policy established by Board. </p>
<p style=' '> <span style='font-size:12.0pt;
font-family:Symbol'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span> Representing the project to the outside world. <span
style='font-size:12.0pt;'></span></p>
<p>The PMC Lead is appointed by the Board. The initial PMC is selected by
the PMC Lead.&nbsp; 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.</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 maintaining and updating the project charter.
Development and research 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. All members of the PMC must unanimously approve
changes.</p>
<p><b>Roles</b><br>
The Eclipse Technology 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 output from the Project. Output will
typically consist of software and research. Software in this context means
intellectual property in electronic form, including source and binary
code, documentation, courseware, reports and papers.&nbsp; Users do not
contribute software, but they are using the software, reporting problems,
and making 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 problems
and issues using the bug tracking system. </p>
<p><b>Developers</b><br>
Users who contribute software or research become developers. Developers
are 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 make 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. Committers have write access to the software repository
for the associated subproject (component), and gain voting rights allowing
them to affect the future of the subproject (component).</p>
<p>In order for a developer to become a committer, another committer for
the subproject (component) can nominate that developer, or the developer
can ask for committer status. Once a developer is nominated, the committers
for the subproject (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 software repository for that
subproject (component). Becoming a committer is a privilege that is earned
by contributing and showing discipline and good judgment. 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 committers are granted commit
rights they will be added to the appropriate mailing lists. Committers
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 using 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 consistent with the mission of the Eclipse Technology Project
and be approved by the PMC. Subprojects can only be discontinued by a
decision of the Board.</p>
<p>Subprojects will typically target the current stable release of the Eclipse
Platform or Eclipse Tools. In some cases where a subproject needs to investigate
new features or function, it may decide to create a fork in the development
stream of the relevant Eclipse Platform or Tools activity. The Eclipse
Technology PMC is responsible for ensuring that forks are kept to a minimum,
and that subprojects synchronize on a common release of other Eclipse
Projects whenever possible.&nbsp; It is recognized that due to the exploratory
nature of Eclipse Technology subprojects, there may be cases where this
is not feasible.</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 and Merging</b><br>
Given the fluid nature of Eclipse Technology subprojects, organizational
changes are possible, in particular: dividing a subproject into components;
dividing a subproject into two or more independent subprojects; and merging
two or more subprojects into a single subproject. In each case the initiative
for the change may come either from the subproject or from the PMC, but
the PMC must approve any change.</p>
<p>If a subproject wishes to divide 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>In cases where new subprojects are being created, either by splitting
or by merging, the usual procedures are followed. That is, the PMC appoints
subproject leads and names the initial set of committers for the subproject.
In particular, developers will not necessarily have the same rights after
an organizational change that they enjoyed in the previous structure.</p>
<p><b>Infrastructure</b><br>
The infrastructure required to support the research and development process
is the responsibility of the PMC. The Eclipse Technology Project will
have at least the following:</p>
<p style=' '> <span style='font-family:Symbol'>·<span
style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span> Bug Database - Bugzilla database for tracking bugs and
feature requests.</p>
<p style=' '> <span style='font-family:Symbol'>·<span
style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span> Repository -- One or more CVS repositories containing all
of the software being produced and maintained by the subprojects. </p>
<p style=' '> <span style='font-family:Symbol'>·<span
style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span> Website - A website will contain information about the
project, including documentation, reports and papers, courseware, downloads
of software releases, and this charter. </p>
<p style=' '> <span style='font-family:Symbol'>·<span
style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span> 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. </p>
<p style=' '> <span style='font-family:Symbol'>·<span
style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span> Subproject Mailing Lists - Development mailing list for
technical discussions related to the subproject. This mailing list is
open to the public. </p>
<p style=' '> <span style='font-family:Symbol'>·<span
style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span> Component Mailing Lists -- Development mailing list for
technical discussions related to the component. This mailing list is open
to the public. </p>
<p><b>The Development Process</b><br>
In this section the phrase &#8220;release cycle&#8221; will refer to a
significant block of subproject activity, which corresponds to an actual
release cycle in the case of Incubators or Education subprojects, or to
a major stage of a phased Research subproject.</p>
<p>Each subproject lead must produce a plan for the release cycle; the plan
must be approved by a majority of Committers of the subproject; the plan
must be submitted to the PMC for review.&nbsp; The PMC may provide feedback
and advice on the plan but approval rests with the subproject committers.</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 software base of a subproject or component
respectively. Three +1 ('yes' votes) with no -1 ('no' votes or vetoes)
are needed to approve a 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, changes from some contributors
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.</p>
<p>The master copy of the software repository 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 software repository
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 software repository and made available for download
from the project web site. Builds in this context are intended to include
not only code but also reports, documentation, and courseware.</p>
<p>Subprojects are responsible for establishing test plans and the level
of testing appropriate for each subproject.</p>
<p>All 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 Technology 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>.
All contributions must contain the following copyright notice:</p>
<p><i>[NOTE: The following is proposed - the final form of the copyrights
has not been determined yet].</i></p>
<pre>/**********************************************************************</pre>
<pre>Copyright (c) {date} {name of 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>&nbsp;</pre>
<pre>Contributors:</pre>
<pre>&nbsp;&nbsp;&nbsp; &lt;contributor1&gt; - &lt;description of contribution&gt;</pre>
<pre>&nbsp;&nbsp;&nbsp; &lt;contributor2&gt; - &lt;description of contribution&gt;</pre>
<pre>&nbsp;&nbsp;&nbsp; ...</pre>
<pre>**********************************************************************/</pre>
<p>Notwithstanding the above, at the discretion of the PMC, Eclipse Technology
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>The PMC recognizes that certain journals and other publishers may require
modification of copyrights or permissions as a prerequisite for publication
of research papers and monographs. In such cases, as long as the spirit
of free and open access is maintained, and the contribution of eclipse.org
is recognized, the PMC will act to facilitate such publication.</p>
<div align=center style='text-align:center;'>
<hr size=2 width="100%" align=center>
</div>
<p><b>Attachment A: Eclipse Technology PMC Subprojects</b></p>
<ul>
<li>AspectJ Development Tools (ajdt)</li>
<li>Stellation</li>
</ul>
</td>
<td class="Normal">&nbsp; </td>
</tr>
</table>
</body>
</html>