-
Notifications
You must be signed in to change notification settings - Fork 48
/
eclipse-charter.php
297 lines (293 loc) · 17.7 KB
/
eclipse-charter.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
<?php require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/app.class.php"); require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/nav.class.php"); require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/menu.class.php"); $App = new App(); $Nav = new Nav(); $Menu = new Menu(); include($App->getProjectCommon()); # All on the same line to unclutter the user's desktop'
#
# Begin: page-specific settings. Change these.
$pageTitle = "Eclipse Platform Overview";
$pageKeywords = "Eclipse, Platform, JDT, PDE, Equinox";
$pageAuthor = "Platform team";
# Add page-specific Nav bars here
# Format is Link text, link URL (can be http://www.someothersite.com/), target (_self, _blank), level (1, 2 or 3)
# $Nav->addNavSeparator("My Page Links", "downloads.php");
# $Nav->addCustomNav("My Link", "mypage.php", "_self", 3);
# $Nav->addCustomNav("Google", "http://www.google.com/", "_blank", 3);
# End: page-specific settings
# Paste your HTML content between the markers!
ob_start();
?>
<div id="midcolumn">
<h1><?= $pageTitle ?></h1>
<h2>Overview</h2>
The Eclipse Top Level Project (the "Eclipse Project") is an open source
software development project dedicated to providing a robust, full-featured, commercial-quality,
and freely available industry platform for the development of highly
integrated tools. This document describes the mission, scope, and
organization of this Top Level Project and its constituent Projects, and
roles and responsibilities of the participants.
</p>
<h2>Mission</h2>
<p>
The Eclipse Project provides a kind of universal tool platform - an open extensible IDE for
anything and yet nothing in particular. The real value comes from tool
plug-ins that "teach" the platform how to work with things - java files,
web content, graphics, video - almost anything one can imagine. Eclipse
allows tool builders to independently develop tools that integrate with other
people's tools so seamlessly you can't tell where one tool ends and another
starts.</p>
<p>The success of the platform depends on how well it enables a wide range of tool
builders to build best of breed integrated tools. But the real vision of
an industry platform is only realized if these tools from
different tool builders can be combined together by users to suit their unique
requirements, in ways that the tool builders never even imagined. </p>
<p>The mission of the Eclipse Project is to adapt and evolve the Eclipse
technology to meet the needs of the Eclipse tool building community and its
users, so that the vision of an industry tooling platform is realized.</p>
<h2>Scope</h2>
The Eclipse Project encompasses two principle areas of work:
<ol>
<li><b>Tool integration platforms.</b> Developing the core frameworks
and technologies upon which others can build software development tools of all kinds.</li>
<li><b>The tools required to build and extend these platforms.</b> Creating
the tools that the Eclipse project committers need in order to build the tool integration
platforms, and the tools the community needs to extend and adopt the platforms.</li>
</ol>
This secondary tool creation goal has a number of important objectives. First, it provides
an initial "customer" for the platform, to ensure the requirements of real
development tools are met by the platform. Second, it encourages community adoption
of the platform. The easier it is for the community to adopt and extend the platform,
the more successful the project will be. Finally, it allows the project contributors
to continuously "self host" on the tool platform as it is being built. This
creates a tight feedback loop that ensure the platform is robust, and meets the
needs of real tool users.
</p>
<h2>Project Management Committee</h2><a name="PMC"></a>
The Projects under this Charter are managed by a group known as the Project
Management Committee (the "PMC").</p>
<p>PMCs are expected to ensure that:</p>
<p>All Projects operate effectively by providing
leadership to guide the Project's overall direction and by removing
obstacles, solving problems, and resolving conflicts.</p>
<p>All Project plans, technical documents and reports are publicly available</p>
<p>All Projects operate using open source rules of
engagement: meritocracy, transparency, and open participation.
These principles work together. Anyone can participate in a
Project. This open interaction,
from answering questions to reporting bugs to making code contributions to
creating designs, enables everyone to recognize and utilize the contributions.</p>
<p>The PMC has the following responsibilities:</p>
<ul>
<li>Providing the leadership and vision to guide the Project's overall direction
and architecture.</li>
<li>Providing assistance and
support to the developers and researchers working on the Project by
removing obstacles, solving problems, and resolving conflicts.</li>
<li>Ensuring that Project plans
are produced.</li>
<li>Working with the Eclipse
Management Organization (the "EMO") to establish the development
processes and infrastructure needed for the development team to be
effective.</li>
<li>Recommending new Projects to the EMO.</li>
<li>Recommending the initial set
of Project committers for each new Project overseen by the PMC, and
establishing the procedures consistent with this Charter for voting in
new committers.</li>
<li>Helping to ensure that the
Projects overseen by the PMC have enough contributors, and working to
fill vacancies in roles.</li>
<li>Producing "how to get
involved" guidelines to help new potential contributors get started.</li>
<li>Coordinating relationships
with other Eclipse Foundation Projects.</li>
<li>Facilitating code or other
donations by individuals or companies.</li>
<li>Making recommendations to the
Eclipse Foundation Board regarding contributions proposed under licenses
other than the EPL.</li>
<li>Working with the EMO and
Committers to ensure in-bound contributions are made in accordance with
the Eclipse Foundation IP Policy.</li>
<li>Acting as a focal point for
the community in representing the Projects it oversees.</li>
</ul>
<p>The PMC Lead is appointed by the Board. The initial PMC is selected by the
PMC Lead. Thereafter, to become a member of the PMC, an individual must be
nominated by another member of the PMC, and unanimously approved by all PMC
members.</p>
<p>In the unlikely event that a member of the PMC becomes disruptive to the
process or ceases to contribute for an extended period, the member may be
removed by unanimous vote of remaining PMC members.
PMC members may resign at any time by delivering notice of
their resignation to the PMC Lead.</p>
<p>The PMC is responsible for producing and maintaining the Project Charter.
Development must conform to any rules or processes outlined in the Charter,
so a change to the development process may necessitate a change to the
Charter. Changes to the Charter
are approved by the Board.</p>
<p>The work of the PMC is shared by the PMC members. All PMC members are
expected to contribute actively. In particular, PMC members are expected to
take responsibility for overseeing certain areas of work in the Project, and
reporting to the PMC on these areas.</p>
<p>Active participation in the user forums and the appropriate developer
mailing lists is a responsibility of all PMC members, and is critical to the
success of the Project. PMC members are required to monitor the main Project
mailing list, and the developer mailing lists for all Projects and components
they are overseeing.</p>
<h2>Roles</h2>
<p>The Projects under this Charter are operated as meritocracies -- the more you
contribute, and the higher the quality of your contribution, the more you are
allowed to do. However with this comes increased responsibility.</p>
<h2>Users</h2>
<p>Users are the people who use the products that the Project produces. People
in this role aren't contributing code, but they are using the products,
reporting bugs, and making feature requests and suggestions. Users are
encouraged to participate through the user forum(s), asking questions,
providing suggestions, and helping other users. Users are also encouraged to
report problem reports using the bug tracking system. </p>
<h2>Developers</h2>
<p>Users who contribute code or documentation become developers. Developers are
the people who contribute code, fixes, documentation, or other work that goes
into the product. Developers are also encouraged to participate in the user
forum(s), and should monitor the developer mailing list associated with
their area of contribution. When appropriate, developers may also contribute
to development design discussions related to their area of contribution.
Developers are expected to be proactive in reporting problems in the bug tracking
system.</p>
<h2>Committers</h2>
<p>Developers who give frequent and valuable contributions to a Project, or
component of a Project (in the case of large Projects), can have their status
promoted to that of a "Committer" for that Project or component
respectively. A Committer has write access to the source code repository for
the associated Project (or component), and gains voting rights allowing them
to affect the future of the Project (or component).</p>
<p>In order for a Developer to become a Committer on a particular Project
overseen by the PMC, another Committer for the same Project (or component as
appropriate) can nominate that Developer or the Developer can ask to be
nominated. Once a Developer is nominated, the Committers for the Project (or
component) will vote. If there are at least 3 positive votes and no negative
votes, the Developer is recommended to the PMC for commit privileges. If the
PMC also approves, the Developer is converted into a Committer and given
write access to the source code repository for that Project (or component).
Becoming a Committer is a privilege that is earned by contributing and
showing discipline and good judgement. It is a responsibility that should be
neither given nor taken lightly.</p>
<p>At times, Committers may go inactive for a variety of reasons. The
decision making process of the Project relies on active committers who
respond to discussions and votes in a constructive and timely manner. The PMC
is responsible for ensuring the smooth operation of the Project. A Committer
that is disruptive, does not participate actively, or has been inactive for
an extended period may have his or her commit status removed by the PMC.</p>
<p>Active participation in the user forums 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.</p>
<p>Committers are required to monitor the developer mailing list associated
with all Projects and components for which they have commit privileges. This
is a condition of being granted commit rights to the Project or component. It
is mandatory because committers must participate in votes (which in some
cases require a certain minimum number of votes) and must respond to the
mailing list in a timely fashion in order to facilitate the smooth operation
of the Project. When a Committer is granted commit rights they will be added
to the appropriate mailing lists. A Committer must not be unsubscribed from a
developer mailing list unless their associated commit privileges are also
removed.</p>
<p>Committers are required to track, participate in, and vote on, relevant
discussions in their associated 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>
<h2>Projects</h2>
<p>The work under this Top Level Project is further organized into Projects. New
Projects must be significant works consistent with the mission of the Top
Level Project, be recommended by the PMC, and confirmed by the EMO. Projects
can be discontinued by decision of the Board.</p>
<p>When a new Project is created, the PMC nominates a Project lead to act as
the technical leader and nominates the initial set of Committers for the
Project, and these nominations are approved by the EMO. Project leads are accountable to the
PMC for the success of their Project.</p>
<h2>Project Components</h2>
<p>The PMC may decide to divide a Project further into components. If a Project
is divided into components, commit privileges are normally granted at the
component level, and the committers for a given component vote on issues
specific to that component. Components are established and discontinued by
the PMC. When the PMC creates a component it appoints a component lead to act
as the technical leader and names the initial set of Committers for the
component. The component lead is designated as a committer for the Project
and represents the component in discussions and votes pertaining to the
Project as a whole. Component Committers do not participate in votes at the
level of the Project as a whole, unless they are also the component lead.</p>
<h2>Infrastructure</h2>
<p>The PMC works with the EMO to ensure the required infrastructure for the
Project. The Project
infrastructure will include, at minimum:</p>
<ul>
<li>Bug Database - Bugzilla
database for tracking bugs and feature requests.</li>
<li>Source Repository -- One or
more source code repositories containing both the master source code and
documentation for the Projects.</li>
<li>Website - A website will
contain information about the Project, including documentation,
downloads of releases, and this Charter.</li>
<li>General Mailing List -
Mailing list for development discussions pertaining to the Project as a
whole or that cross Projects. This mailing list is open to the public.</li>
<li>Project Mailing Lists -
Development mailing list for technical discussions related to the
Project. This mailing list is open to the public.</li>
<li>Component Mailing Lists --
Development mailing list for technical discussions related to the
component. This mailing list is open to the public.</li>
</ul>
<h2>The Development Process</h2>
<p>Each Project lead must produce a development plan for the release cycle, and
the development plan must be approved by the PMC and by a majority of
Committers of the Project.</p>
<p>Each Project must identify, and make available on its web site, the
requirements and prioritizations it is working against in the current release
cycle. In addition, each Project must post a release plan showing the date
and content of the next major release, including any major milestones, and
must keep this plan up to date.</p>
<p>The Committers of a Project or component decide which changes may be
committed to the master code base of a Project or component respectively.
Three +1 ('yes' votes) with no -1 ('no' votes or vetoes) are needed to
approve a code change. Vetoes must be followed by an explanation for the veto
within 24 hours or the veto becomes invalid. All votes are conducted via the
developer mailing list associated with the Project or component.</p>
<p>Special rules may be established by the PMC for Projects or components
with fewer than three Committers. For efficiency, some code changes from some
contributors (e.g. feature additions, bug fixes) may be approved in advance,
or approved in principle based on an outline of the work, in which case they
may be committed first and changed as needed, with conflicts resolved by
majority vote of the Committers of the Project or component, as applicable.
More restrictive rules for releasing changes may be established by the PMC
near the end of release cycles or for maintenance streams.</p>
<p>The master copy of the code base must reside on the Project web site where
it is accessible to all users, developers and committers. Committers must
check their changes and new work into the master code base as promptly as
possible (subject to any check-in voting rules that may be in effect) in
order to foster collaboration among widely distributed groups and so that the
latest work is always available to everyone. The PMC is responsible for
working with the Eclipse Foundation to establish a release engineering and
build process to ensure that builds can be reliably produced on a regular and
frequent basis from the master code base and made available for download from
the Project web site.</p>
<p>The PMC is responsible for establishing the level of testing appropriate
for each Project, and approving the test plans.</p>
<p>All development technical discussions are conducted using the development
mailing lists. If discussions are held offline, then a summary must be posted
to the mailing list to keep the other committers informed.</p>
<h2>Licensing</h2>
<p>All contributions to Projects under this Charter must adhere to the Eclipse
Foundation Intellectual Property Policy.</p>
</td>
</tr>
</table>
</div>
<?php
$html = ob_get_contents();
ob_end_clean();
# Generate the web page
$App->generatePage($theme, $Menu, $Nav, $pageAuthor, $pageKeywords, $pageTitle, $html);
?>