<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title></title>
</head>
<body>
<h1>Eclipse Development Process</h1>
<div class="homeitem3col">
<h2>Contents</h2>
<div id="toc">
<ul>
<li>1 Purpose</li>
<li>2 Principles
<ul>
<li>2.1 Open Source Rules of Engagement</li>
<li>2.2 Eclipse Ecosystem</li>
<li>2.3 Three Communities</li>
<li>2.4 Clear, Concise, and Evolving</li>
</ul>
</li>
<li>3 Requirements
<ul>
<li>3.1 Requirements and Guidelines</li>
</ul>
</li>
<li>4 Project Structure and Organization
<ul>
<li>4.1 Committers</li>
<li>4.2 Code and Releases</li>
<li>4.3 IP Records</li>
<li>4.4 Community Awareness</li>
<li>4.5 Scope</li>
<li>4.6 Leaders
<ul>
<li>4.6.1 Project Management Committee (PMC)</li>
<li>4.6.2 Project Lead(s)</li>
</ul>
</li>
<li>4.7 Committers and Contributors</li>
<li>4.8 Councils</li>
<li>4.9 Incubator Projects</li>
</ul>
</li>
<li>5 <strike>Roadmap Process</li></strike> <font color="green">[Reserved]</li></font>
<li>6 Development Process
<ul>
<li>6.1 Mentors</li>
<li>6.2 Project Lifecycle</li>
<li>6.2.1 Pre-proposal</li>
<li>6.2.2 Proposal</li>
<li>6.2.3 Incubation</li>
<li>6.2.4 Mature</li>
<li>6.2.5 Top-Level</li>
<li>6.2.6 Archived</li>
<li>6.3 Reviews
<ul>
<li>6.3.1 Creation Review</li>
<li>6.3.2 Graduation Review</li>
<li>6.3.3 Release Review</li>
<li>6.3.4 Promotion Review</li>
<li>6.3.5 Continuation Review</li>
<li>6.3.6 Termination Review</li>
<li>6.3.7 Move Review</li>
<li>6.3.8 Restructuring Review</li>
<li>6.3.9 Combining Reviews</li>
</ul>
</li>
<li>6.4 Releases</li>
<li>6.5 Grievance Handling</li>
</ul>
</li>
<li>7 Precedence</li>
<li>8 Revisions
<ul>
<li>8.1 Revision 2.4</li>
</ul>
</li>
</ul>
</div>
</div>
<h2>1. Purpose</h2>
<p>This document describes the Development Process for the Eclipse
Foundation. In particular, it describes how the Membership at Large,
the Board of Directors, other constituents of the Ecosystem, and the
Eclipse Management Organization (EMO) lead, influence, and collaborate
with Eclipse Projects to achieve these Eclipse purposes:</p>
<blockquote><em>The Eclipse technology is a vendor-neutral, open
development platform supplying frameworks and exemplary, extensible
tools (the 'Eclipse Platform'). Eclipse Platform tools are exemplary in
that they verify the utility of the Eclipse frameworks, illustrate the
appropriate use of those frameworks, and support the development and
maintenance of the Eclipse Platform itself; Eclipse Platform tools are
extensible in that their functionality is accessible via documented
programmatic interfaces. The purpose of Eclipse Foundation Inc., is to
advance the creation, evolution, promotion, and support of the Eclipse
Platform and to cultivate both an open source community and an
ecosystem of complementary products, capabilities, and
services.</em></blockquote>
<div class="postit">
<p>Explanatory comments, guidelines, and checklists - as well as
additional requirements added by the EMO per section 3 - are noted in
yellow boxes.</p>
</div>
<p>This document has <strike>five</strike> <font color="green">the following</font> sections:</p>
<ul>
<li><em>Principles</em> outlines the basic principles upon which the
development process is based.</li>
<li><em>Requirements</em> describes the requirements that the Eclipse
community has for its development process.</li>
<li><em>Structure and Organization</em> specifies the structure and
organization of the projects and project community at Eclipse.</li>
<strike><li><em>Roadmap Process</em> describes the manner by which the EMO will
work with the projects to create the annual Eclipse Roadmap.</li></strike>
<li><em>Development Process</em> outlines the lifecycle and processes
required of all Eclipse projects.</li>
</ul>
<h2>2. Principles</h2>
<p>The following describes the guiding principles used in developing
this Development Process.</p>
<h3>2.1 Open Source Rules of Engagement</h3>
<ul>
<li><b>Open</b> - Eclipse is open to all; Eclipse provides the same
opportunity to all. Everyone participates with the same rules; there
are no rules to exclude any potential contributors which include, of
course, direct competitors in the marketplace.</li>
<li><b>Transparent</b> - Project discussions, minutes, deliberations,
project plans, plans for new features, and other artifacts are open,
public, and easily accessible.</li>
<li><b>Meritocracy</b> - Eclipse is a meritocracy. The more you
contribute the more responsibility you will earn. Leadership roles in
Eclipse are also merit-based and earned by peer acclaim.</li>
</ul>
<h3>2.2 Eclipse Ecosystem</h3>
<p>Eclipse as a brand is the sum of its parts (all of the Projects),
and Projects should strive for the highest possible quality in
extensible frameworks, exemplary tools, transparent processes, and
project openness.</p>
<p>The Eclipse Foundation has the responsibility to
<em>...cultivate...an ecosystem of complementary products,
capabilities, and services...</em>. It is therefore a key principle
that the Eclipse Development Process ensures that the projects are
managed for the benefit of both the open source community and the
ecosystem members. To this end, all Eclipse projects are required
to:</p>
<ul>
<li>communicate their project plans and plans for new features (major
and minor) in a timely, open and transparent manner;</li>
<li>create platform quality frameworks capable of supporting the
building of commercial grade products on top of <strike>them;</li></strike> <font color="green">them; and</li></font>
<li>ship extensible, exemplary tools which help enable a broad
community of <strike>users; and</li>
<li>participate in the annual Roadmap process to ensure maximum
transparency and bi-directional communication with the ecosystem.</li></strike> <font color="green">users</li></font>
</ul>
<h3>2.3 Three Communities</h3>
<p>Essential to the Purposes of the Eclipse Foundation is the
development of three inter-related communities around each Project:</p>
<ul>
<li><b>Contributors</b> and <b>Committers</b> - a thriving, diverse and
active community of developers is the key component of any Eclipse
Project. Ideally, this community should be an open, transparent,
inclusive, and diverse community of Committers and (non-Committer)
Contributors. Attracting new Contributors and Committers to an open
source project is time consuming and requires active recruiting, not
just passive "openness". The Project Leadership must make reasonable
efforts to encourage and nurture promising new Contributors.
<ul>
<li>Projects must have diversity goals to ensure diversity of thought
and avoid relying on any one company or organization. At the same time,
we acknowledge that enforcing a particular diversity metric is a poor
way to achieve these goals; rather we expect the project leadership to
help the diversity evolve organically.</li>
<li>Diversity is a means to an end, not an end in itself, thus
diversity goals will differ by project based on the other
accomplishments of the project(s).</li>
<li>Projects are required to explain their diversity efforts and
accomplishments during Reviews.</li>
</ul>
</li>
<li><b>Users</b> - an active and engaged user community is
proof-positive that the Project's exemplary tools are useful and
needed. Furthermore, a large user community is one of the key factors
in creating a viable ecosystem around an Eclipse project, thus
encouraging additional open source and commercial organizations to
participate. Like all good things, a user community takes time and
effort to bring to fruition, but once established is typically
self-sustaining.</li>
<li><b>Adopters</b> - an active and engaged adopter/plug-in developer
community is the only way to prove that an Eclipse project is providing
extensible frameworks and extensible tools accessible via documented
APIs. Reuse of the frameworks within the companies that are
contributing to the project is necessary, but not sufficient to
demonstrate an adopter community. Again, creating, encouraging, and
nurturing an adopter community outside of the Project's developers
takes time, energy, and creativity by the Project Leadership, but is
essential to the Project's long-term open source success.</li>
</ul>
<p>The Eclipse community considers the absence of any one or more of
these communities as proof that the Project is not sufficiently open,
transparent, and inviting, and/or that it has emphasized tools at the
expense of extensible frameworks or vice versa.</p>
<h3>2.4 Clear, Concise, and Evolving</h3>
<p>It is an explicit goal of the Development Process to be as clear and
concise as possible so as to help the Project teams navigate the
complexities, avoid the pitfalls, and become successful as quickly as
possible.</p>
<p>This document imposes requirements and constraints on the operation
of the Projects, and it does so on behalf of the larger Eclipse
community. It is an explicit goal of the Development Process to provide
as much freedom and autonomy to the Projects as possible while ensuring
the collective qualities benefit the entire Eclipse community.</p>
<p>Similarly, this document should not place undue constraints on the
EMO or the Board that prevent them from governing the process as
necessary. We cannot foresee all circumstances and as such should be
cautious of being overly prescriptive and/or requiring certain fixed
metrics.</p>
<p>The frameworks, tools, projects, processes, community, and even the
definition of Quality continues to, and will continue to, evolve.
Creating rules or processes that force a static snapshot of any of
these is detrimental to the health, growth, and ecosystem impact of
Eclipse.</p>
<p>Part of the strength of this document is in what it does not say,
and thus opens for community definition through convention, guidelines,
and public consultation. A document with too much structure becomes too
rigid and prevents the kind of innovation and change we desire for
Eclipse. In areas where this document is vague, we expect the Projects
and Members to engage the community-at-large to clarify the current
norms and expectations.</p>
<h2>3. Requirements</h2>
<p>This document and any additional criteria as established by the EMO
contains requirements, recommendations, and suggestions.</p>
<strike><p><span style=
"margin-right:6px; margin-top:5px; float:left; color:ivory; background:#FF9999; border:1px solid #444; font-size:30px; line-height:25px; padding-top:2px; padding-left:2px; padding-right:2px; font-family:times;">
R</span><b>Required</b></strike>
<font color="green"><p><b>Required</b></font> - Certain responsibilities and behaviors are
required of participants in Eclipse open source projects. Projects that
fail to perform the required behaviors will be terminated by the EMO.
In keeping with the Guiding Principles, the number of requirements must
be kept to an absolute minimum.</p>
<strike><p><span style=
"margin-right:6px; margin-top:5px; float:left; color:ivory; background:#00CC99; border:1px solid #444; font-size:30px; line-height:25px; padding-top:2px; padding-left:2px; padding-right:2px; font-family:times;">
G</span><b>Guideline</b></strike>
<font color="green"><p><b>Guideline</b></font> - Other responsibilities and behaviors are
recommended best practices. Collectively, we have learned that Projects
are more likely to be successful if the team members and leaders follow
these recommendations. Projects are strongly encouraged to follow these
recommendations, but will not be penalized by this Process if they do
not.</p>
<h3>3.1 Requirements and Guidelines</h3>
<p>This document is entirely composed of requirements. In addition to
the requirements specified in this Development Process, the EMO is
instructed to clarify, expand, and extend this Process by creating a
set of Eclipse Project Development Guidelines to advance the creation,
evolution, promotion, and support of the Eclipse Platform and to
cultivate both an open source community and an ecosystem of
complementary products and services.</p>
<p>The EMO is not permitted to override or ignore the requirements
listed in this document without the express written endorsement of the
Board of Directors.</p>
<h2>4. Project Structure and Organization</h2>
<p>A <b>Project</b> is the main operational unit at Eclipse.
Specifically, all open source software development at Eclipse occurs
within the context of a Project. Projects have leaders, developers,
code, builds, downloads, websites, and more. Projects are more than
just the sum of their many parts, they are the means by which open
source work is organized when presented to the communities of
developers, adopters, and users. Projects provide structure that helps
developers expose their hard work to a broad audience of consumers.</p>
<p>Eclipse Projects are organized hierarchically. A special type of
Project, <b>Top-Level Projects</b>, sit at the top of the hierarchy.
Each Top-Level Project contains one or more Projects. Each Project may
itself contain zero or more Projects. A <strike>project</strike> <font color="green">Project</font> that has one or more
Projects is said to be the "parent" of those Projects. A Project that
has a parent is oftentimes referred to as a <b>Sub-Project</b>. The
term Project refers to either a Top-Level Project or a Sub-Project.
Projects may be referred to as Sub-Projects or Components, but the
choice of common name does not change the characteristics of the
Project.</p>
<p>The <b>descendants</b> of a Project are the Project itself and
transitive closure of its child Projects. The <b>top parent</b> of a
Project is the Top-Level Project at the top of the hierarchy.</p>
<p>Projects are the unit entity for:</p>
<ul>
<li>Committers</li>
<li>Code and Releases</li>
<li>IP Records</li>
<li>Community Awareness</li>
</ul>
<p>As defined by the Eclipse Bylaws - Article VII, the <b>Eclipse
Management Organization (EMO)</b> consists of the Foundation staff and
the Councils. The term <b>EMO(ED)</b>, when discussing an approval
process, refers to the subset of the EMO consisting of the Executive
Director and whomever he or she may delegate that specific approval
authority to.</p>
<h3>4.1 Committers</h3>
<p>Each project has exactly one set of committers. Each Project's set
of Committers is distinct from that of any other Project, including
Sub-Projects or parent Projects. All Project Committers have equal
rights and responsibilities within the Project. Partitioning of
responsibility within a Project is managed using social convention. A
Project may, for example, divide itself into logical partitions of
functionality; it is social convention that prevents Committers from
one logical partition from doing inappropriate work in another. If
finer-grained management of committer responsibilities is required, a
project should consider partitioning (via a Restructuring Review) into
two or more Sub-Projects.</p>
<p>The Committers of a project have the exclusive right to elect new
Committers to their Project&ndash;no other group, including a parent
Project, can force a Project to accept a new Committer.</p>
<p>There is no roll-up of <strike>committers:</strike> <font color="green">Committers:</font> the set of <strike>committers</strike> <font color="green">Committers</font> on a
<strike>project</strike>
<font color="green">Project</font> is exactly that set of people who have been explicitly elected
into that role for the project (i.e. being a committer on a sub-project
does not give you any automatic rights on the "parent" project).</p>
<p>In practical terms, each Project has a single Unix group of its
Committers that provides write-access to the Project's resources.
Pictorially below, we see that a Project, in addition to the various
resources and Committers it has, can also have zero or more
Sub-Projects. Each of these Sub-Projects has its own distinct set of
Committers and resources.</p>
<img src="images/subprojects-resources-291x300.png">
<h3>4.2 Code and Releases</h3>
<p>Each Project owns and maintains a collection of resources.</p>
<p>Resources may include source code, a project website, space on the
downloads server, access to build resources, and other services
provided by the Eclipse Foundation infrastructure. The exact
infrastructure provided by the Eclipse Foundation varies over time and
is defined outside this process document.</p>
<p>A project is not strictly required to make use of all the resources
made available; a project might, for example, opt to <em>not</em>
maintain a source code repository. Such a Project might operate as an
organizational unit, or container, for several Sub-Projects. Similarly,
a Project might opt to provide a consolidated website, build and/or
download site for its Sub-Projects (the Sub-Projects would then not
require those resources for themselves).</p>
<p>Each Project has a single Bugzilla component for its bugs.</p>
<p>Any Project in the Mature Phase may make a <b>Release</b>. A Project
in the Incubation Phase with two Mentors may make a pre-1.0
<b>Release</b>. A Release may include the code from any subset of the
Project's descendants.</p>
<h3>4.3 IP Records</h3>
<p>A Project at any level may receive IP clearance for contributions
and third-party libraries. IP approval will often include the same
approval for all descendant Projects. However, IP clearance will only
be granted at the most appropriate technical level.</p>
<h3>4.4 Community Awareness</h3>
<p>Projects are the level of communication with the larger Eclipse
community and ecosystem. Projects may either have their own
communications (website, mailing lists, forums/newsgroups, etc) or they
may be part of a parent Project's communications (website, mailing
list, forums/newsgroups, etc). In either case, the Project is required
to maintain an open and public communication channel with the Eclipse
community including, but not limited to, project plans, schedules,
design discussions, and so on.</p>
<p>All Projects must make the communication channels easy to find.
Projects are further required to make the separate communication
channels of their child Projects (if any) easy to find.</p>
<p>Any Project in the Incubation Phase must correctly identify its
website and Releases. A Project with at least one descendant Project in
Incubation Phase must correctly annotate its own website so as to
notify the Eclipse community that incubating Projects exist in its
hierarchy. Any Release containing code from an Incubation Phase project
must be correctly labeled, i.e., the Incubation Phase is viral and
expands to cover all Releases in which it is included.</p>
<h3>4.5 Scope</h3>
<p>Each Top-Level Project has a <b>Charter</b> which describes the
purpose, <b>Scope</b>, and operational rules for the Top-Level Project.
The Charter should refer to, and describe any refinements to, the
provisions of this Development Process. The Board approves the Charter
of each Top-Level Project.</p>
<p>Sub-Projects do not have separate Charters; Sub-Projects operate
under the Charter of their parent Top-Level Project.</p>
<p>All Projects have a defined <b>Scope</b> and all initiatives within
that Project are required to reside within that Scope. Initiatives and
code that is found to be outside the Scope of a Project may result in
the termination of the Project. The Scope of Top-Level Projects is part
of the Charter, as approved by the Board of Directors of the Eclipse
Foundation.</p>
<p>The Scope of a Sub-Project is defined by the initial project
proposal as reviewed and approved by the <b>Project Management
Committee (PMC)</b> (as further defined below) of the Project's
Project's top parent and by the EMO. A Project's Scope must be a subset
of its parent's Scope.</p>
<h3>4.6 Leaders</h3>
<p>There are two different types of Project leadership at Eclipse: The
Project Management Committee (PMC) and Project Leads. Both forms of
leadership are required to:</p>
<ul>
<li>ensure that their Project is operating effectively by guiding the
overall direction and by removing obstacles, solving problems, and
resolving conflicts;</li>
<li>operate using open source rules of engagement: meritocracy,
transparency, and open participation; and</li>
<li>ensure that the Project and its Sub-Projects (if any) conform to
the Eclipse Foundation IP Policy and Procedures.</li>
</ul>
<p>The leadership for a Project is composed of the Project's Project
Lead(s), the leadership of the parent Project (if any) and the PMC
Leads and PMC Members for the Top-Level Project.</p>
<h4>4.6.1 Project Management Committee (PMC)</h4>
<p>Top-level projects are managed by a Project Management Committee
(PMC). A PMC has one or more PMC Leads and zero or more PMC Members.
Together the PMC provides oversight and overall leadership for the
projects that fall under their top-level project. The PMC as a whole,
and the PMC Leads in particular, are ultimately responsible for
ensuring that the Eclipse Development Process is understood and
followed by their projects. The PMC is additionally responsible for
maintaining the top-level project's charter.</p>
<p>PMC Leads are approved by the Board; PMC members are elected by the
existing PMC Leads and Members, and approved by the EMO(ED).</p>
<h4>4.6.2 Project Lead</h4>
<p>Eclipse Projects are managed by one or more Project Leads. Project
Leads are responsible for ensuring that their Project's Committers are
following the Eclipse Development Process, and that the project is
engaging in the right sorts of activities to develop vibrant
communities of users, adopters, and contributors. The initial project
leadership is appointed and approved in the creation review.
Subsequently, additional Project Leads must be elected by the project's
Committers and approved by the Project's PMC and the EMO(ED).</p>
<p>In the unlikely event that a member of the Project leadership
becomes disruptive to the process or ceases to contribute for an
extended period, the member may be removed by the unanimous vote of the
remaining Project Leads (if there are at least two other Project
Leads), or unanimous vote of the Project's PMC.</p>
<p>In exceptional situations, such as projects with zero active
committers or projects with disruptive Committers and no effective
Project Leads, the Project Leadership Chain has the authority to make
changes (add, remove) to the set of committers and/or Project Leads of
that project.</p>
<h3>4.7 Committers and Contributors</h3>
<p>Each Project has a <b>Development Team</b>, led by the Project
Leaders. The Development Team is composed of <b>Committers</b> and
<b>Contributors</b>. <b>Contributors</b> are individuals who contribute
code, fixes, tests, documentation, or other work that is part of the
Project. <b>Committers</b> have write access to the Project's resources
(source code repository, bug tracking system, website, build server,
downloads, etc.) and are expected to influence the Project's
development.</p>
<div class="postit">See guidelines and checklists for electing a new
committer.</div>
<p>Contributors who have the trust of the Project's Committers can,
through election, be promoted Committer for that Project. The breadth
of a Committer's influence corresponds to the breadth of their
contribution. A Development Team's Contributors and Committers may (and
should) come from a diverse set of organizations. A Committer gains
voting rights allowing them to affect the future of the Project.
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, nor is it a right based on
employment by an Eclipse Member company or any company employing
existing committers.</p>
<p>The election process begins with an existing Committer on the same
Project nominating the Contributor. The Project's Committers will vote
for a period of no less than one week of standard business days. If
there are at least three (3) positive votes and no negative votes
within the voting period, the Contributor is recommended to the
project's PMC for commit privileges. If there are three (3) or fewer
Committers on the Project, a unanimous positive vote of all Committers
is substituted. If the PMC approves, and the Contributor signs the
appropriate Committer legal agreements established by the EMO (wherein,
at the very least, the Developer agrees to abide by the Eclipse
Intellectual Property Policy), the Contributor becomes a Committer and
is given write access to the source code for that Project.</p>
<p>At times, Committers may become inactive for a variety of reasons.
The decision making process of the Project relies on active committers
who respond to discussions and vote in a constructive and timely
manner. The Project Leaders are responsible for ensuring the smooth
operation of the Project. A Committer who is disruptive, does not
participate actively, or has been inactive for an extended period may
have his or her commit status revoked by the Project Leaders. (Unless
otherwise specified, "an extended period" is defined as "no activity
for more than six months".)</p>
<p>Active participation in the user forums/newsgroups 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
forums/newsgroups.</p>
<p>Committers are required to monitor the mailing lists associated with
the Project. This is a condition of being granted commit rights to the
Project. 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 revoked.</p>
<p>Committers are required to track, participate in, and vote on,
relevant discussions in their associated Projects 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>Committer, PMC Lead, Project Lead, and Council Representative(s) are
roles; an individual may take on more than one of these roles
simultaneously.</p>
<h3>4.8 Councils</h3>
<p>The <strike>three</strike> Councils defined in Bylaws section VII are comprised of
Strategic members and PMC representatives. The <strike>three</strike> Councils help guide the
Projects as follows:</p>
<ul>
<li>The <strike><b>Requirements Council</b> is primarily responsible for the
Eclipse Roadmap. There will always be more requirements than there are
resources to satisfy them, thus the Requirements Council gathers,
reviews, and categorizes all of these incoming requirements - from the
entire Eclipse ecosystem - and proposes a coherent set of <b>Themes and
Priorities</b>.</li>
<li>The</strike> <b>Planning Council</b> is responsible for establishing a
coordinated Simultaneous Release (a.k.a, "the release <strike>train") that
supports the Themes and Priorities in the Roadmap.</strike> <font color="green">train").</font> The
Planning Council is <font color="green">further</font> responsible for cross-project planning,
architectural issues, user interface conflicts, and all other
coordination and integration issues. The Planning Council discharges
its responsibility via collaborative evaluation, prioritization, and
compromise.</li>
<li>
<div class="postit">See guidelines and checklists for the Architecture
Council.</div>
The <b>Architecture Council</b> is responsible for <strike>the development,
articulation,</strike> <font color="green">(i) monitoring,
guiding,</font> and <strike>maintenance of</strike> <font color="green">influencing</font> the <strike>Eclipse Platform Architecture</strike> <font color="green">software architectures used by Projects,
(ii) new project mentoring,</font> and
<strike>ensuring the Principles of</strike> <font color="green">(iii) maintaining and revising</font> the
<font color="green">Eclipse</font> Development <strike>Process through mentorship.</strike> <font color="green">Process.</font> Membership in the Architecture Council is
per the Bylaws through Strategic Membership, PMCs, and by appointment.
The Architecture Council will, at least annually, recommend to the
EMO(ED), Eclipse Members who have sufficient experience, wisdom, and
time to be appointed to the Architecture Council and serve as Mentors.
Election as a Mentor is a highly visible confirmation of the Eclipse
community's respect for the candidate's technical vision, good
judgement, software development skills, past and future contributions
to Eclipse. It is a role that should be neither given nor taken
lightly. Appointed members of the Architecture Council are appointed to
two year renewable terms.</li>
</ul>
<h3>4.9 Incubator Projects</h3>
<p>A Project may designate a Sub-Project as an "Incubator". An
Incubator is a Project that is intended to perpetually remain in the
Incubation phase. Incubators are an excellent place to innovate, test
new ideas, grow functionality that may one day be moved into another
Project, and develop new committers.</p>
<p>Incubator Projects never have releases; they do not require yearly
continuation reviews and they are not part of the annual release train.
Incubators may have builds, and downloads. They conform to the standard
incubation branding requirements and are subject to the IP due
diligence rules outlined for incubating Projects. Incubators do not
graduate.</p>
<p>The scope of an Incubator Project must fall within the scope of its
parent project. The committer group of the Incubator Project must
overlap with that of the parent project (at least one committer from
the parent project must be a committer for the Incubator). Incubator
projects do not require Architecture Council mentors (the parent
project's committers are responsible for ensuring that the Incubator
project conform to the rules set forth by the Eclipse Development
Process).</p>
<p>An Incubator project should designated as such by including the word
"Incubator" in its name (e.g. "Eclipse Incubator"). To do otherwise is
considered exceptional and requires approval from the PMC and
EMO(ED).</p>
<p>Only Top-Level Projects and Projects in the Mature phase may create
an Incubator. Incubators are created via a Creation Review.
Alternatively, an Incubator can be created as part of a Graduation,
Promotion, or Restructuring <strike>Review.</p></strike> <font color="green">Review. A proposal is not required to
create an Incubator project.</p></font>
<h2>5. <strike>Roadmap</strike> <font color="green">[Reserved]</h2>
<h2>6. Development</font> Process</h2>
<strike><p>The Roadmap describes the collective Eclipse</strike>
<font color="green"><p>Projects must work within their Scope.</font> Projects <strike>future
directions and consists of two parts:</p>
<ol>
<li><b>Themes and Priorities</b> from the Requirements Council</li>
<li><b>Project Plans</b> from Projects</li>
</ol>
<p>The Roadmap</strike> <font color="green">that desire to
expand beyond their current Scope</font> must <strike>be consistent with the Purposes</strike> <font color="green">seek an enlargement of their
Scope using a public Review</font> as described <strike>in
Bylaws section 1.1. It is developed using</strike> <font color="green">below. Further, projects must
fit within</font> the <strike>prescribed roadmap
process.</p>
<p>The Roadmap is prepared</strike> <font color="green">scope defined</font> by <strike>the Councils</strike> <font color="green">their containing projects</font> and <strike>approved by the Board
annually. A proposed Roadmap or Roadmap update is disseminated to</strike> the
<strike>Membership at Large for comment and feedback</strike> <font color="green">scope
defined</font> in <strike>advance</strike> <font color="green">the charter</font> of <strike>its
adoption. This dissemination and all discussion and debate around</strike> <font color="green">their Top-Level Project.</p>
<p>All projects are required to report their status at least quarterly
using</font> the
<strike>Roadmap</strike> <font color="green">EMO defined status reporting procedures.</p>
<p>Projects</font> must <strike>be held in an open and transparent public forum, such as
mailing lists or newsgroups.</p>
<p>Prior to any Board vote to approve a Roadmap or Roadmap update,
every Member has the right to communicate concerns and objections to
the Board.</p>
<p>The process of producing or updating the Roadmap is expected to be
iterative. An initial set of Themes and Priorities may be infeasible to
implement in the desired timeframe; subsequent consideration may reveal
new implementation alternatives or critical requirements that alter the
team's perspective on priorities. The EMO orchestrates interaction
among and within the Councils to drive the Roadmap to convergence.</p>
<p>This Development Process, the EMO, the Councils, and the Projects
all acknowledge that the success of the Eclipse ecosystem is dependent
on a balanced set of requirements and implementations. A Roadmap that
provides too large a burden on the Projects will be rejected and
ignored; similarly, a Roadmap that provides no predictable Project
plans will be unhelpful to the business and technical plans being
created by the ecosystem. A careful balance of demands and commitments
is essential to the ongoing success of the Eclipse Projects,
frameworks, and ecosystem.</p>
<p>The Project Leadership is expected to ensure that their Project
Plans are consistent with the Roadmap, and that all plans, technical
documents and reports are publicly available. To meet this requirement,
each Project is required to create a transparently available Project
Plan in an EMO-defined file format that meets the following
criteria:</p>
<ol>
<li>Enumerates the areas of change in the frameworks and tools for each
proposed Release</li>
<li>Consistent with and categorized in terms of the themes and
priorities of the Roadmap</li>
<li>Identifies and accommodates cross-project dependencies</li>
<li>Addresses requirements critical to the Ecosystem and/or the
Membership at Large</li>
<li>Advances the Project in functionality, quality, and
performance</li>
</ol>
<p>A Project may incrementally revise their Project Plan to deliver
additional tasks provided that:</p>
<ol>
<li>the approved Roadmap is not put in jeopardy; and</li>
<li>the work is consistent with the Project Plan criteria (as described
above)</li>
</ol>
<p>A project may produce an aggregate plan for itself and its
descendants. In this case descendents would share their ancestor's
plan.</p>
<h2>6. Development Process</h2>
<p>All Eclipse Projects, and hence all Project Proposals, must be
consistent with the Purposes and the then-current Roadmap.</p>
<p>Projects must work within their Scope. Projects that desire to
expand beyond their current Scope must seek an enlargement of their
Scope using a public Review as described below.</p>
<p>All projects are required to report their status at least quarterly
using the EMO defined status reporting procedures.</p>
<p>Projects must provide advanced notification of upcoming features</strike> <font color="green">provide advanced notification of upcoming features</font> and
frameworks via their Project Plan.</p>
<h3>6.1 Mentors</h3>
<p>New Proposals that intend to do a Release are required to have at
least two <b>Mentors</b>. New Proposals that will only Release code as
part of a parent Project's Release are not required to have Mentors.
Mentors must be members of the Architecture Council. The Mentors
(including name, affiliation, and current Eclipse projects/roles) must
be listed in the Proposal. Mentors are required to monitor and advise
the new Project during its Incubation Phase, but are released from that
duty once the Project graduates to the Mature Phase.</p>
<h3>6.2 Project Lifecycle</h3>
<img src="/projects/images/Development-process-small.gif" align=
"right">
<p>Projects go through six distinct phases. The transitions from phase
to phase are open and transparent public reviews.</p>
<h4>6.2.1 Pre-proposal</h4>
<div class="postit">See guidelines and checklists about writing a
proposal.</div>
<p>An individual or group of individuals declares their interest in,
and rationale for, establishing a project. The EMO will assist such
groups in the preparation of a project Proposal.</p>
<ul>
<li>The Pre-proposal phase ends when the Proposal is published by EMO
and announced to the membership by the EMO.</li>
</ul>
<h4>6.2.2 Proposal</h4>
<div class="postit">See guidelines and checklists about gathering
support for a proposal.</div>
<p>The proposers, in conjunction with the destination PMC and the
community, collaborate in public to enhance, refine, and clarify the
proposal. Mentors (if necessary) for the project must be identified
during this phase.</p>
<ul>
<li>The Proposal phase ends with a Creation Review, or withdrawal.</li>
<li>The Proposal may be withdrawn by the proposers.</li>
<li>The EMO(ED) will withdraw a proposal that has been inactive for
more than six months.</li>
</ul>
<h4>6.2.3 Incubation</h4>
<div class="postit">See guidelines and checklists about
incubation.</div>
<p>After the project has been created, the purpose of the incubation
phase is to establish a fully-functioning open-source project. In this
context, incubation is about developing the process, the community, and
the technology. Incubation is a phase rather than a place: new projects
may be incubated under any existing Project.</p>
<ul>
<li>The Incubation phase may continue with a Continuation Review or a
Release Review.</li>
<li>Top-Level Projects cannot be incubated and can only be created from
one or more existing Mature-phase Projects.</li>
<li>The Incubation phase ends with a Graduation Review or a Termination
Review.</li>
<li>Designated Incubator Projects may remain perpetually in the
Incubation phase; no reviews are required.</li>
</ul>
<p>Many Eclipse Projects are proposed and initiated by individuals with
extensive and successful software development experience. This document
attempts to define a process that is sufficiently flexible to learn
from all its participants. At the same time, however, the Incubation
phase is useful for new Projects to learn the community-defined
Eclipse-centric open source processes.</p>
<div class="postit">See guidelines and checklists for utilizing the
Parallel IP process.</div>
<p>Only projects that are properly identified as being in the
incubation phase (including designated Incubator Projects) may use the
Parallel IP process to reduce IP clearance process for new
contributions.</p>
<h4>6.2.4 Mature</h4>
<div class="postit">See guidelines and checklists about the mature
phase.</div>
<p>The project team has demonstrated that they are an open-source
project with an open and transparent process; an actively involved and
growing community; and Eclipse Quality technology. The project is now a
mature member of the Eclipse Community. Major releases continue to go
through Release Reviews.</p>
<ul>
<li>Mature phase projects have Releases through Release Reviews.</li>
<li>A Mature Project may be promoted to a Top-Level Project through a
Promotion Review.</li>
<li>A Mature Project that does not participate in a Release in given
year may continue through a Continuation Review.</li>
<li>Inactive Mature phase projects may be archived through a
Termination Review.</li>
</ul>
<h4>6.2.5 Top-Level</h4>
<div class="postit">See guidelines and checklists about being a
top-level project.</div>
<p>Projects that have demonstrated the characteristics of a Top-Level
Project (e.g., consistent leadership in a technical area and the
recruitment of a wider developer community) can be promoted to
Top-Level Project status. This promotion occurs through a Promotion
Review. Upon the successful completion of a Promotion Review, the
EMO(ED) may recommend that the project be promoted to the Board of
Directors and ask that its Charter be reviewed and approved.</p>
<h4>6.2.6 Archived</h4>
<div class="postit">See guidelines and checklists for archiving
projects.</div>
<p>Projects that become inactive, either through dwindling resources or
by reaching their natural conclusion, are archived. Projects can reach
their natural conclusion in a number of ways: for example, a project
might become so popular that it is absorbed into one of the other major
frameworks. Projects are moved to Archived status through a Termination
Review.</p>
<p>If there is sufficient community interest in reactivating an
Archived Project, the Project will start again with Creation Review. As
there must be good reasons to have moved a Project to the Archives, the
Creation Review provides a sufficiently high bar to prove that those
reasons are no longer <strike>valid. It also ensures that the original or
updated project goals are still consistent with the Purposes and
Roadmap.</p></strike> <font color="green">valid.</p></font>
<h3>6.3 Reviews</h3>
<p>The Eclipse Development Process is predicated on open and
transparent behavior. All major changes to Eclipse projects must be
announced and reviewed by the membership-at-large. Major changes
include the Project Phase transitions as well as the introduction or
exclusion of significant new technology or capability. It is a clear
requirement of this document that members who are monitoring the
appropriate media channels (e.g., mailing lists or RSS feeds) not be
surprised by the post-facto actions of the Projects.</p>
<p>All Projects are required to participate in at least one Review per
year.</p>
<p>For each <b>Review</b>, the project leadership <strike>makes a presentation
to,</strike> <font color="green">prepares
documentation for,</font> and receives feedback from, the Eclipse
membership.</p>
<p>A Review is a fairly comprehensive process. Gathering the material
for a Review and preparing the <strike>presentation</strike> <font color="green">documentation</font> is a non-trivial effort,
but the introspection offered by this exercise is useful for the
Project and results are very useful for the entire Eclipse community.
In addition, Reviews have a specific relationship to the requirements
of the Eclipse IP Policy.</p>
<p>All Reviews have the same general process:</p>
<ol>
<li>Projects are responsible for initiating the appropriate reviews.
However, if a Project does not do so and the EMO believes a Review is
necessary, the EMO may initiate a Review on the Project's behalf.</li>
<li>A Review then continues with the Project's Leadership requesting
that the EMO(ED) schedule the Review.</li>
<li>Prior to the start of the review period, the Project leadership
provides the EMO with review documentation.
<ul>
<li>The review documentation material always includes a document that
describes the review. The minimum contents of the document are
specified by the individual Review types.</li>
<li>The <strike>presentation material</strike> <font color="green">review documentation</font> must be available in a format that anyone
in the Eclipse membership can review. <strike>For example, Microsoft Powerpoint
files are not an acceptable single format: such files may be one of the
formats, but not the only format. Similarly for Apple Keynote files and
Microsoft Word files.</strike> PDF and HTML are acceptable
single formats.</li>
<li>The <strike>presentation material</strike> <font color="green">review documentation</font> must have a correct copyright statement
and license.</li>
<li>The <strike>presentation material</strike> <font color="green">review documentation</font> must be <em>archival quality</em>. This
means that the materials must be comprehensible and complete on their
own without requiring explanation by a human presenter, reference to a
wiki, or to other non-archived web pages.</li>
</ul>
</li>
<li>The EMO announces the Review schedule and makes the documentation
available to the membership-at-large.</li>
</ol>
<p>The criteria for the successful completion of each type of Review
will be documented in writing by the EMO in guidelines made available
via the www.eclipse.org website. Such guidelines will include, but are
not limited to the following:</p>
<ol>
<li>Clear evidence that the project has vibrant committer, adopter and
user communities as appropriate for the type of Review.</li>
<li>Reasonable diversity in its committer population as appropriate for
the type of Review. Diversity status must be provided not only as
number of people/companies, but also in terms of effort provided by
those people/companies.</li>
<li>Documented completion of all required due diligence under the
Eclipse IP Policy.</li>
<li>For Continuation, Graduation and Release Reviews, the project must
have a current project plan, in the format specified by the EMO,
available to the community.</li>
<li>Balanced progress in creating both frameworks and extensible,
exemplary tools.</li>
<li>Showcase the project's quality through project-team chosen metrics
and measures, e.g., coupling, cyclomatic complexity, test/code
coverage, documentation of extensions points, etc.</li>
</ol>
<p>The Review period is open for no less than one week and usually no
more than two weeks of generally accepted business days.</p>
<ol>
<li>The Review begins with the EMO's posting of the review materials at
the start of the Review period</li>
<li>The proper functioning of the Eclipse Development Process is
contingent on the active participation of the Eclipse Members and
Committers, especially in Reviews, thus each Review has an
EMO-designated discussion and feedback communication channel: a
forum/newgroup, a mailing list, or some other public forum.</li>
<li>If a Committer election is required for a Review (for example, for
a Creation Review), then it is held simultaneously with the Review
period. Thus the election and the Review will end at the same time,
allowing quick and efficient provisioning of the resulting
Project.</li>
<li>The EMO(ED) approves or fails the Review based on the public
comments, the scope of the Project, and the Purposes of the Eclipse
Foundation as defined in the Bylaws.</li>
<li>The Review ends with the announcement of the results in the defined
Review communication channel (the EMO(ED) will request that the Project
Lead make this announcement).</li>
</ol>
<p>If any Member believes that the EMO has acted incorrectly in
approving or failing a Review may appeal to the Board to review the
EMO's decision.</p>
<h4>6.3.1 Creation Review</h4>
<div class="postit">See guidelines and checklists about Creation
Reviews.</div>
<p>The purpose of the Creation Review is to assess the community and
membership response to the proposal, to verify that appropriate
resources are available for the project to achieve its plan, and to
serve as a committer election for the project's initial Committers. The
Eclipse Foundation strives not to be a repository of "code dumps" and
thus projects must be sufficiently staffed for forward progress.</p>
<p>The Creation Review documents must include short nomination bios of
the proposed initial committers. These bios should discuss their
relationship to, and history with, the incoming code and/or their
involvement with the area/technologies covered by the proposal. The
goal is to help keep any legacy contributors connected to new project
and explain that connection to the current and future Eclipse
membership, as well as justify the initial Committers' participation in
a meritocracy.</p>
<h4>6.3.2 Graduation Review</h4>
<div class="postit">See guidelines and checklists about Graduation
Reviews.</div>
<p>The purpose of the Graduation Review is to confirm that the Project
is/has:</p>
<ul>
<li>a working and demonstrable code base of sufficiently high
quality</li>
<li>active and sufficiently diverse communities appropriate to the size
of the graduating code base: adopters, developers, and users</li>
<li>operating fully in the open following the Principles and Purposes
of Eclipse</li>
<li>a credit to Eclipse and is functioning well within the larger
Eclipse community</li>
</ul>
<p>The Graduation Review is about the phase change from Incubation
Phase to Mature Phase. If the Project and/or some of its code is
simultaneously relocating to another Project, the Graduation Review
will be combined with a Restructuring Review.</p>
<h4>6.3.3 Release Review</h4>
<div class="postit">See guidelines and checklists about Release
Reviews.</div>
<p>The purposes of a Release Review are: to summarize the
accomplishments of the release, to verify that the IP Policy has been
followed and all approvals have been received, to highlight any
remaining quality and/or architectural issues, and to verify that the
project is continuing to operate according to the Principles and
Purposes of Eclipse.</p>
<h4>6.3.4 Promotion Review</h4>
<p>The purpose of a Promotion Review is to determine if the Project has
demonstrated the characteristics of a Top-Level Project, e.g.,
consistent leadership in a technical area and the recruitment of a
wider developer community. The Project will already be a
well-functioning Mature Eclipse Project, so evidence to the contrary
will be a negative for promotion. Top-Level Projects, both through
their existence and their Council memberships, have substantial
influence over direction and operation of Eclipse, thus it behooves the
membership to grant Top-Level status only for merit: for demonstrated
service to the larger Eclipse ecosystem.</p>
<h4>6.3.5 Continuation Review</h4>
<p>The purpose of a Continuation Review is to verify that a Proposal or
Project continues to be a viable effort and a credit to Eclipse. The
Project team will be expected to explain the recent technical progress
and to demonstrate sufficient adopter, developer, and user support for
the Project. The goal of the Continuation Review is to avoid having
inactive projects looking promising but never actually delivering
extensible frameworks and exemplary tools to the ecosystem.</p>
<h4>6.3.6 Termination Review</h4>
<div class="postit">See Termination Review "How To" for more
information.</div>
<p>The purpose of a Termination Review is to provide a final
opportunity for the Committers and/or Eclipse membership to discuss the
proposed withdrawal of a Proposal or archiving of a Project. The
desired outcome is to find sufficient evidence of renewed interest and
resources in keeping the Project or Proposal active.</p>
<h4>6.3.7 Move Review</h4>
<p>A Move Review is considered to be a special type of Restructuring
Review.</p>
<h4>6.3.8 Restructuring Review</h4>
<p>The purpose of a Restructuring Review is to notify the community of
your intent to make significant changes to one or more projects.
"Significant changes" includes:</p>
<ul>
<li>Movement of significant chunks of functionality from one project to
another;</li>
<li>Modification of the project structure, e.g. combining multiple
projects into a single project, or decomposing a single project into
multiple projects; and/or</li>
<li>Change of project scope.</li>
</ul>
<p>A Restructuring Review may include the movement of significant
chunks of code. A move is considered significant if it has an impact on
the community (i.e. if segments of the community will notice that the
code has moved). This may include entire projects, bundles, and
features, but likely excludes small fragments, code snippets and
individual files. The IP Log of all moved code must be reviewed prior
to the start of the review period (this, typically, is a subset of the
project's IP Log). If all of the code is moved out of a project, a
Termination Review for that project can be combined with the
Restructuring Review.</p>
<p>Note that, regardless of whether or not a review is required, moving
code from one Project to another is subject to the Eclipse IP
Policy.</p>
<p>A Restructuring Review may necessitate the construction of one or
more new projects. This tends to occur when an existing project is
decomposed into two or more projects. In this case, a Restructuring
Review is similar to a Creation Review. Any new projects that are
created as part of a Restructuring Review must have their scope
explicitly specified as part of the review. The scope of any new
project must be a subset of the scope of the original project.
Likewise, the set of committers assigned to a new project must be a
subset of the committers of the original project (additional committers
can be elected to the new project after it is created). Any new
projects that fall outside of the scope of the original project, or
wish to establish a different set of committers, must undergo the full
project creation process.</p>
<p>Committers can be moved along with code into a new project as part
of the project provisioning process. Committers cannot be moved along
with code into an existing project. In this case, the existing project
must elect the new committers into the project.</p>
<p>A project is expected to socialize pending changes using established
communication channels prior to initiating the review. A Restructuring
Review must provide the community with at least one week to review and
respond to the changes. Prior to the start of that review period, the
community must be provided with (via the EMO) completed review
documentation that describes in specific terms what will be changed as
part of the restructuring.</p>
<p>This may include:</p>
<ul>
<li>Name, description, scope, and committer lists of new projects that
need to be created;</li>
<li>Source and target locations for moves of source code
directories;</li>
<li>Reorganization of builds and downloads;</li>
<li>Contribution questionnaires (CQs) that need to be moved or
piggy-back CQs that must be created;</li>
<li>Location of the approved IP Log; and</li>
<li>Other information that helps the community understand the
change.</li>
</ul>
<h4>6.3.9 Combining Reviews</h4>
<p>Reviews can be combined at the discretion of the PMC and EMO.
Multiple Projects may participate in a single Review. Similarly,
multiple review types can be engaged in simultaneously. A parent
Project may, for example, engage in an aggregated Release Review
involving itself and some or all of its child projects; a consolidated
Restructuring Review may move the code for several projects; or a
Release Review may be combined with a Graduation Review. When multiple
reviews are combined, the review documentation must explicitly state
all of the Projects and types of reviews involved, and include the
required information about each.</p>
<p>It should be noted that the purpose of combining reviews is to
better serve the community, rather than to reduce effort on the part of
the project (though it is fortunate when it does both). Combining a
Release and Graduation review, or aggregating a Release Review of a
Project and several of it's child Projects generally makes sense.
Combining Release Reviews for multiple unrelated projects most likely
does not.</p>
<h3>6.4 Releases</h3>
<p><em>(Most of this section is borrowed and paraphrased from the
excellent Apache Software Foundation Releases FAQ. The Eclipse
community has many of the same beliefs about Releases as does the
Apache community and their words were already excellent. The Apache
Software Foundation Releases FAQ is distributed under the Apache
License, Version 2.0.)</em></p>
<p>Releases are, by definition, anything that is distributed outside of
the Committers of a Project. If users are being directed to download a
build, then that build has been released (modulo the exceptions below).
All Projects and Committers must obey the Eclipse Foundation
requirements on approving any release.</p>
<p><em>(Exception 1: nightly and integration builds)</em> During the
process of developing software and preparing a Release, various nightly
and integration builds are made available to the developer community
for testing purposes. Do not include any links on the project website,
blogs, wikis, etc. that might encourage non-early-adopters to download
and use nightly builds, release candidates, or any other similar
package (links aimed at early-adopters and the project's developers are
both permitted and encouraged). The only people who are supposed to
know about such packages are the people following the developer mailing
list and thus are aware of the limitations of such builds.</p>
<p><em>(Exception 2: milestone and release candidate builds)</em>
Projects are encouraged to use an agile development process including
regular milestones (for example, six week milestones). Milestones and
release candidates are "almost releases" intended for adoption and
testing by early adopters. Projects are allowed to have links on the
project website, blogs, wikis, etc. to encourage these
outside-the-committer-circle early adopters to download and test the
milestones and release candidates, but such communications must include
caveats explaining that these are not official Releases.</p>
<ul>
<li>Milestones are to be labeled <code>x.yMz</code>, e.g., 2.3M1
(milestone 1 towards version 2.3), 2.3M2 (milestone 2 towards version
2.3), etc.</li>
<li>Release candidates are to be labeled <code>x.yRCz</code>, e.g.,
2.3RC1 (release candidate 1 towards version 2.3).</li>
<li>Official Releases are the only downloads allowed to be labeled with
<code>x.y</code>, e.g., 0.5, 1.0, 2.3, etc.</li>
</ul>
<p>All official Releases must have a successful Release Review before
being made available for download.</p>
<p><em>(Exception 3: bug fix releases with no new features)</em> Bug
fix releases (x.y.z, e.g., 2.3.1) with no new features over the base
release (e.g., 2.3) are allowed to be released without an additional
Release Review. If a bug fix release contains new features, then the
Project must have a full Release Review.</p>
<p>Under no circumstances are builds and milestones to be used as a
substitute for doing proper official Releases. Proper Release
management and reviews is a key aspect of Eclipse Quality.</p>
<h3>6.5 Grievance Handling</h3>
<p>When a Member has a concern about a Project, the Member will raise
that concern with the Project's Leadership. If the Member is not
satisfied with the result, the Member can raise the concern with the
parent Project's Leadership. The Member can continue appeals up the
Project Leadership Chain and, if still not satisfied, thence to the
EMO, then the Executive Director, and finally to the Board. All appeals
and discussions will abide by the Guiding Principles of being open,
transparent, and public.</p>
<p>Member concerns may include:</p>
<ul>
<li><b>Out of Scope.</b> It is alleged that a Project is exceeding its
approved scope.</li>
<strike><li><b>Inconsistent with Purposes.</b> It is alleged that a Project is
inconsistent with the Roadmap and/or Purposes.</li></strike>
<li><b>Dysfunctional.</b> It is alleged that a Project is not
functioning correctly or is in violation of one or more requirements of
the Development Process.</li>
<li><b>Contributor Appeal.</b> It is alleged that a Contributor who
desires to be a Committer is not being treated fairly.</li>
<li><b>Invalid Veto.</b> It is alleged that a -1 vote on a Review is
not in the interests of the Project and/or of Eclipse.</li>
</ul>
<p>A variety of grievance resolutions are available to the EMO up to,
and including, rebooting or restarting a project with new Committers
and leadership.</p>
<h2>7. Precedence</h2>
<p>In the event of a conflict between this document and a
Board-approved project charter, the most recently approved document
will take precedence.</p>
<h2>8. Revisions</h2>
<p>As specified in the Bylaws, the EMO is responsible for maintaining
this document and all changes must be approved by the Board.</p>
<p>Due to the continued evolution of the Eclipse technology, the
Eclipse community, and the software marketplace, it is expected that
the Development Process (this document) will be reviewed and revised on
at least an annual basis. The timeline for that review should be chosen
so as to incorporate the lessons of the previous annual coordinate
release and to be applied to the next annual coordinated release.</p>
<p>The EMO is further responsible for ensuring that all plans,
documents and reports produced in accordance with this Development
Process be made available to the Membership at Large via an appropriate
mechanism in a timely, effective manner.</p>
<h4>8.1 Revision <strike>2.5</h4></strike> <font color="green">2.6</h4></font>
<p>This document was approved by the Eclipse Foundation Board of
Directors in its meeting on <strike>May 19/2010.</strike> <font color="green">XXXXXXXX.</font> It takes effect (replacing all
previous versions) on August <strike>1/2010.</p></strike> <font color="green">1/2011.</p></font>
</body>
</html>
