blob: c760c6176c402355cb4c292ebed96a1468d5a0c4 [file] [log] [blame]
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link rel="stylesheet" href="../default_style.css" type="text/css">
<title>Eclipse Web Tools Platform Project Charter</title>
<style type="text/css">
#dhtmltooltip{
position: absolute;
width: 150px;
border: 2px solid black;
padding: 2px;
background-color: lightyellow;
visibility: hidden;
z-index: 100;
/*Remove below line to remove shadow. Below line should always appear last within this CSS*/
filter: progid:DXImageTransform.Microsoft.Shadow(color=gray,direction=135);
}
</style>
</head>
<body text="#000000" bgcolor="#ffffff" link="#0000ee" vlink="#551a8b" alink="#ff0000">
<div id="dhtmltooltip"></div>
<script type="text/javascript">
/***********************************************
* Cool DHTML tooltip script- © Dynamic Drive DHTML code library (www.dynamicdrive.com)
* This notice MUST stay intact for legal use
* Visit Dynamic Drive at http://www.dynamicdrive.com/ for full source code
***********************************************/
var offsetxpoint=-60 //Customize x offset of tooltip
var offsetypoint=20 //Customize y offset of tooltip
var ie=document.all
var ns6=document.getElementById && !document.all
var enabletip=false
if (ie||ns6)
var tipobj=document.all? document.all["dhtmltooltip"] : document.getElementById? document.getElementById("dhtmltooltip") : ""
function ietruebody(){
return (document.compatMode && document.compatMode!="BackCompat")? document.documentElement : document.body
}
function ddrivetip(thetext, thecolor, thewidth){
if (ns6||ie){
if (typeof thewidth!="undefined") tipobj.style.width=thewidth+"px"
if (typeof thecolor!="undefined" && thecolor!="") tipobj.style.backgroundColor=thecolor
tipobj.innerHTML=thetext
enabletip=true
return false
}
}
function positiontip(e){
if (enabletip){
var curX=(ns6)?e.pageX : event.x+ietruebody().scrollLeft;
var curY=(ns6)?e.pageY : event.y+ietruebody().scrollTop;
//Find out how close the mouse is to the corner of the window
var rightedge=ie&&!window.opera? ietruebody().clientWidth-event.clientX-offsetxpoint : window.innerWidth-e.clientX-offsetxpoint-20
var bottomedge=ie&&!window.opera? ietruebody().clientHeight-event.clientY-offsetypoint : window.innerHeight-e.clientY-offsetypoint-20
var leftedge=(offsetxpoint<0)? offsetxpoint*(-1) : -1000
//if the horizontal distance isn't enough to accomodate the width of the context menu
if (rightedge<tipobj.offsetWidth)
//move the horizontal position of the menu to the left by it's width
tipobj.style.left=ie? ietruebody().scrollLeft+event.clientX-tipobj.offsetWidth+"px" : window.pageXOffset+e.clientX-tipobj.offsetWidth+"px"
else if (curX<leftedge)
tipobj.style.left="5px"
else
//position the horizontal position of the menu where the mouse is positioned
tipobj.style.left=curX+offsetxpoint+"px"
//same concept with the vertical position
if (bottomedge<tipobj.offsetHeight)
tipobj.style.top=ie? ietruebody().scrollTop+event.clientY-tipobj.offsetHeight-offsetypoint+"px" : window.pageYOffset+e.clientY-tipobj.offsetHeight-offsetypoint+"px"
else
tipobj.style.top=curY+offsetypoint+"px"
tipobj.style.visibility="visible"
}
}
function hideddrivetip(){
if (ns6||ie){
enabletip=false
tipobj.style.visibility="hidden"
tipobj.style.left="-1000px"
tipobj.style.backgroundColor=''
tipobj.style.width=''
}
}
document.onmousemove=positiontip
</script>
<table BORDER=0 CELLSPACING=5 CELLPADDING=2 WIDTH="100%" >
<tr>
<td ALIGN=LEFT VALIGN=TOP COLSPAN="2" BGCOLOR="#0080C0"><b>
<font face="Arial,Helvetica" color="#FFFFFF">Eclipse Web Tools Platform
Project Charter - v1.7</font></b></td>
</tr>
<tr>
<td>
<b>Overview</b><br>
The Eclipse Web Tools Platform Top-Level Project is an open source
collaborative software development project dedicated to providing a generic,
extensible, standards-based tool platform for producing Web-centric
technologies.
<p>This document describes the composition and organization of the project,
roles and responsibilities of the participants, and development process for
the project. </p>
<p><b>Mission</b><br>
The mission of the Web Tools Platform Project is to build useful tools and a
generic, extensible, standards-based tool platform upon which software
providers can create specialized, differentiated offerings for producing
Web-enabled applications. </p>
<p><b>Scope</b><br>
The Web Tools Platform Project encompasses a common foundation of frameworks
and services for Web tooling products. The project scope also includes Web
tooling products themselves for exemplary purposes and/or to validate the
underlying platform.<br>
<img border="0" src="images/subprojects.gif" width="604" height="543"></p>
<p></p>
<p>The project will be further limited to providing infrastructure for
tooling proper, in contrast to infrastructure related to the application
run-time. We will typically use a simple litmus test to set the boundary
between tooling and run-time. Application artifacts, once developed, have no
execution dependencies on the relevant tooling framework, while the converse
would be true for run-time frameworks. In keeping with our objective of
maximizing vendor-neutrality, where multiple frameworks exist in the market
for a given functional domain, we will develop tooling based on a common
abstraction (or superset) to the extent feasible. </p>
<p>The ultimate objective of the project is to provide highly reusable and
extensible tooling that allows developers to produce applications with
increasing development efficiency. The tooling foundation the project will
deliver will support these values by enforcing appropriate separations of
concern in application architecture, raising the level of technical
abstraction in application development and enabling repeatability in
development processes. These values, however, will be achieved incrementally
over time. Early deliverables will focus on an extensible foundation
supporting the most widely used Web and Java standards and technologies. </p>
<p>In addition, we expect the Web Tools Platform Project to produce
functional requirements that are more appropriately satisfied through the
Eclipse Project or other Eclipse foundational projects. Areas in which we
might expect to see these elaborated requirements would be in working with
components, or supporting complex project layouts. In such case, the Web
Tools Platform Project PMC will coordinate the corresponding Project PMCs
the design and implementation of the corresponding contribution. </p>
<p>The project initially has two projects: Web Standard Tools and J2EE
Standard Tools. These two projects will focus on infrastructure for tools
used to build applications for standards-based Web and Java runtime
environments. Outside the scope of the project is support for
vendor-specific application architectures, such as ASP.Net and ColdFusion,
or for extensions not backed by the JCP, such as Apache Struts. Expanding
the project to include new projects covering these or other areas will
require a revision to this charter as per the Eclipse Development Process.
</p>
<p><i>Web Standard Tools</i><br>
The Web Standard Tools project aims to provide common infrastructure
available to any Eclipse-based development environment targeting multi-tier
Web-enabled applications. Within scope will be tools for the development of
three-tier (presentation, business and data logic) and server publication of
corresponding system artifacts. Outside of scope will be tools for Java
language or Web framework specific technology, which will be left to other
projects like the J2EE Standard Tools project. Tools provided will include
editors, validators and document generators for artifacts developed in a
wide range of standard languages (for example, HTML/XHMTL, Web services,
XQueries, SQL, etc.) Supporting infrastructure will likely comprise a
specialized workbench supporting actions such as publish, run, start and
stop of Web application code across target server environments. Web
artifacts will be first class citizens with respect to the capabilities that
Eclipse users expect. </p>
<p>The Web Standard Tools Project includes server tools which extend the
Eclipse platform with servers as first-class execution environments. Server
tools provide an extension point for generic servers to be added to the
workspace, and to be configured and controlled. For example, generic servers
may be assigned port numbers, and may be started and stopped. The Web
Standard Tools Project will define an extension for Web servers, which
builds on the generic server extension point, and will include exemplary
adapters for popular commercial and Open Source Web servers, e.g. the Apache
Web Server. Server vendors are encouraged to develop adapters for their Web
servers. The Web Standard Tool Project will also include a TCP/IP Monitor
server for debugging HTTP traffic, especially SOAP messages generated by Web
Services. The generic server extension point is intended to be used for
other types of server, for example J2EE application servers and databases,
but these are outside the scope of the Web Standard Tools project. </p>
<p><i>J2EE Standard Tools</i><br>
The initial scope of the J2EE Standard Tools project will be to provide a
basic Eclipse plug-in for developing applications based on standards-based
application servers, as well as a generic tooling infrastructure for other
Eclipse-based development products. Within scope will be a workbench
providing a framework for developing, deploying, testing and debugging J2EE
applications on JCP-compliant server environments, as well as an exemplary
implementation of a plug-in for at least one JSR-88 compliant J2EE Server.
Included will be a range of tools simplifying development with J2EE APIs
including EJB, Servlet, JSP, JCA, JDBC, JTA, JMS, JMX, JNDI, and Web
Services. This infrastructure will be architected for extensibility for
higher-level development constructs providing architectural separations of
concern and technical abstraction above the level of the J2EE specifications
</p>
<p>The J2EE Standard Tools Project will build on the Server Tools provided
by the Web Standard Tools Project to provide support for application
servers, including both servlet engines and EJB containers. The scope of the
J2EE Standard Tools Project includes exemplary adapters for popular
commercial and open source J2EE servers, e.g. Apache Tomcat, Apache
Geronimo, and ObjectWeb Jonas. Server vendors are encouraged to develop
adapters for their products. Support of frameworks not covered by the J2EE
specification (e.g., Struts, Hibernate, XMLC, JDO) are outside the scope of
this project, although such projects could find a home in an Eclipse
Technology project. </p>
<p>Although the scope of the Web and J2EE Standard Tools projects includes
the development of exemplary adapters for popular commercial and Open Source
servers, these are not necessarily intended to be the definitive adapters.
Instead, they are intended to serve two purposes. First, they are intended
to enable users to immediately use these servers, although possibly with not
exploiting all their features. Second, they are intended to serve as
examples to both commercial and Open Source developers who want to integrate
servers into Eclipse. It is consistent with the goals of this project that
the exemplary adapters become superseded by more complete implementations
provided by third parties, both commercial and open source.</p>
<p><b>Project Management</b></td>
</tr>
</table>
<table border=0 cellspacing=5 cellpadding=2 width="100%" >
<tr>
<td align=RIGHT valign=TOP height="22"><img src="../images/Adarrow.gif" width="16" height="16" border="0"></td>
<a name="pmc"></a><td height="22"><b>Project Management Committee</b><br>
The Projects under this Charter are managed by a group known as the Project
Management Committee (the “PMC”).<p>PMCs are expected to ensure that: </p>
<ul>
<li>All Projects operate effectively by providing leadership to guide the
Project’s overall direction and by removing obstacles, solving problems,
and resolving conflicts. </li>
<li>All Project plans, technical documents and reports are publicly
available </li>
<li>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. </li>
</ul>
<p>The PMC has the following responsibilities: </p>
<ul>
<li>Providing the leadership and vision to guide the Project's overall
direction in a manner consistent with the Eclipse Foundation Architectural
Roadmap. </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
<a href="http://www.eclipse.org/org/documents/epl-v10.html">EPL</a>. </li>
<li>Working with the EMO and Committers to ensure in-bound contributions
are made in accordance with the
<a href="http://www.eclipse.org/org/documents/Eclipse%20IP%20Policy2003_12_03%20Final.pdf">Eclipse Foundation IP Policy</a>. </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 newsgroups 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. </td>
</tr>
<tr>
<td align=RIGHT valign=TOP height="22"><img src="../images/Adarrow.gif" width="16" height="16" border="0"></td>
<td height="22"><b>Project Requirements Group</b><br>
The Requirements Group is formed at the discretion of the PMC. The
Requirements Group gathers requirements for the project and communicates
them to all members of the Project, including the PMC. The Requirements
Group will accomplish its objectives by working closely with the development
teams and the PMC. </td>
</tr>
<tr>
<td align=RIGHT valign=TOP height="22"><img src="../images/Adarrow.gif" width="16" height="16" border="0"></td>
<td height="22"><b>Project Architecture Group</b><br>
The Architecture Group is formed at the discretion of the PMC. The
Architecture Group is responsible for development, articulation and
maintenance of the Project Architecture, as well as for providing an
explicit description of the architecture and communicating this description
to all members of the Project, and for releasing it as part of the project
deliverables. The Architecture Group will accomplish its objectives by
working closely with the development teams and the PMC.</td>
</tr>
<tr>
<td align=RIGHT valign=TOP height="22"><img src="../images/Adarrow.gif" width="16" height="16" border="0"></td>
<td height="22"><b>Project Planning Group</b><br>
The Planning Group is formed at the discretion of the PMC. The Planning
Group assists the PMC in establishing the Project plan in conjunction with
available Project resources, coordinating relationships between Project
participants and with other Eclipse projects. The Planning Group helps to
ensure that projects have enough contributors, filling vacancies in roles
and facilitating code or other donations by individuals or companies. The
Planning Group will accomplish its objectives by working closely with the
development teams and the PMC. </td>
</tr>
</table>
<table BORDER=0 CELLSPACING=5 CELLPADDING=2 WIDTH="100%" >
<tr>
<td>
<p><b>Roles<br>
</b>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>
<p><i>Users<br>
</i>Users are the people who use the products that the Project produces.
People in this role aren't contributing code, but they are using the products,
reporting bugs, and making feature requests and suggestions. Users are
encouraged to participate through the user newsgroup(s), asking questions,
providing suggestions, and helping other users. Users are also encouraged to
report problem reports using the bug tracking system. </p>
<p><i>Developers <br>
</i>Users who contribute code or documentation become developers.
Developers are the people who contribute code, fixes, documentation, or other
work that goes into the product. Developers are also encouraged to participate
in the user newsgroup(s), and should monitor the developer mailing list
associated with their area of contribution. When appropriate, developers may
also contribute to development design discussions related to their area of
contribution. Developers are expected to be proactive in reporting problems in
the bug tracking system. </p>
<p><i>Committers <br>
</i>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 &quot;Committer&quot; 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 <a href="#"
onMouseover="ddrivetip('As per the Eclipse Board meeting of December 8, 2004, the WTP PMC interprets this to mean &quot;at least 3 positive and no negative votes within a given voting period&quot;.','yellow', 350);"
onMouseout="hideddrivetip()"> at least 3 positive votes and no negative
votes</a>, the Developer is recommended to the PMC for commit privileges. If the PMC
also approves and the Developer signs the
<a href="http://www.eclipse.org/org/documents/Eclipse%20MEMBERSHIP%20AGMT%202003_11_10%20Final.pdf">Committer Agreement</a> established by the EMO (wherein, at the very least, the Developer agrees to abide by the
<a href="http://www.eclipse.org/org/documents/Eclipse%20IP%20Policy2003_12_03%20Final.pdf">Eclipse Intellectual
Property Policy</a>), 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 judgment. It is a responsibility that should be neither given nor taken
lightly. </p>
<p>At times, Committers may go inactive for a variety of reasons. The decision
making process of the Project relies on active committers who respond to
discussions and votes in a constructive and timely manner. The PMC is
responsible for ensuring the smooth operation of the Project. A Committer that
is disruptive, does not participate actively, or has been inactive for an
extended period may have his or her commit status removed by the PMC. </p>
<p>Active participation in the user newsgroup and the appropriate developer
mailing lists is a responsibility of all Committers, and is critical to the
success of the Project. Committers are required to monitor and contribute to the
user newsgroup. </p>
<p>Committers are required to monitor the developer mailing list associated with
all 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>
<p><b>Development Process <br>
</b>Projects 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>
<p><b>Project Components <br>
</b>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>
<p><b>Coordinated Release Cycles<br>
</b>All projects and components under this Project
will have coordinated release plans, milestone dates, freeze cycles, builds, and
ship dates. These projects will be coordinated by a group consisting of the
project leads, the component leads from these projects, and the members of the PMC assisted by the members of the Planning Committee. </p>
<p><b>Infrastructure <br>
</b>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-like database for tracking bugs and feature
requests. </li>
<li>Source Repository – One or more CVS repositories containing both the
master source code and documentation for the projects. </li>
<li>Website – A Web site 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 and committer voting related to the project. These mailing
lists are open to the public. </li>
<li>Component Mailing Lists – Development mailing list for technical
discussions and committer voting related to the component. This mailing
list is open to the public. </li>
<li>Newsgroup – A newsgroup where users, developers, and committers can
interact regarding general questions and issues about the project. </li>
</ul>
<p><b>The Development Process <br>
</b>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. <a href="#"
onMouseover="ddrivetip('As per the Eclipse Board meeting of December 8, 2004, the WTP PMC interprets this to mean &quot;at least 3 positive and no negative votes within a given voting period&quot;.','yellow', 350);"
onMouseout="hideddrivetip()">Three
+1 ('yes' votes) with no -1 ('no' votes or vetoes)</a> 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>
<p><b>Licensing <br>
</b>All contributions to Projects under this Charter must adhere to the
Eclipse Foundation Intellectual Property Policy <br>
</p>
</td>
</tr>
</table>
</body>
</html>