Eclipse Test &
Performance Tools Platform (TPTP) Project v0.2 v1.1
v1.1 Edit Legend:
·
Proposed deletions to either align
with the standard charter where applicable or other modifications to clean up
areas not covered in the standard charter.
·
Proposed additions
to either align with the standard charter where applicable or other
modifications to clean up areas not covered in the standard charter.
·
Changes needed to
align with the standard charter which are not
resolved.
·
Indicate sections
corresponding to highlighted section heading that will be removed from TPTP
charter and referenced in Standard Charter
Example: “TPTP project charter 1.1 1.0” = “TPTP charter 1.1”
Summary of Changes:
Following sections retained in TPTP charter:
·
Overview, Mission,
Scope: Use TPTP abbreviation in place of “Eclipse Test & Performance Project”.
·
Requirements, Architecture, and Planning Groups: Changed
description of formation of *Gs from PMC Lead to PMC responsibility and removed
specific criteria for membership (leaving to PMC discretion and better
conforming to expectations for Committer groups).
Following sections removed from TPTP charter and referenced
via Standard Charter:
·
Project Management Committee (this section to be replaced with
Standard Charter): Polish and some subtle tweaks to PMC responsibilities which
are consistent with the current operation of the TPTP PMC. Requested change of Standard Charter reference
from “companies” to “organizations” as the former generally implies for-profit
entities which too narrowly describe potential project contributors. Requested change of Standard Charter awkward
wording of Board approval requirement for Charter changes. Replaced “subsystem” with “component”
throughout based on guidance from EMO.
·
Roles (this section to be replaced with Standard
Charter): Polish
·
Users (this section to be replaced with Standard
Charter): Clarification of Users definition – consistent with TPTP practice.
·
Developers (this section to be replaced with Standard
Charter): Polish.
·
Committers (this section to be replaced with Standard
Charter): Replaced “subsystem” with “component” throughout based on guidance
from EMO. Polish. Requested change of Standard Charter to waive
minimum voting period for cases where all Committers have responded in a
shorter timeframe. Correction to our
earlier erroneous omission stating no negative votes for Committer approval – although
not consistent as stated in TPTP charter, consistent with TPTP practice. Also, restated minimum votes required for small
components, but consistent with TPTP practice.
Eliminated explicit FYI that Committers may be asked to participate in
AG – no issue as PMC can set expectation beyond, but compliant with, TPTP
charter. Added explicit expectation for
Committers to vote on relevant project/component discussions. Removed voting rules for committing changes –
moved to Development Process section.
Requested Standard Charter change references from “commit status” to “Committer
status” (“commit” is ambiguous, just CVS commit status or Committer status
which also include voting rights).
·
Projects (this section to be replaced with Standard
Charter): Changed requirement for discontinuing Projects to recommendation by
PMC approved by EMO (vs. “decision of the Board”). Removed list of TPTP Projects to remove need
for Board oversight of changes to Projects.
·
Project Organization (this section to be replaced with
Standard Charter): Added provision for splitting/merging Projects with EMO
confirmation of PMC recommendation. Replaced
“subsystem” with “component” throughout based on guidance from EMO. Added clarity of possible Committer rights
changing when Projects split/merge.
Requested Standard Charter change to indicate Committer, vs. Developer,
rights may change when Projects split/merged.
·
Infrastructure (this section to be replaced with Standard
Charter): Changed expectation for providing project infrastructure from PMC to
PMC working with EMO. Polish.
·
Development Process (this section to be replaced with Standard
Charter): Requested Standard Charter change to state PMC plus a majority of
Committers must approve plans vs. just the latter (which conflicts with TPTP
practice). PMC retains flexibility to
delegate its plan approval responsibility to PG or otherwise as
appropriate. Added requirement for
approval from majority of Committers is compliant with TPTP practice (although
not explicit currently). Added voting
rules for committing changes – moved from Committers section. Moved responsibility to Projects from PMC for
establishing test plans and appropriate levels of testing. Removed redundant statement indicating PMC
may define further development process guidelines.
·
Licensing (this section to be replaced with Standard
Charter): No changes.
Following sections deleted from TPTP charter and not present
in Standard Charter:
·
Ports: Delete this section. Ports are generally just a
special case of typical Component creation and sufficiently covered as such.
·
Coordinated Release Cycles: Delete this section. PMC can otherwise set this expectation (no need for overly
restrictive language in the charter which may hinder currently unanticipated
future situations).
Overview
The Eclipse
Test & Performance Tools Platform TPTP Top-Level Project (the "Eclipse Test
& Performance Project") is an open source collaborative software development project
dedicated to providing a robust, extensible, commercial quality, and freely
available industry platform intended to reduce the cost and complexity of
implementing effective and highly interoperable test & performance tools.
This document describes the composition and organization of the project, roles
and responsibilities of the participants, and development process for the
project. The project charter is a living document that will be updated to reflect
the evolution of the development process over time.
Mission
The TPTP mission of the Eclipse Test &
Performance Project
is to build a generic, extensible, standards-based tool platform upon which
software developers can create specialized, differentiated, and interoperable
offerings for world class test and performance tools.
Scope
TPTP The Eclipse Test &
Performance Project will
extend the family of Eclipse technologies to provide an open development
platform supplying frameworks and services for test and performance tools that
are used throughout the lifecycle (e.g., testing, tracing/profiling, tuning,
logging, monitoring, analysis, autonomics, administration, etc., but not
development tools such as optimizing compilers) and support a spectrum of
standalone through highly-distributed and embedded through enterprise computing
systems.
The project will also deliver exemplary tools that verify the utility of and
illustrate the appropriate use of the platform, support the development and
maintenance of the platform itself, and extensible via documented programmatic
interfaces.
Project Management Committee
The Eclipse
Test & Performance Project and Projects under its this Charter are managed by a small group known as the Eclipse Test & Performance Tools Platform Project
Management Committee (the "PMC").
The PMC is PMCs are expected to ensure that:
- All Projects operate effectively by providing
leadership to guide the Project's overall direction and by removing
obstacles, solving problems, and resolving conflicts.
- All Project plans, technical documents and reports are
publicly available.
- All Projects operate using open source rules of
engagement: meritocracy, transparency, and open participation. These
principles work together. In
principle, 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.
The PMC has the following
responsibilities:
- Providing the leadership and vision to guide the
Project's overall direction in a manner consistent with the Eclipse Foundation Roadmap.
- Providing assistance and support to the developers
working on the Project
by removing obstacles, solving problems, and resolving conflicts.
- Ensuring that Project plans are produced, and
presenting these plans to the EMO.
Establishing Working with the development Eclipse Management Organization (the "EMO")
to establish the processes and infrastructure needed for the development team project teams to be effective.
- Recommending new Projects to the EMO
, and appointing the
Project Lead.
Establishing 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.
- Helping to ensure that the Projects overseen by the PMC have enough contributors,
and
helping working to fill vacancies in roles.
- Producing "how to get involved" guidelines to
help new potential contributors get started.
- Coordinating relationships with other Eclipse
Foundation Projects.
- Facilitating code or other donations by individuals or
organizations companies.
- Making
recommendations to the Eclipse Foundation Board regarding contributions
proposed under licenses other than the EPL.
- Working with the EMO and
Committers to ensure in-bound contributions are made in accordance with
the Eclipse Foundation IP Policy.
Representing the Project to the
outside world.
- Acting as a focal point for the
community in representing the Projects it oversees.
The PMC Lead is appointed
by the Board. The initial PMC members are is selected by the PMC Lead.
Thereafter, to become a member of the PMC, an individual must be nominated by a another member of the PMC, and unanimously approved by all PMC
members. The
goal is to keep the membership of the PMC small.
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.
The PMC is responsible for
producing and maintaining the Project
Charter. Development activities must conform to
any rules or processes outlined in the Charter, so a change to the development process these
processes may
necessitate a change to the Charter.
Changes to the Charter must be are approved by the Board.
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. Because of the diversity amongst individual projects, PMC
members are not expected to maintain anything other than general currency with
projects outside their assigned technical areas.
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 subsystems components they are overseeing.
Requirements Group
The PMC
Lead shall establish an Eclipse Test & Performance Project TPTP Requirements Group (the "Requirements
Group") is formed and the
Chairperson thereof designated at the discretion of the PMC and is
responsible for gathering, reviewing and categorizing incoming requirements,
and proposing a coherent set of themes and priorities that will drive the
Project Roadmap.
The PMC Lead
will designate the Requirements Group Chair. The Requirements Group shall be
comprised of one representative designated by each contributing organization
and other individuals designated from time to time by the PMC Lead.
The Requirements Group will
accomplish its objectives by working closely with their represented contributing organizations and individuals, the
Project development teams, the
PMC, the Eclipse Requirements Council, and the ecosystem.
Architecture Group
The PMC
Lead shall establish an Eclipse Test & Performance Project TPTP Architecture Group (the "Architecture
Group") is formed and the
Chairperson thereof designated at the discretion of the PMC and is
responsible for the development, articulation, and maintenance of the Project Architecture and alignment
thereof with the Eclipse Architecture.
The PMC Lead will designate the Architecture Group Chair
and will also designate the TPTP Project
representative to the Eclipse Architecture Council. The Architecture Group
shall be comprised of a subset Project Committers nominated by the Chair and
other individuals designated from time to time by the PMC Lead who represent the Project architecture.
The Architecture Group will
accomplish its objectives by working closely with the Project development teams, the PMC, and the Eclipse
Architecture Council.
Planning Group
The PMC
Lead shall establish an Eclipse Test & Performance Project TPTP Planning Group (the "Planning Group")
is formed and the Chairperson
thereof designated at the discretion of the PMC and is responsible for
the development and maintenance of a Project Release Plan consistent with the Project Architecture,
supporting the Eclipse
Roadmap, and supported by resource commitments of contributing organizations
and individuals.
The PMC Lead will designate
the
Planning Group Chair and will also designate the TPTP Project representative to the
Eclipse Planning Council. The Planning Group shall be comprised of one representative
designated by each contributing organization and other individuals designated from
time to time by the PMC Lead. Additionally, the Requirements Group and
Architecture Group chairpersons will be members of the Planning Group.
The Planning Group will
accomplish its objectives by working closely with their represented contributing organizations and individuals, the Project development teams,
the PMC, and the
Eclipse Planning Council.
Roles
The Eclipse Test & Performance Project is a meritocracy 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.
Users
Users are the
people who use the products that the Project produces output
from the Project. 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.
Output will typically
consist of software in form of extensible frameworks and exemplary tools.
Software in this context means intellectual property in electronic form,
including source and binary code, documentation, courseware, reports and
whitepapers.
Developers
Developers
are the people who contribute code, fixes, documentation, or other work that
goes into the product.. Users who contribute software,
documentation, or other materially useful content become developers. 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.
Committers
Developers who give
frequent and valuable contributions to a Project, or a subsystem component of a Project (in the case of large Projects), can
have their status promoted to that of a "Committer" for that Project
or subsystem component respectively. A Committer has write access to the
source code repository for the associated Project (or subsystem component), and gains voting rights allowing them to affect
the future of the Project (or subsystem
component).
In order for a Developer to
become a Committer on a
particular Project overseen by the PMC, another Committer for the same
Project (or Subsystem
component as appropriate) can nominate
that Developer or the Developer can ask for it to be
nominated. Once a Developer is nominated, the Committers
for the Project (or Subsystem
component)
will vote for a PMC-designated
voting period, and that period shall be no less than one week. If there are at least three or a majority, whichever is less, of
positive votes 3 positive votes and no negative votes within the
voting period, the Developer is recommended to the PMC for commit privileges. The PMC may waive the 3 vote minimum
requirement in exceptional cases (e.g., there are fewer than 3 active
committers on the project). If the PMC also approves, and the Developer must signs
the appropriate New Committer agreements established by the EMO (wherein, at the very least, the
Developer agrees to abide by the Eclipse Intellectual Property Policy), and the Developer is converted into a
Committer and given write access to the source code and/or web repository for that Project (or subsystem 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. Committers may be asked to represent their
respective Project and/or subsystems by membership on the Architecture Group.
At times, Committers may go become 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 who is disruptive, does not
participate actively, or has been inactive for an extended period may have his
or her Committer commit status removed revoked by the PMC.
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.
Committers are required to
monitor the developer
mailing lists associated with all Projects and Subsystems components for which they have Committer 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 Committer commit privileges are also revoked.
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).
The Committers of a
Project or Subsystem vote (+1:'yes', 0:'abstain', -1:'no/veto') to decide which
changes may be committed to the master code base of a Project or Subsystem
respectively. Three +1 ('yes') with no -1 ('no'/veto') votes are needed to
approve a code change. All votes are conducted via the developer mailing list
associated with the Project or Subsystem and must be followed by a
justification within 24 hours or the veto becomes invalid.
Special rules may be established for Projects or
Subsystem 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 Subsystem, as applicable.
More restrictive rules for committing changes may
be established by the PMC near the end of release cycles or for maintenance
streams.
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.
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 recommendation of the Board PMC,
and confirmed by the EMO.
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.
See the project descriptions for TPTP Platform,
Monitoring Tools,
Testing Tools
and Tracing and
Profiling Tools for additional information on the Projects under
this Charter.
Project Organization
Given the fluid nature
of Eclipse Projects, organizational changes are possible, in particular:
dividing a Project into components; dividing a Project into two or more
independent Projects; and merging two or more Projects into a single Project.
In each case, the initiative for the change may come either from within the
Project or from the PMC, but the PMC must approve any change, and approval must
be confirmed by the EMO.
Subsystems
The PMC may decide If a Project wishes to divide a Project further into
Subsystems. If a Project is divided into Subsystems into components, Committer commit
privileges are normally granted at the Subsystem
component level, and
the Committers for a
given Subsystem component vote on issues specific to that Subsystem component. Subsystem Components
are established and discontinued by the PMC. When the PMC creates a Subsystem component, it appoints a Subsystem
component lead to act
as the technical leader and names the initial set of Committers for the Subsystem component. The Subsystem
component lead is
designated as a Committer
for the Project and represents the Subsystem
component in
discussions and votes pertaining to the Project as a whole. Subsystem Component Committers
do not participate in votes at the level of the Project as a whole, unless they
are also the Subsystem
component lead.
In cases where new Projects
are being created, either by splitting or by merging, the usual procedures as
set forth in this Charter are followed. In particular, developers will not necessarily have the same rights after an
organizational change that they enjoyed in the previous structure.
Ports
For Subsystems that contain
platform-specific code, it may be advantageous to allow developers to work on a
port of the Subsystem to a new platform without requiring that they already be
Committers for the Subsystem. In this case, the main code base is known as the
Subsystem "core", and the port code base is known as a Subsystem
"port". The decision to set up a port is made by the PMC. When a new
port of a Subsystem is created, the PMC appoints a Port Lead, and an initial
set of Committers who will have commit and voting privileges specifically for
the port. The port is done under the auspices of the core Subsystem,
and all Committers for the core Subsystem automatically also have commit and
voting privileges on the port. Normally the Subsystem Lead will also be the
Port Lead.
Coordinated Release Cycles
All Projects under the Eclipse Test & Performance Project will have
coordinated release plans, milestone dates, freeze cycles, builds, and ship
dates. Project Leads are responsible for coordinating their respective Projects
while the Eclipse Test & Performance Project Planning Group will coordinate
across Projects.
The Eclipse Test & Performance Project will typically have
release plans coincident with Eclipse Platform releases plus additional more
frequent interim releases where appropriate.
Infrastructure
The infrastructure required to support the development process is
the responsibility of the PMC. The Eclipse Test & Performance Project will
have at least the following: The PMC works with the EMO to ensure
the required infrastructure for the Project. The Project infrastructure will
include, at minimum:
- Bug Database - Bugzilla
database for tracking bugs and feature requests.
- Source Repository -- One or more CVS repositories
containing
both the master source code and documentation all the software for the Projects.
- Website - A website will contain information about the
Project, including documentation, reports and papers, courseware, downloads of releases, and
this Charter.
- 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.
- Project Mailing Lists -
Development mailing Mailing list for
technical discussions and Committer voting related to the Project(s). This mailing list is open to
the public.
Subsystem Component Mailing Lists - Development mailing Mailing list for
technical discussions and Committer voting related to the Subsystem component. This mailing list is open to the public.
- Newsgroups -
Newsgroups where users, developers, and committers can interact regarding
general questions and issues about the project. The newsgroup is open to
the public.
The Development Process
Each Project lead
must produce a development plan for the release cycle, and the development plan
must be approved by the Eclipse Test & Performance Planning
Group a
majority of Committers of the Project. The plan must be submitted to the PMC
for review. The PMC may provide feedback and advice on the plan but approval
rests with the Project Committers.
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.
The Committers of a Project or component decide which changes may be
committed to the master code base of a Project or component respectively. The
PMC defines the decision process, but that process must include the ability for
Committers to veto the change. The decision process employed may change with
the phase of development. Common decision processes include:
- Retroactive -
changes are proactively made by Committers but can be vetoed by a single
Committer.
- Proactive - 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.
- Three Positive - No
code is committed with a vote; 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. Special rules may be established
by the PMC for Projects or components with fewer than three Committers.
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 establishing 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. Builds in this context are intended to include not only code but also
reports, documentation, and courseware.
The PMC Each
Project is responsible
for establishing test plans
and the level of testing appropriate for each subproject, and
approving the test plans the Project.
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, (and any other interested parties), informed.
The
PMC may specify additional detailed development process guidelines specific to
this Project.
Licensing
All contributions to Projects under
this Charter must adhere to the Eclipse Foundation Intellectual Property
Policy.