Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[eclipse.org-planning-council] Standard Charter Revision for Eclipse Planning Council

Title: Standard Charter Revision for Eclipse Planning Council

Bjorn, Planning Council,

Per Bjorns request, please see attached for the requested changes to the Eclipse standard charter which I assembled into a single proposed draft revision from the numerous email messages I sent previously (to Bjorn).  While this document is html format, it is meant to be edited by MS Word to clearly see the proposed changes and explanations (Sri could facilitate this review is Word is not otherwise available).

Note, there are likely numerous other changes that we could make to clear up ambiguities (e.g., what happens to the voting rights of a Lead Committer when they take an extended leave the project must continue, but their Component cannot proceed without them; lots of little dark corners like this still exists and we just do our best to interpret the intent).  But, these included here are the most noticeable issues.

I forget now which of the older projects are still relying on customer charters, perhaps they have some specifics to add (although, I crafted the TPTP charter based on the best amalgamation of charters existing at the time Eclipse, Tools, WTP, ? so we should be pretty close).  As well, some of the newer projects may have run into issues to clarify.

As stated previously, I expect that projects can independently decide whether they want to adopt standard charter revision v1.0 or v1.1, but it was my intent not to introduce any provisions which would hinder all projects to move forward to the cleaner v1.1 version.  With these changes to the standard charter, we would adopt the standard charter for TPTP and do away with our original custom charter.

It would be nice to take a bulk approval request to the Board to approve a new standard charter revision and for the adoption thereof by all projects.

Sri, Ive attached our proposed revised TPTP charter based on the proposed standard charter for reference (not changed since Jan06 revision I previously sent for review).

 

<<TPTP Charter v1.1 - Draft.htm>>

<<Eclipse Standard Top-Level Charter v1_1 - DRAFT.htm>>

PS

Thanks,

Tyler Thessin | tyler.thessin@xxxxxxxxx

Director, Intel Performance Libraries Lab

Software & Solutions Group | Developer Products Division

Intel Corporation | www.intel.com/software/products

2111 NE 25th Ave, JF1-07, Hillsboro, OR 97124, (503) 712-8413

Title: Eclipse Standard Top-Level Charter v1.0

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.[TRT1] 

·          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[TRT2] .
  • 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 [TRT3] 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[TRT4]  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[TRT5] . 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[TRT6] , 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[TRT7] .

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 [TRT8] 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.[TRT9] 

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 [TRT10] 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 [TRT11] will not necessarily have the same rights after an organizational change that they enjoyed in the previous structure.

Ports[TRT12] 
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[TRT13] 
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.[TRT14] 

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.[TRT15] 

Licensing
All contributions to Projects under this Charter must adhere to the Eclipse Foundation Intellectual Property Policy.

 


 [TRT1]Comments

 [TRT2]companies” may be viewed as too narrow a specification, i.e., “company” is usually associated with for-profit interests.  We’ve previously used “organizations” in this context for broader applicability.  Proposed Standard Charter adopt “organizations”

 [TRT3]are” is ambiguous.  “Changes are approved” implies already approved, whereas “must be approved” indicates a requirement to be completed. (proposed to change wording to “require approval”

 [TRT4]Eclipse Development Process uses the “subsystems” terminology.  EMO previously guide to align with such.  However, recent guidance is to align with “component” terminology.

 [TRT5]Proposed Standard Charter revision to state “that period shall be a minimum of one week or the actual time in which all applicable Committers submit their votes”

 [TRT6]No issue for TPTP to re-align with the minimum voting for cases where less than 3 committers.

 [TRT7]Likely ok to eliminate this provision to align with the Standard Charter – informational only- non-binding - as stated anyway.

 [TRT8]Ambiguous, should probably be changed in the Standard Charter – could be wrongly interpreted as removal of commit (or write) access, but not removal of voting rights.

 [TRT9]Ok to remove from Committer section – comparable provisions added to the Development Process section.

 [TRT10]Good to remove this from the charter so as not to unnecessarily restrict project creation/removal (i.e., if stated in charter, need Board approval for project changes, otherwise only EMO approval needed)

 [TRT11]Requested Standard Charter change to Committers, Developers don’t have rights impact by Project changes.

 [TRT12]Ok to delete this section – Ports are generally just a special case of typical new subsystem/component creation.

 [TRT13]Ok to 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).

 [TRT14]The plan approval requirement as stated in the Standard Charter directly contradicts our established practice whereby the PMC/PG are indicated as plan approvers.  However, in reality, the plans put forth to the PMC/PG have Committer approval as the plans are build bottoms-up – Committers identify plan items to which they can commit, Project Leads consolidate and roll-up such in the plan proposal to the PMC/PG for ultimate approval.  As such, removing the PMC/PG requirement to approve the plan would not cause an issue.  However, removing the PMC ability to reject a plan eliminates the PMC’s authority to ensure the plan aligns with the charter, scope, etc.  I have requested revision of the Standard Charter; if not accepted, we will need to override to state “must be approved by the PMC (which the PMC can delegate to the PG) and a majority of committers of the project.”

 [TRT15]This statement may not be needed – nothing else in the Charter precludes the stated expectation, and therefore is merely for explicit clarification.  If deemed required, include in an override Development Process section that specifies, “in addition to the terms defined in the standard charter…”

Title: Eclipse Standard Top-Level Charter v1.0

Eclipse Top Level Project Charter v1.0 1[TRT1]  – The Eclipse Foundation

This document defines standard terms for Eclipse Top Level Project Charters. It is intended that the Charters for Top Level Projects reference this document rather than inheriting by copy-and-paste[TRT2] .

Overview
To be defined in the individual Top Level Project Charter.

Mission
To be defined in the individual Top Level Project Charter.

Scope
To be defined in the individual Top Level Project Charter.

Project Management Committee
The Projects under this Charter are managed by a group known as the Project Management Committee (the "PMC").

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.

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.

·         Working with the Eclipse Management Organization (the "EMO") to establish the processes and infrastructure needed for the project teams to be effective.

·         Recommending new Projects to the EMO.

·         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 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 companiesorganizations[TRT3] .

·         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.

·         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 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.

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 these processes may necessitate a change to the Charter. Changes to the Charter require approval [TRT4] 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 components they are overseeing.

Roles
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 output from the Project. 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
Users who contribute software, documentation, or other materially useful content become developers. Developers are 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 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).

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 for a PMC-designated voting period, and that period shall be no less than one week or the actual time in which all applicable Committers submit their votes[TRT5] . If there are at least 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 Pproject (or component)[TRT6] ). If the PMC also approves, and the PMC,  Developer, and their employer (if applicable) execute the appropriate new Committer agreements provided by the EMO[TRT7]  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), the Developer is converted into a Committer and given write access to the source code and/or web 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.

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 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 [TRT8] commit status revoked by the PMC.  In such circumstances, the PMC makes the termination recommendation to the EMO[TRT9] .

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 mailing lists 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 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).

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 consistent with the mission of the Top Level Project, be recommended by the PMC, and confirmed by the EMO. Projects can be discontinued by recommendation of the 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.

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.

If a Project wishes to divide 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.

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 Committers [TRT10] will not necessarily have the same rights after an organizational change that they enjoyed in the previous structure.

Infrastructure
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 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 discussions pertaining to the Project as a whole or that cross Projects. This mailing list is open to the public.

·         Project Mailing Lists - Mailing list for technical discussions related to the Project. This mailing list is open to the public.

·         Component Mailing Lists - Mailing list for technical discussions related to the 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 PMC and a majority of Committers of the Project.[TRT11]  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 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. Builds in this context are intended to include not only code but also reports, documentation, and courseware.

Each Project is responsible for establishing test plans and the level of testing appropriate for 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.

Licensing
All contributions to Projects under this Charter must adhere to the Eclipse Foundation Intellectual Property Policy.


 [TRT1]Proposed draft for version 1.1

 [TRT2]One other change the may be beneficial is for the Standard Charter is to use provision/paragraph numbering scheme.  While it would be our intention to define a Standard Charter that is wholly acceptable as-is to all Eclipse PMCs, we may encounter some limited situations where PMCs desire to adopt the Standard Charter, but delete, modify, override a particular provision and providing paragraph/provision numbering scheme would ease this (e.g., in PMC charter, “this section replaces Section 8(a) in the Standard Charter…”).

 [TRT3]companies” may be viewed as too narrow a specification, i.e., “company” is usually associated with for-profit interests.  We’ve previously used “organizations” in this context for broader applicability

 [TRT4]are” is ambiguous.  “are approved” implies already approved, whereas “require approval” indicates a requirement to be completed.

 [TRT5]Enable streamlined approvals in cases where all applicable Committers vote quickly via email, or perhaps while attending a conference call.

 [TRT6]project” should be changed to “project (or component)”.

 [TRT7]This was slightly in conflict with the New Committer Process which states requirements for completion of multiple forms/agreements (New Committer Request by PMC, Member/Individual Committer Questionnaire, Individual Committer Agreement, and/or Eclipse Committer Employer Consent Form). 

 

The use of capitalized “New Committer agreements” implies a specifically named agreement (named “New Committer” agreement, but Developers may need to execute a questionnaire agreement and potentially a committer agreement document), and their in an additional obligation on the PMC (“new committer request form”) and potentially on the Developer’s employer (consent form).

 

I have two alternative proposed fixes:

 

(1) Expand the text to accurately state expectations, e.g.:

“If the PMC also approves, and the PMC, Developer, and their employer (if applicable) execute the appropriate new committer agreements provided by the EMO….”

 

(2) Specifically reference the New Committer Process, e.g.:

“If the PMC also approves, and the PMC, Developer, and their employer (if applicable) execute the appropriate agreements specified in the Eclipse New Committer Process….”

 

 [TRT8]commit” is ambiguous.  Should probably be changed in the Standard Charter – could be wrongly interpreted as removal of commit (or write) access, but not removal of voting rights. (several instances of  “commit” throughout should also be changed)

 [TRT9]Removing a Committer:

The Eclipse Development Process empowers the PMC to remove inactive Committers:

 

11. Committer Termination

A Committer who is inactive or disruptive can have their commit rights removed by the Project’s PMC in accordance with the Project’s Charter.

 

And the Standard Charter definition of PMC responsibilities capitalizes on this:

 

PMC Section:

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 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 revoked by the PMC.

 

However, these provisions may be in conflict with other processes and ambiguous on important aspects of execution. 

 

(1) There is concern that as stated, these provisions enable the PMC to effect agreements that the Committer and potentially their employer have with the EMO.  A cleaner solution might call for the PMC to recommend Committer termination to the EMO and the EMO to terminate respective agreements and rights (essentially reversing the process of establishing the Committer).

 

(2) Additionally, there is concern about expectations for notification and response period for inactive Committers.  My simple view is that the respective Project/Component Lead and/or PMC makes multiple attempts to contact an inactive Committer over the course of ~30 days after which termination procedures may continue (unless the Committer previously communicated special circumstances).  Also, Mike has concerns about the means of communication (e.g., using private requests (requested) vs. using project public mailing list) and response period (e.g., tying to UK labor redundancy laws which in some cases require 3 month waiting periods).  He states, e.g.,

 

The individual actually has no power over whether or not they can continue to contribute, they are bound by their agreement with their employer not to contribute as an individual and it's down to the company how they are deployed. However, being a committer is a high-status activity, and to avoid the company having problems with constructive dismissal it cannot arbitrarily reduce an employee's status without reasonable consultation.  This may not be the practice in the US ;-)

 

In other words, if the employee wishes to continue as a committer they must be given a reasonable opportunity by the company to do so. Until this consultation process is over neither the employee or the employer are at liberty to respond to the PMC as to its outcome. (and incidentally it is usual practice for this whole process to remain confidential within line management, rather than being emailed to a public mailing list by a non-related member of staff). So how long should the consultation period last?  There are a couple of datapoints.  In the UK the redundancy consultation period is 30 days.  The period for raising an action in an industrial tribunal is 90 days. I was using the latter and adding a month for additional processes in notfying to and from the EMO/PMC.

 

I’m not able to determine if there is any implicit relationship between removing Committer rights and employer/employee relationships and labor laws.  My inclination is no, but I’d like another perspective.

 

My intention is to try and keep any solution to this issue as simple as possible.  And, Mike Norman, representing a non-US company has specific perspectives and concerns related to UK employment law which he believes have some relationship here.  I don’t want to pass judgment on applicability, but would like an easy solution to which we can all agree.  One possibility is to remove the details of this from the Charter, e.g.,

 

PMC Section:

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 revoked by the PMC.  In such circumstances, the PMC makes termination recommendation to the EMO.

 

 [TRT10]Reference to “Developers” should be changed to “Committers”.  Developers don’t have rights, Committers do, and hence Project changes may impact Committers.

 [TRT11]For the case of approving plans, this is not an issue, e.g., in TPTP, the PMC implicitly requires that plans put forth be previously approved by the committers.  However, for the case of rejecting plans, this terms in the Standard Charter conflicts with other requirements of the charter.  E.g., the inability of the PMC to reject a plan conflicts with the PMC responsibilities to ensure that the project(s) are consistent with the Eclipse Roadmap, with the project charter, etc.  E

 

Existing projects state the following terms for plan approvals:

TPTP = PMC/PG

Eclipse Platform, BIRT, Eclipse Tools = PMC plus a majority of committers

Technology = majority of committers

WTP, DTP, DSDP = (via Standard Charter) majority of committers

 

 


Back to the top