blob: fad2482a0db5e49efc5b0f1073abf8b7ec5cf529 [file] [log] [blame]
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title> </title>
</head>
<body>
<h1>Eclipse Development Process <strike>2014</strike> <font color="green">2015</font> </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
<ul>
<li>2.3.1 Contributors and Committers </li>
<li>2.3.2 Users </li>
<li>2.3.3 Adopters </li>
</ul>
</li>
<li>2.4 Clear, Concise, and Evolving </li>
<font color="green"><li>2.5 Freedom of Action </li></font>
</ul>
</li>
<li>3 Requirements
<ul>
<li>3.1 <strike>Requirements and Guidelines</strike> <font color="green">[Reserved]</font> </li>
</ul>
</li>
<li>4 Project Structure and Organization
<ul>
<li>4.1 Committers </li>
<li>4.2 Code and Resources </li>
<li>4.3 Intellectual Property (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 Permanent Incubator Projects </li>
<font color="green"><li>4.10 Project Plans </li></font>
</ul>
</li>
<li>5 [Reserved] </li>
<li>6 Development Process
<ul>
<li>6.1 Mentors </li>
<li>6.2 Project Lifecycle <strike></li></strike>
<font color="green"><ul></font>
<li>6.2.1 Pre-proposal <font color="green">Phase</font> </li>
<li>6.2.2 Proposal <font color="green">Phase</font> </li>
<li>6.2.3 Incubation <font color="green">Phase</font> </li>
<li>6.2.4 Mature <font color="green">Phase</font> </li>
<li>6.2.5 [Reserved] </li>
<li>6.2.6 Archived </li>
<font color="green"></ul>
</li></font>
<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 [Reserved] </li>
<li>6.3.5 [Reserved] </li>
<li>6.3.6 Termination Review </li>
<li>6.3.7 [Reserved] </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>
<font color="green"><blockquote></font> <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> <font color="green"></blockquote></font>
<p>This document has the following 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>
<li> <em>Development Process </em> outlines the lifecycle and processes
required of all Eclipse projects. </li>
</ul>
<font color="green"><p>This document defines terms used elsewhere in Eclipse governance
documents including the Bylaws, Membership Agreement, and IP
Policy. </p></font>
<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>
<strike><li>Open</strike>
<font color="green"><li> <b>Open </b></font> - 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>
<strike><li>Transparent</strike>
<font color="green"><li> <b>Transparent </b></font> - Project discussions, minutes, deliberations,
project plans, plans for new features, and other artifacts are open,
public, and easily accessible. </li>
<strike><li>Meritocracy</strike>
<font color="green"><li> <b>Meritocracy </b></font> - 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 <strike>tools,</strike> <font color="green">applications,</font> 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 <strike>platform quality</strike> <font color="green">high-quality</font> frameworks capable of supporting the building
of commercial grade products on top of them; and </li>
<li>ship extensible, exemplary <strike>tools</strike> <font color="green">applications</font> which help enable a broad
community of <strike>users</strike> <font color="green">users.</font> </li>
</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>
<h4>2.3.1 Contributors and Committers </h4>
<p>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. </p>
<h4>2.3.2 Users </h4>
<p>An active and engaged user community is proof-positive that the
project's exemplary <strike>tools</strike> <font color="green">applications</font> 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. </p>
<h4>2.3.3 Adopters </h4>
<p>An active and engaged <strike>adopter/plug-in developer</strike> <font color="green">adopter</font> community is the only way to prove
that an Eclipse project is providing extensible frameworks and <strike>extensible tools</strike>
<font color="green">applications</font> 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. </p>
<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 <strike>tools</strike> <font color="green">applications</font>
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, <strike>tools,</strike> <font color="green">applications,</font> 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>
<strike><h2>3. Requirements </h2>
<p>This document and any additional criteria as established by the EMO
contains requirements, recommendations, and suggestions. </p>
<p>Required - Certain responsibilities and behaviors</strike>
<font color="green"><h3>2.5 Freedom of Action </h3>
<p>Projects</font> are required <strike>of
participants</strike> <font color="green">to engage</font> in <strike>Eclipse open source projects. Projects</strike> <font color="green">practices</font> that <strike>fail to
perform the required behaviors will be terminated by</strike> <font color="green">ensure</font> the <strike>EMO. In
keeping with</strike>
<font color="green">continued viability of</font> the <strike>guiding principles,</strike> <font color="green">project, independent from</font> the <strike>number</strike> <font color="green">continued
availability</font> of <strike>requirements must be
kept to an absolute minimum. </p>
<p>Guideline - Other responsibilities</strike> <font color="green">external resources</font> and <strike>behaviors are recommended
best practices. Collectively, we have learned that</strike> <font color="green">services, or continued
participation on any single individual, organization, or group. </p>
<p>In practical terms,</font> projects are <strike>more
likely</strike> <font color="green">required</font> to <strike>be successful if the team members</strike> <font color="green">use resources</font> and <strike>leaders follow these
recommendations. Projects are strongly encouraged to follow these
recommendations, but will not be penalized</strike>
<font color="green">services approved</font> by <font color="green">the Eclipse Foundation.</font> This <strike>process if they do
not.</strike> <font color="green">includes (but is not
limited to) all source code management, distribution channels for
artifacts, issue tracking, documentation, and public communication
channels.</font> </p>
<strike><h3>3.1</strike>
<font color="green"><h2>3.</font> Requirements <strike>and Guidelines </h3></strike> <font color="green"></h2></font>
<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 <strike>Eclipse project</strike> development guidelines to advance the creation, evolution,
promotion, and support of the <strike>Eclipse Platform</strike> <font color="green">open source projects;</font> and to cultivate
both <strike>an open source</strike> <font color="green">a</font> community and an ecosystem of complementary products and
services. </p>
<font color="green"><p>Projects that fail to perform the required behaviors will be
terminated by the EMO. </p></font>
<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>
<font color="green"><h3>3.1 [Reserved] </h3></font>
<h2>4. Project Structure and Organization </h2>
<p>A project 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, "top-level" projects, 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 project 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 "subproject". The term
project refers to either a top-level project or a subproject. </p>
<p>The descendants of a project are the project itself and transitive
closure of its child projects. The top parent 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>intellectual property (IP) records; and </li>
<li>community awareness </li>
</ul>
<p>As defined by Bylaws of Eclipse Foundation - Article VII, the
"Eclipse Management Organization" (EMO) consists of the Eclipse
Foundation staff and the councils. The term EMO(ED), 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
subprojects 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 subprojects. </p>
<p>The committers of a project have the exclusive right to elect new
committers to their project; no other group, including a parent
project, can force a project to accept a new committer. </p>
<p>There is no roll-up of committers: the set of committers on a
project is exactly that set of people who have been explicitly elected
into that role for the project (i.e. being a committer on a subproject
does not give you any automatic rights on the "parent" project or any
child 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
subprojects. Each of these subprojects has its own distinct set of
committers and resources. </p>
<font color="green"><img src=
"/projects/dev_process/images/subprojects-resources-291x300.png"></font>
<h3>4.2 Code and Resources </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 subprojects. Similarly,
a project might opt to provide a consolidated website, build and/or
download site for its subprojects (the subprojects would then not
require those resources for themselves). </p>
<p>Namespaces are assigned to a project by the EMO. All project source
code must be organized in the assigned namespaces and projects can only
release code under their own namespace (that is, they cannot infringe
on another Eclipse project's namespace). Projects should work with
their PMCs and the EMO to request exceptions to this rule, and with
their mentors and PMC if there are questions regarding the use of the
namespace. </p>
<h3>4.3 Intellectual Property (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, and
design discussions. </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 Charter which describes the purpose,
scope, 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 of directors approves the charter
of each top-level project. </p>
<p>Subprojects do not have separate charters; subprojects operate under
the charter of their parent top-Level project. </p>
<p>All projects have a defined scope 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 subproject is defined by the initial project proposal
as reviewed and approved by the Project Management Committee (PMC) (as
further defined below) of the 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 subprojects (if any) conform to the
Eclipse Foundation IP policy and procedures. </li>
</ul>
<p>The leadership chain for a project is composed of the project's
project lead(s), the leadership of the parent project (if any), the PMC
leads and PMC members for the top-level project, the EMO, and the
EMO(ED). </p>
<p>In exceptional situations&mdash;such as projects with zero active
committers, disruptive committers, or no effective project
leads&mdash;the project leadership chain has the authority to make
changes (add, remove) to the set of committers and/or project leads of
that project, and otherwise act on behalf of the project lead. </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 of directors; PMC members are
elected by the existing PMC leads and members, and approved by the
EMO(ED). </p>
<strike><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</strike>
<font color="green"><p>In</font> the <strike>Eclipse Development Process, and</strike> <font color="green">unlikely event</font> that <font color="green">a member of</font> the <strike>project is
engaging in</strike> <font color="green">PMC 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 PMC members,
subject to approval by the EMO. Removal of a PMC Lead requires approval
of the Board. </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</font> the right sorts of activities to develop vibrant
communities of users, adopters, and contributors. The initial project
leads are 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 project lead becomes disruptive to the
process or ceases to contribute for an extended period, the individual
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>
<h3>4.7 Committers and Contributors </h3>
<p>Each project has a development team, led by the project leaders. The
development team is composed of committers and contributors.
Contributors are individuals who contribute code, fixes, tests,
documentation, or other work that is part of the project. Committers
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>
<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 leads 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 leads. Unless
otherwise specified, "an extended period" is defined as "no activity
for more than six months". </p>
<p>Active participation in the user communication channels 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 communication
channels. </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. 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 or member, 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 councils defined in the bylaws, section VII are comprised of
strategic members and PMC representatives. The councils help guide the
projects as follows: </p>
<ul>
<li>The Planning Council is responsible for establishing a <font color="green">Platform
Release Plan in the form of a</font> coordinated simultaneous release (a.k.a,
"the release train"). The Planning Council is further 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>The Architecture Council is responsible for (i) monitoring,
guiding, and influencing the software architectures used by projects,
(ii) new project mentoring, and (iii) maintaining and revising the
Eclipse Development Process. 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 <strike>terms.</strike> <font color="green">terms; renewal is based on continued participation
in mentoring or other council business.</font> </li>
</ul>
<h3>4.9 Permanent Incubator Projects </h3>
<p>A project may designate a subproject as a "permanent incubator". A
permanent incubator is a project that is intended to perpetually remain
in the incubation phase. Permanent 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>Permanent incubator projects never have releases; they cannot
participate in the annual simultaneous release. Permanent 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. Permanent incubators do not
graduate. </p>
<p>The scope of a permanent incubator project must fall within the
scope of its parent project. The committer group of the permanent
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). Permanent incubator projects do not require Architecture
Council mentors (the parent project's committers are responsible for
ensuring that the incubator project conforms to the rules set forth by
the Eclipse Development Process). </p>
<p>A permanent incubator project must be 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
a permanent incubator. Permanent incubator projects are created upon
request; a creation review is not required. </p>
<font color="green"><h3>4.10 Project Plans </h3>
<p>Projects are required to make a project plan available to their
community at the beginning of the development cycle for each major and
minor release. The plan may be as simple as a short description and a
list of issues, or more detailed and complex. Subprojects may opt to
include their plans with those of their parent project. </p>
<p>Project Plans must be delivered to the community through
communication channels approved by the EMO. The exact nature of the
project plan varies depending on numerous variables, including the size
and expectations of the communities, and requirements specified by the
PMC. </p></font>
<h2>5. [Reserved] </h2>
<h2>6. Development Process </h2>
<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. Further, projects must
fit within the scope defined by their containing projects and the scope
defined in the charter of their top-level project. </p>
<p>Projects must provide advanced notification of upcoming features <strike>and
frameworks</strike> via
their project plan. </p>
<h3>6.1 Mentors </h3>
<p>New project proposals are required to have at least <strike>two mentors.</strike> <font color="green">one mentor.</font>
Mentors must be members of the Architecture Council. The mentors must
be listed in the proposal. Mentors are required to monitor and advise
the new project during its incubation phase; they are released from
that duty once the project graduates to the mature phase. </p>
<h3>6.2 Project Lifecycle </h3>
<font color="green"><img src=
"/projects/dev_process/development_process_2014/images/lifecycle.png"
align="right"></font>
<p>Projects go through distinct phases. The transitions from phase to
phase are open and transparent public reviews. </p>
<h4>6.2.1 Pre-proposal <font color="green">Phase</font> </h4>
<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>
<p>The pre-proposal phase ends when the proposal is published by EMO
and announced to the membership by the EMO. </p>
<h4>6.2.2 Proposal <font color="green">Phase</font> </h4>
<p>The proposers, in conjunction with the destination PMC and the
community, collaborate in public to enhance, refine, and clarify the
proposal. Mentors for the project must be identified during this
phase. </p>
<p>The proposal phase ends with a creation review, or withdrawal. The
proposal may be withdrawn by the proposers at any point before the
start of a creation review. The EMO will withdraw a proposal that has
been inactive for more than six months. </p>
<h4>6.2.3 Incubation <font color="green">Phase</font> </h4>
<p>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>A project in the incubation phase can (and should) make
releases; </li>
<li>Top-level projects skip incubation and are immediately put into the
mature phase; </li>
<li>The incubation phase ends with a graduation review or a termination
review. </li>
<li>Designated permanent incubator projects remain perpetually in the
incubation phase; they do not create releases, so 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>
<p>Only projects that are properly identified as being in the
incubation phase (including designated permanent incubator projects)
may use the Parallel IP Process to reduce IP clearance process for new
contributions. </p>
<h4>6.2.4 Mature <font color="green">Phase</font> </h4>
<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>
<h4>6.2.5 [Reserved] </h4>
<h4>6.2.6 Archived </h4>
<p>Projects that become inactive, either through dwindling resources or
by reaching their natural conclusion, are archived. Projects <strike>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</strike> are moved
to archived status through a termination review. </p>
<p>If there is sufficient community interest in reactivating an
archived project, the project can start again with a creation review.
As there must be good reasons to have terminated a project, the
creation review provides a sufficiently high bar to prove that those
reasons are no longer valid. </p>
<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 <strike>(e.g., mailing lists or RSS feeds)</strike> not be surprised by the post-facto actions
of the projects. </p>
<strike><p>For each review, the project leads prepare documentation for, and
receive feedback from,</strike>
<font color="green"><p>Projects are responsible for initiating</font> the <strike>Eclipse membership. </p>
<p>A review</strike> <font color="green">appropriate reviews. If
it</font> is <strike>a fairly comprehensive process. Gathering</strike> <font color="green">determined to be necessary,</font> the <strike>material
for</strike> <font color="green">project leadership chain (e.g.
the PMC or EMO) may initiate</font> a review <strike>and preparing</strike> <font color="green">on</font> the <strike>documentation 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.</strike> <font color="green">project's behalf.</font> </p>
<p>All reviews have the same general process: </p>
<ol>
<strike><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 a project lead requesting that the
EMO(ED) schedule the review. </li>
<li>Prior to the start of the review period, a project lead provides
the EMO with review documentation.
<ul></strike>
<li>The <strike>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 review documentation must be available in a format that anyone
in the Eclipse membership can review. PDF and HTML are acceptable
single formats. </li>
<li>The review documentation must have a correct copyright statement
and license. </li>
<li>The review documentation 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 an Eclipse Foundation website. Such guidelines will include, but
are not limited to the following: </p>
<ol>
<li>Clear evidence that the</strike> project <strike>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</strike> <font color="green">team will complete</font> all required due diligence under the
Eclipse IP <strike>Policy. </li>
<li>For graduation and release reviews,</strike> <font color="green">Policy prior to initiating</font> the <font color="green">review. </li>
<li>A</font> project <strike>must have a current</strike> <font color="green">representative (project lead or committer) assembles
review documentation. </li>
<li>A</font> project <strike>plan, in the format specified by</strike> <font color="green">representative presents</font> the <strike>EMO, available</strike> <font color="green">review documentation</font> to the
<strike>community. </li>
<li>Balanced progress in creating both frameworks and extensible,
exemplary tools. </li>
<li>Showcase the</strike>
project's <strike>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</strike> <font color="green">PMC along</font> with <strike>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:</strike> a
<strike>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</strike> <font color="green">request to proceed</font> with the review
<strike>period. Thus the election</strike> and <font color="green">for
approval of</font> the <strike>review will end at</strike> <font color="green">corresponding documentation. </li>
<li>Upon receiving approval from</font> the <strike>same time,
allowing quick</strike> <font color="green">PMC, a project representative
makes a request to the EMO to schedule the review. </li>
<li>The EMO announces the review schedule</font> and <strike>efficient provisioning of</strike> <font color="green">makes</font> the <strike>resulting
project.</strike> <font color="green">documentation
available to the membership-at-large.</font> </li>
<li>The <strike>EMO(ED)</strike> <font color="green">EMO</font> 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>
<strike><li>The</strike>
<font color="green"></ol>
<p>The review documentation requirements, and criteria for the
successful completion of each type of review will be documented by the
EMO. PMCs may establish additional success criteria. </p>
<p>The review period is open for no less than one week and usually no
more than two weeks of generally accepted business days. The</font> review
ends with the announcement of the results in the defined review
communication <strike>channel (the EMO(ED) will request that the project
lead make this announcement). </li>
</ol></strike> <font color="green">channel. </p></font>
<p>If any member believes that the EMO has acted incorrectly in
approving or failing a review may appeal to the board of directors to
review the EMO's decision. </p>
<h4>6.3.1 Creation Review </h4>
<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>
<p>The purpose of the graduation review is to mark a project's change
from the incubation phase to the mature phase. </p>
<p>The graduation review confirms 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>A graduation review is generally combined with a release review. </p>
<h4>6.3.3 Release Review </h4>
<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 [Reserved] </h4>
<h4>6.3.5 [Reserved] </h4>
<h4>6.3.6 Termination Review </h4>
<p>The purpose of a termination review is to provide a final
opportunity for the committers and/or Eclipse membership to discuss the
proposed archiving of a Project. The desired outcome is to find
sufficient evidence of renewed interest and resources in keeping the
project active. </p>
<h4>6.3.7 [Reserved] </h4>
<h4>6.3.8 Restructuring Review </h4>
<p>The purpose of a restructuring review is to notify the community of
significant changes to one or more projects. Examples of "significant
changes" include: </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. </li>
<li>Change of project scope. </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>Any project, with exception of permanent incubators, may make a
release. A release may include the code from any subset of the
project's descendants. </p>
<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>
<p>Releases for projects in the incubation phase must be labeled to
indicate the incubation status of the project. </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 of
directors. 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>Out of scope. It is alleged that a project is exceeding its
approved scope. </li>
<li>Dysfunctional. It is alleged that a project is not functioning
correctly or is in violation of one or more requirements of the Eclipse
Development Process. </li>
<li>Contributor appeal. It is alleged that a contributor who desires to
be a committer is not being treated fairly. </li>
<li>Invalid veto. 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 of
directors-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 of
directors. </p>
<p>Due to the continued evolution of the Eclipse technology, the
Eclipse community, and the software marketplace, it is expected that
the Eclipse 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 2.7 </h4>
<p>This document was approved by the Eclipse Foundation Board of
Directors in its meeting on [TBD]. It takes effect (replacing all
previous versions) on [TBD]. </p>
<h4>8.2 History </h4>
<p>Changes made in this document: </p>
<ul>
<li>(Bug <strike>344041) Yearly reviews are no longer required </li>
<li>(Bug 367235) Confusing language regarding termination</strike> <font color="green">376001) Make the process</font> of <font color="green">retiring/removing</font> project
<strike>lead role </li>
<li>(Bug 368196) A graduation review is generally combined with a
release review </li>
<li>(Bug 415626) Restructuring review section too verbose</strike> <font color="green">members
explicit</font> </li>
<li>(Bug <strike>415629) Permanent Incubator Projects do not require a creation</strike> <font color="green">415620) Streamline</font> review <font color="green">requirements</font> </li>
<li>(Bug <strike>415636) Ensure that social coding is adequately addressed by</strike> <font color="green">416185) Rewrite</font> the <strike>EDP </li>
<li>(Bug 415696) Move paragraph concerning releases from</strike> section <strike>4.2 to
section 6.4 </li>
<li>(Bug 415714) Remove reference to "Bugzilla" </li>
<li>(Bug 415715) Fix capitalization </li>
<li>(Bug 416636) "Top-Level" is not a phase </li>
<li>(Bug 417883) Termination reviews not required for proposals </li>
<li>(Bug 418346) Reduce redundancy in 2.3 "Three Communities" </li>
<li>(Bug 418468) Rename Incubators</strike> <font color="green">on requirements</font> to <strike>"Permanent Incubators" </li>
<li>(Bug 419717) Complete section 8.2 "History"</strike> <font color="green">be more clear
and succinct</font> </li>
<li>(Bug <strike>419721) Confusing use</strike> <font color="green">418208) Appointed members</font> of <strike>"project leadership" vs. "project
lead"</strike> <font color="green">the Architecture Council are
appointed to two year renewable terms</font> </li>
<li>(Bug <strike>419724)</strike> <font color="green">471367)</font> Include <strike>the EMO(ED)</strike> <font color="green">"Freedom of Action" requirement</font> in the <strike>project leadership
chain</strike>
<font color="green">EDP</font> </li>
<li>(Bug <strike>325004) Eliminate Continuation, Promotion, and Move
Reviews</strike> <font color="green">477238) Generalize the expected output of projects</font> </li>
<li>(Bug <strike>331397) EDP should say more about project namespaces</strike> <font color="green">480526) Include definitions of terms required by other legal
documents</font> </li>
<li>(Bug <strike>345755) Eliminate the pre-1.0 versioning requirement</strike> <font color="green">463850) Only one mentor required</font> for <font color="green">an</font> incubating <strike>projects</strike>
<font color="green">project</font> </li>
</ul>
</body>
</html>