Skip to main content

Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

Difference between revisions of "Development Process 2006 Revision Final"

(Just Enough Process)
(Revision <u>2.3.1</u>)
 
(57 intermediate revisions by 2 users not shown)
Line 1: Line 1:
===Revision 2.3===
+
===Revision <u>2.3.1</u>===
 
<div style="border: 2px solid #8E87EB; padding: 6px;">
 
<div style="border: 2px solid #8E87EB; padding: 6px;">
This is a draft of a proposed revision of the official Development Process for all projects hosted by the Eclipse Foundation. The final result of this document is intended to replace the original 2003 [http://www.eclipse.org/org/documents/Eclipse%20Development%20Process%202003_11_09%20FINAL.pdf Development Process]. After this document is completed and accepted by the Board, the EMO will write a new set of guidelines and interpretations to replace the 2005 web pages [http://www.eclipse.org/projects/dev_process/]. This is the final version to be considered by the Board of Directors - the initial version and the community comments are here: [[Development Process 2006 Revision]]
+
This draft document was approved by the Eclipse Foundation Board of Directors in its meeting on January 17, 2007. It replaces the original 2003 [http://www.eclipse.org/org/documents/Eclipse%20Development%20Process%202003_11_09%20FINAL.pdf Development Process]. The official approved version, along with guidelines and interpretations, is on the Eclipse website at [http://www.eclipse.org/projects/dev_process/development_process.php].  
''--Bjorn Freeman-Benson''
+
 
 +
This is the draft of version as by the Board of Directors - the initial version and the community comments are here: [[Development Process 2006 Revision]]
 +
''--Mike Milinkovich and Bjorn Freeman-Benson''
 
</div>
 
</div>
  
Line 32: Line 34:
  
 
===Open Source Rules of Engagement===
 
===Open Source Rules of Engagement===
* '''Receptive''' - Eclipse is open to all; Eclipse provides the same opportunity to all. Everyone participates with the same rules; there are no rules to exclude any potential contributors which include, of course, direct competitors in the marketplace.
+
* '''Open''' - Eclipse is open to all; Eclipse provides the same opportunity to all. Everyone participates with the same rules; there are no rules to exclude any potential contributors which include, of course, direct competitors in the marketplace.
** As a further explanation of Receptive, we include '''Permeable''' - Projects are open to new ideas and new committers; not just in words, but in fact. In other words, those outside the core can, and do, influence and join the project.
+
** As a further explanation of Open, we include '''Permeable''' and '''Receptive''' - Projects are open to new ideas and new committers; not just in words, but in fact. In other words, those outside the core can, and do, influence and join the project.
* '''Transparent''' - Project discussions, minutes, plans, deliberations, and other artifacts are open, public, and easily accessible.
+
* '''Transparent''' - Project discussions, minutes, deliberations, project plans, plans for new features, and other artifacts are open, public, and easily accessible.
 
* '''Meritocracy''' - Eclipse is a meritocracy. The more you contribute the more responsibility you will earn. Leadership roles in Eclipse are also merit-based and earned by peer acclaim.
 
* '''Meritocracy''' - Eclipse is a meritocracy. The more you contribute the more responsibility you will earn. Leadership roles in Eclipse are also merit-based and earned by peer acclaim.
  
Line 54: Line 56:
 
to ''...cultivate...an ecosystem of complementary products, capabilities, and services...''. It is therefore a key
 
to ''...cultivate...an ecosystem of complementary products, capabilities, and services...''. It is therefore a key
 
principle that the Eclipse Development Process ensures that the projects are managed for the benefit of both the open source community and the ecosystem members. To this end, all Eclipse projects are required to:
 
principle that the Eclipse Development Process ensures that the projects are managed for the benefit of both the open source community and the ecosystem members. To this end, all Eclipse projects are required to:
* communicate their project plans in a timely, open and transparent manner;
+
* communicate their project plans and plans for new features (major and minor) in a timely, open and transparent manner;
 
* create platform quality frameworks capable of supporting the building of commercial grade products on top of them;
 
* create platform quality frameworks capable of supporting the building of commercial grade products on top of them;
 
* ship extensible, exemplary tools which help enable a broad community of users; and
 
* ship extensible, exemplary tools which help enable a broad community of users; and
Line 61: Line 63:
 
===Three Communities===
 
===Three Communities===
 
Essential to the Purposes of the Eclipse Foundation is the development of three inter-related communities around each Project:
 
Essential to the Purposes of the Eclipse Foundation is the development of three inter-related communities around each Project:
* '''Contributors''' and '''Committers''' - a thriving, diverse and active community of developers is the key component of any Eclipse Project. Ideally, this community should be an open, transparent, inclusive, and diverse community of Committers and (non-Committer) Contributors. Attracting new Contributors and Committers to an open source project is time consuming and requires active recruiting, not just passive "openness". The Project Leadership must go out of its way to encourage and nurture new Contributors.   
+
* '''Contributors''' and '''Committers''' - a thriving, diverse and active community of developers is the key component of any Eclipse Project. Ideally, this community should be an open, transparent, inclusive, and diverse community of Committers and (non-Committer) Contributors. Attracting new Contributors and Committers to an open source project is time consuming and requires active recruiting, not just passive "openness". The Project Leadership must make reasonable efforts to encourage and nurture promising new Contributors.   
 
** Projects must have the diversity goals to ensure diversity of thought and avoiding relying on any one company or organization. At the same time, we acknowledge that enforcing a particular diversity metric is a poor way to achieve these goals; rather we expect the project leadership to help the diversity evolve organically.
 
** Projects must have the diversity goals to ensure diversity of thought and avoiding relying on any one company or organization. At the same time, we acknowledge that enforcing a particular diversity metric is a poor way to achieve these goals; rather we expect the project leadership to help the diversity evolve organically.
 +
** Diversity is a means to an end, not an end in itself, thus diversity goals will differ by project based on the other accomplishments of the project(s).
 
** Project are required to explain their diversity efforts and accomplishments during Reviews.
 
** Project are required to explain their diversity efforts and accomplishments during Reviews.
  
Line 100: Line 103:
  
 
<span style="margin-right:6px; margin-top:5px; float:left; color:ivory; background:#00CC99; border:1px solid #444; font-size:30px; line-height:25px; padding-top:2px; padding-left:2px; padding-right:2px; font-family:times; ">G</span>'''Guideline''' - Other responsibilities and behaviors are recommended best practices. Collectively, we have learned that Projects are more likely to be successful if the team members and leaders follow these recommendations. Projects are strongly encouraged to follow these recommendations, but will not be penalized by this Process if they do not.
 
<span style="margin-right:6px; margin-top:5px; float:left; color:ivory; background:#00CC99; border:1px solid #444; font-size:30px; line-height:25px; padding-top:2px; padding-left:2px; padding-right:2px; font-family:times; ">G</span>'''Guideline''' - Other responsibilities and behaviors are recommended best practices. Collectively, we have learned that Projects are more likely to be successful if the team members and leaders follow these recommendations. Projects are strongly encouraged to follow these recommendations, but will not be penalized by this Process if they do not.
 
<div style="border: 2px solid #8E87EB; padding: 6px;">
 
After taking commenter's advice, I modified the text above and then moved the comments [http://wiki.eclipse.org/index.php/Development_Process_2006_Revision_Comments#Requirements_1 to a separate page]. ''--Bjorn Freeman-Benson''</div>
 
  
 
===Requirements and Guidelines===
 
===Requirements and Guidelines===
Line 108: Line 108:
  
 
The EMO is not permitted to override or ignore the requirements listed in this document without the express written endorsement of the Board of Directors.
 
The EMO is not permitted to override or ignore the requirements listed in this document without the express written endorsement of the Board of Directors.
 
<div style="border: 2px solid #8E87EB; padding: 6px;">There seems to be too much emphasis on ahead-of-time requirements that goes against the Agile grain of Eclipse development so far. Some projects have carried this to an extreme, to their detriment. "Make code not specs". ''--[[Ed Burnette]]'' </div>
 
<div style="border: 2px solid #8E87EB; padding: 6px;">Ed: I don't understand your comment. Could you explain how this process has too much emphasis on ahead-of-time requirements? Additionally, I do not believe it is the role of the EMO or this process to insist that projects be agile. We can (and do) recommend that projects follow an agile process, but in the spirit of open source, we do not require that. ''--Bjorn Freeman-Benson'' </div>
 
<div style="border: 2px solid #8E87EB; padding: 6px;">Ed: The requirements here more pertain to how the various projects function within the broader Eclipse development process than how they are run in and of themselves.  That said, the community will expect some sort of roadmap and predictability for each project release cycle.  The separate project development guidelines should enumerate best practices that seek to strike the right balance.''-- Rich Main'' </div>
 
<div style="border: 2px solid #8E87EB; padding: 6px;">
 
I have written more about requirements and guidelines in [http://eclipse-projects.blogspot.com/2006/10/edp-requirements-8-of-17.html the eighth of a series of blog posts about the Development Process]. ''--Bjorn Freeman-Benson''
 
</div>
 
  
 
=Structure and Organization=
 
=Structure and Organization=
The Eclipse Projects are organized hierarchically. The top of the hierarchy are the set of '''Top Level Projects'''. Each Top Level Project contains zero or more '''Projects''' (for linguistic clarity, Projects as often referred to as '''Sub-Projects'''). Projects may contain one or more '''Components'''.  Components are not independent and are managed by the enclosing Project's leadership.
+
The Eclipse Projects are organized hierarchically. The top of the hierarchy are the set of '''Top Level Projects'''. Each Top Level Project contains zero or more '''Projects''' (for linguistic clarity, Projects as often referred to as '''Sub-Projects'''). Projects may contain one or more '''Components'''.  Components are dependent, managed by the enclosing Project, and do not have independent release schedules.
  
 
As defined by the [http://www.eclipse.org/org/documents/Eclipse%20BYLAWS%202003_11_10%20Final.pdf#page=19 Eclipse Bylaws - Article VII], the '''Eclipse Management Organization (EMO)''' consists of the Foundation staff and the Councils. The term '''EMO(ED)''', when discussing an approval process, refers to the subset of the EMO consisting of the Executive Director and whomever he or she may delegate that specific approval authority to.
 
As defined by the [http://www.eclipse.org/org/documents/Eclipse%20BYLAWS%202003_11_10%20Final.pdf#page=19 Eclipse Bylaws - Article VII], the '''Eclipse Management Organization (EMO)''' consists of the Foundation staff and the Councils. The term '''EMO(ED)''', when discussing an approval process, refers to the subset of the EMO consisting of the Executive Director and whomever he or she may delegate that specific approval authority to.
 
<div style="border: 2px solid #8E87EB; padding: 6px;">
 
After taking commenter's advice, I modified the text above and then moved the comments [http://wiki.eclipse.org/index.php/Development_Process_2006_Revision_Comments#Structure_and_Organization_2 to a separate page]. ''--Bjorn Freeman-Benson''</div>
 
 
<div style="border: 2px solid #8E87EB; padding: 6px;">
 
I have written more about the project-sub-project structure in [http://eclipse-projects.blogspot.com/2006/10/edp-structure-and-organization-9-of-17.html the ninth] and [http://eclipse-projects.blogspot.com/2006/10/edp-more-radical-proposal-10-of-17.html tenth of a series of blog posts about the Development Process]. ''--Bjorn Freeman-Benson''
 
</div>
 
 
<div style="border: 2px solid #8E87EB; padding: 6px;">
 
Mitch Sonies suggested the following alternative to the project structuring: (i) '''Top Level Projects''' are domain-based, packaging/collection projects. Top Level Projects do not implement new features, they just collect, package, and release features delivered by Sub Projects. (ii) '''Sub Projects''' are feature-based. Sub Projects are easy to start, narrowly scoped to a specific feature, and architecturally curated to eliminate duplicates. (iii) Sub Projects do not expand scope to include additional features; rather the interested developers start a new Sub Project for the new feature. This requires that the overhead to start a new project be very low. (iv) Top Level Project and Sub Project are poor names because Sub Projects do not have to reside under Top Level Projects. ''--Bjorn Freeman-Benson for Mitch Sonies''</div>
 
<div style="border: 2px solid #8E87EB; padding: 6px;">
 
An interesting related question here is the tradeoff between projects and components. Where do we set the boundary of what project changes need to be communicated publically to the membership at large and which do not. For example, a new project needs to go through the public review process, but a new component does not - why? What is the distinction between a project and a component? Projects have leaders and component teams have leaders, so that's not the difference. Perhaps it's about what set of a code a committer is elected to; if so, then components would not be allowed to limit itself to a subset of the project's committers. (If that was desired, the component would need to be a full-fledged project.)
 
What is the difference between what this Development Process requires that the project teams tell the membership-at-large about (through the review process) and what is just "part of working on a project"? ''--Bjorn Freeman-Benson''</div>
 
 
<div style="border: 2px solid #8E87EB; padding: 6px;">
 
Re "Where do we set the boundary of what project changes need to be communicated publically to the membership at large and which do not?". Attempting to codify this is unlikely to be successful. The EMO must continuously encourage PMCs to err on the side of openness. If cumulative changes to a '''Project''' warrant increased visibility and review, the EMO should initiate a review; if necessary, the governance model should be extended to empower the EMO take such actions. ''--Dave Bernstein</div>
 
<div style="border: 2px solid #8E87EB; padding: 6px;">
 
Re: If cumulative changes to a '''Project''' warrant increased visibility and review, the EMO should initiate a review; if necessary, the governance model should be extended to empower the EMO take such actions. -- I like this idea and will add a paragraph to the process section below.''--Bjorn Freeman-Benson''</div>
 
 
<div style="border: 2px solid #8E87EB; padding: 6px;">I believe that the development process and governance model already allow for this.  But, the idea that the EMO will somehow police this as a matter of course seems unlikely.  The EMO has many responsibilities and limited technical view onto the projects.  Typically, the only way that the EMO would get involved would be at scheduled review points or as a result of a member complaint.  From a technical standpoint, this might be another area where the Architecture Committee can add value by providing technical feedback to the roadmap process during implementation. ''-- Rich Main''</div>
 
  
 
===Charter===
 
===Charter===
Line 145: Line 118:
  
 
Sub-Projects do not have separate Charters; Sub-Projects operate under the Charter of their parent Top-Level Project.
 
Sub-Projects do not have separate Charters; Sub-Projects operate under the Charter of their parent Top-Level Project.
 
As a comment to the above and to the "A More Radical Proposal" [http://eclipse-projects.blogspot.com/2006/10/edp-more-radical-proposal-10-of-17.html]
 
 
<div style="border: 2px solid #8E87EB; padding: 6px;">I would say that as a company wishing to join the eclipse organization the structure and process is seams as a blocking process. each of these projects has a Charter and a Scope but once a project is defined and being lead by company XYZ (at least as a leader) it is very hard and not attractive for other company to join also to the same project and defining a new project would not be approved. to me it seams as contradiction to the meritocratic rule. If I have a good open source project, lets say in the reporting area, why shouldn't I put in as part of the eclipse community along with the BIRT project? ''--EranW.radview.com''</div>
 
  
 
===Scope===
 
===Scope===
Line 163: Line 132:
 
* ensure that the Project is operating effectively by guiding the Project's overall direction and by removing obstacles, solving problems, and resolving conflicts
 
* ensure that the Project is operating effectively by guiding the Project's overall direction and by removing obstacles, solving problems, and resolving conflicts
 
* ensure that all Project plans, technical documents and reports are publicly available and up-to-date
 
* ensure that all Project plans, technical documents and reports are publicly available and up-to-date
 +
* notify the membership-at-large of all major new features and new code contributions via the defined membership notification mechanism (e.g., specific mailing list). This notification must occur in advance of the code being committed to the source respository.
 
* 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.
 
* 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.
 +
* work effectively with other Eclipse projects with which it has touchpoints.
  
 
Active participation in the user newsgroups and the appropriate developer mailing lists is a required responsibility of all Project Leaders and is critical to the success of the Project.
 
Active participation in the user newsgroups and the appropriate developer mailing lists is a required responsibility of all Project Leaders and is critical to the success of the Project.
 
<div style="border: 2px solid #8E87EB; padding: 6px;">There should be some discussion here about the responsibility of the project leadership to avoid operating in a silo.  Not only should a project operate effectively itself, but it should also work effectively among other projects with which it has touchpoints. Alternately, it could be listed as a responsibility of the architecture council to see to it that such channels are open.  I think that is the intent of the development process, as written.''-- Rich Main''</div>
 
  
 
===Project Team===
 
===Project Team===
Line 178: Line 147:
  
 
Committer, PMC Lead, Project Lead, and Council Representative(s) are roles; an individual may take on more than one of these roles simultaneously.
 
Committer, PMC Lead, Project Lead, and Council Representative(s) are roles; an individual may take on more than one of these roles simultaneously.
 
 
<div style="border: 2px solid #8E87EB; padding: 6px;">I have written more about committer elections in [http://eclipse-projects.blogspot.com/2006/11/edp-project-teams-11-of-17.html the eleventh of a series of blog posts about the Development Process]. ''--Bjorn Freeman-Benson''
 
</div>
 
  
 
===Councils===
 
===Councils===
Line 189: Line 154:
 
* The '''Planning Council''' is responsible for establishing a coordinated Simultaneous Release (a.k.a, "the release train") that supports the Themes and Priorities in the Roadmap. The Planning Council is responsible for cross-project planning, architectural issues, user interface conflicts, and all other coordination and integration issues. The Planning Council discharges its responsibility via collaborative evaluation, prioritization, and compromise.
 
* The '''Planning Council''' is responsible for establishing a coordinated Simultaneous Release (a.k.a, "the release train") that supports the Themes and Priorities in the Roadmap. The Planning Council is responsible for cross-project planning, architectural issues, user interface conflicts, and all other coordination and integration issues. The Planning Council discharges its responsibility via collaborative evaluation, prioritization, and compromise.
  
* The '''Architecture Council''' is responsible for ensuring the Principles of the Development Process through mentorship. Membership in the Architecture Council is per the Bylaws through Strategic Membership, PMCs, and by appointment. The Architecture Council will, at least annually, recommend to the EMO(ED) Eclipse Members who have sufficient experience, wisdom, and time to be appointed to the Architecture Council and serve as mentors. Appointed members of the Architecture Council are appointed to three year renewable terms.
+
* The '''Architecture Council''' is responsible for the development, articulation, and maintenance of the Eclipse Platform Architecture and ensuring the Principles of the Development Process through mentorship. Membership in the Architecture Council is per the Bylaws through Strategic Membership, PMCs, and by appointment. The Architecture Council will, at least annually, recommend to the EMO(ED), Eclipse Members who have sufficient experience, wisdom, and time to be appointed to the Architecture Council and serve as mentors. Election as a Mentor is a highly visible confirmation of the Eclipse community's respect for the candidate's technical vision, good judgement, software development skills, past and future contributions to Eclipse. It is a role that should be neither given nor taken lightly. Appointed members of the Architecture Council are appointed to three year renewable terms.
 
+
<div style="border: 2px solid #8E87EB; padding: 6px;">In an attempt to keep this web page more readable, I have moved the conversation from here to the thread "[EDP] Mentors Council or Coaching Squad?" on [http://dev.eclipse.org/newslists/news.eclipse.foundation/maillist.html eclipse.foundation newsgroup]. The thread also has a discussion of how the EMO has been negligent vis a vis the Architecture Council, but it was just getting a bit long for the wiki page. ''--Bjorn Freeman-Benson''
+
</div>
+
<div style="border: 2px solid #8E87EB; padding: 6px;">I have written more about councils and mentoring in [http://eclipse-projects.blogspot.com/2006/11/edp-councils-12-of-17.html the twelfth of a series of blog posts about the Development Process]. ''--Bjorn Freeman-Benson''</div>
+
 
+
<div style="border: 2px solid #8E87EB; padding: 6px;">I am restoring my comments from the prior discussion as the new blog proposal includes the idea of a Mentors Council and contains no mention of the existing Requirements Council...
+
 
+
:''Dave beat me to the punch on this comment! The problem with adding a fourth council for mentoring is that the current councils have a certain level of authority within the development process that really does not apply to mentoring.  Adding a mentoring council just muddies the waters unnecessarily. It might be better to create a mentoring working group or some such.''
+
 
+
The existing roadmap process (see below) is designed around the Architecture, Planning, and Requirements Councils.  I believe that it is a sound design that simply needs to be implemented in practice. Regarding the mentoring council, I see mentoring as a great thing, but I do not think that the notion of mentoring rises to the "Council" level with respect to the development and roadmap process. ''-- Rich Main''</div>
+
 
+
<div style="border: 2px solid #8E87EB; padding: 6px;">I was not at the meeting (unfortunately) but it is fundamentally disappointing to me that the Architecture Council did not see mentoring and sharing the vision of "Eclipseness" as a role they chose to play.  Roadmaps and processes aside, the very nature of an "architect" is "One who designs and supervises the construction...".  I strongly believe that it is exactly the role of the Architecture Council to guide projects to success through interactions such as mentoring and review participation. ''-- Jeff McAffer''</div>
+
 
+
<div style="border: 2px solid #8E87EB; padding: 6px;">To clarify my previous comment in light of what Jeff wrote above, I would add my support for mentoring as a role of the Architecture Council (Mr. Phelps...  Your mission, if you choose to accept it...).  I just don't support the notion of forming a separate "Mentor's Council". ''-- Rich Main''</div>
+
  
 
=Roadmap Process=
 
=Roadmap Process=
Line 210: Line 161:
 
# '''Themes and Priorities''' from the Requirements Council
 
# '''Themes and Priorities''' from the Requirements Council
 
# '''Simultaneous Release Plan''' from the Planning Council
 
# '''Simultaneous Release Plan''' from the Planning Council
The Roadmap must be consistent with the Purposes as described in Bylaws section 1.1.  It is developed using the prescribed [http://www.eclipse.org/org/councils/roadmap_v2_0/index.php#process roadmap process].  Click on the thumbnail image at right to view a visual representation of the roadmap development process.
+
The Roadmap must be consistent with the Purposes as described in Bylaws section 1.1.  It is developed using the prescribed [http://www.eclipse.org/org/councils/roadmap_v2_0/index.php#process roadmap process].   
  
 
The Roadmap is prepared by the Councils and approved by the Board annually. A proposed Roadmap or Roadmap update is disseminated to the Membership at Large for comment and feedback in advance of its adoption. This dissemination and all discussion and debate around the Roadmap must be held in an open and transparent public forum, such as mailing lists or newsgroups.  
 
The Roadmap is prepared by the Councils and approved by the Board annually. A proposed Roadmap or Roadmap update is disseminated to the Membership at Large for comment and feedback in advance of its adoption. This dissemination and all discussion and debate around the Roadmap must be held in an open and transparent public forum, such as mailing lists or newsgroups.  
Line 230: Line 181:
 
# the approved Roadmap is not put in jeopardy; and
 
# the approved Roadmap is not put in jeopardy; and
 
# the work is consistent with the Project Plan criteria (as described above)
 
# the work is consistent with the Project Plan criteria (as described above)
 
<div style="border: 2px solid #8E87EB; padding: 6px;">In an attempt to keep this web page more readable, I have moved the conversation from here to the thread "[EDP] Roadmap Process" on [http://dev.eclipse.org/newslists/news.eclipse.foundation/maillist.html eclipse.foundation newsgroup]. An interesting thread from many contributors, but it was getting a bit long for the wiki page. ''--Bjorn Freeman-Benson''
 
</div>
 
<div style="border: 2px solid #8E87EB; padding: 6px;">I have written more about the Roadmap process in [http://eclipse-projects.blogspot.com/2006/11/edp-roadmap-13-of-17.html the thirteenth of a series of blog posts about the Development Process]. ''--Bjorn Freeman-Benson''</div>
 
  
 
=Development Process=
 
=Development Process=
All Eclipse Projects, and hence all Project Proposals, must be consistent with the Purposes.
+
All Eclipse Projects, and hence all Project Proposals, must be consistent with the Purposes and the then-current Roadmap.
 
+
<div style="border: 2px solid #8E87EB; padding: 6px;">Should we state here that 'All Eclipse Projects, and hence all Project Proposals, must be consistent with the Structure and Organization'? ''--Scott Lewis''</div>
+
  
 
Projects must work within their Scope. Projects that desire to expand beyond their current Scope must seek an enlargement of their Scope using a public Review as described below.
 
Projects must work within their Scope. Projects that desire to expand beyond their current Scope must seek an enlargement of their Scope using a public Review as described below.
Line 244: Line 189:
 
All projects are required to report their status at least quarterly using the [http://www.eclipse.org/projects/dev_process/project-status-infrastructure.php EMO defined status reporting procedures].
 
All projects are required to report their status at least quarterly using the [http://www.eclipse.org/projects/dev_process/project-status-infrastructure.php EMO defined status reporting procedures].
  
<div style="border: 2px solid #8E87EB; padding: 6px;">
+
Projects must provide advanced notification of upcoming features and frameworks via their Project Plan and the appropriate public announcement communication channels.
After taking commenter's advice, I modified the text above and then moved the comments [http://wiki.eclipse.org/index.php/Development_Process_2006_Revision_Comments#Development_Process_3 to a separate page]. ''--Bjorn Freeman-Benson''</div>
+
 
+
Projects must provide advanced notification of upcoming features and frameworks via their Project Plan and the appropriate transparent communication channels.
+
  
 
==Mentors==  
 
==Mentors==  
New Proposals are required to have at least two '''Mentors'''. The Mentors must be listed in the Proposal, along with their affiliations and their Eclipse projects. Mentors must be members of the Architecture Council. Mentors are required to monitor and advise the new Project during its Incubation Phase, but are released from that requirement once the Project graduates to the Mature Phase.  
+
New Proposals are required to have at least two '''Mentors'''. The Mentors (including name, affiliation, and current Eclipse projects/roles) must be listed in the Proposal, along with their affiliations and their Eclipse projects. Mentors are required to monitor and advise the new Project during its Incubation Phase, but are released from that requirement once the Project graduates to the Mature Phase.  
 
+
<div style="border: 2px solid #8E87EB; padding: 6px;">Suggest:  that Mentors be listed in the Proposal, along with their affiliation, Eclipse projects, and project role ''--Scott Lewis''</div>
+
  
 
The Mentors must attend the Creation and Graduation Reviews and the Mentors must vote +1 for those Reviews to be successful. If the Mentors do not attend or do not vote positively, the Creation Review cannot be successful regardless of other feedback or votes.
 
The Mentors must attend the Creation and Graduation Reviews and the Mentors must vote +1 for those Reviews to be successful. If the Mentors do not attend or do not vote positively, the Creation Review cannot be successful regardless of other feedback or votes.
<div style="border: 2px solid #8E87EB; padding: 6px;">I have written more about councils and mentoring in [http://eclipse-projects.blogspot.com/2006/11/edp-councils-12-of-17.html the twelfth of a series of blog posts about the Development Process]. ''--Bjorn Freeman-Benson''</div>
 
  
 
==Project Lifecycle==
 
==Project Lifecycle==
Line 268: Line 207:
  
 
'''Incubation''' - After the project has been created, the purpose of the incubation phase is to establish a fully-functioning open-source project. In this context, incubation is about developing the process, the community, and the technology. Incubation is a phase rather than a place: new projects may be incubated under any existing Top-Level Project.  
 
'''Incubation''' - After the project has been created, the purpose of the incubation phase is to establish a fully-functioning open-source project. In this context, incubation is about developing the process, the community, and the technology. Incubation is a phase rather than a place: new projects may be incubated under any existing Top-Level Project.  
* The Incubation phase ends with a successful Graduation Review or a Termination Review.
 
<div style="border: 2px solid #8E87EB; padding: 6px;">note: the diagram does not depict this. ''--Jeff McAffer''</div>
 
 
* The Incubation phase may continue with a Continuation Review.
 
* The Incubation phase may continue with a Continuation Review.
 
* Top-Level Projects cannot be incubated and can only be created from existing Mature-phase Projects.
 
* Top-Level Projects cannot be incubated and can only be created from existing Mature-phase Projects.
 +
* The Incubation phase ends with a Graduation Review or a Termination Review.
  
 
Many Eclipse Projects are proposed and initiated by individuals with extensive and successful software development experience. This document attempts to define a process that is sufficiently flexible to learn from all its participants. At the same time, however, the Incubation phase is useful for new Projects to learn the community-defined Eclipse-centric open source processes.
 
Many Eclipse Projects are proposed and initiated by individuals with extensive and successful software development experience. This document attempts to define a process that is sufficiently flexible to learn from all its participants. At the same time, however, the Incubation phase is useful for new Projects to learn the community-defined Eclipse-centric open source processes.
  
<div style="border: 2px solid #8E87EB; padding: 6px;">Taking the discussion on the newsgroup and various discussions about quality, IP compliance and too many new projects into account, I would like to propose a slightly different process for the phases until end of incubation. To make the proposal easier to read I created a new wiki page that contains the proposal [[Development Process 2006 New Incubation]] ''--Jochen Krause''</div>
+
Only projects that are properly identified as being in the incubation phase may use the Parallel IP process to reduce IP clearance process for new contributions.
  
 
'''Mature''' - The project team has demonstrated that they are an open-source project with an open and transparent process; an actively involved and growing community; and Eclipse Quality technology. The project is now a mature member of the Eclipse Community. Major releases continue to go through Release Reviews.
 
'''Mature''' - The project team has demonstrated that they are an open-source project with an open and transparent process; an actively involved and growing community; and Eclipse Quality technology. The project is now a mature member of the Eclipse Community. Major releases continue to go through Release Reviews.
Line 282: Line 220:
 
* A Mature Project that does not release in given year may continue through a Continuation Review.
 
* A Mature Project that does not release in given year may continue through a Continuation Review.
 
* Inactive Mature phase projects may be archived through a Termination Review.
 
* Inactive Mature phase projects may be archived through a Termination Review.
<div style="border: 2px solid #8E87EB; padding: 6px;">
 
As ''Dave Bernstein'' suggested above, we should add:
 
* A Mature Project which has made sufficient cumulative changes to warrant increased visibility and review should initiate an Ongoing Review to surface these new directions to the membership-at-large.  ''--Bjorn Freeman-Benson''
 
</div>
 
  
 
'''Top-Level''' - Projects that have demonstrated the characteristics of a Top-Level Project (e.g., consistent leadership in a technical area and the recruitment of a wider developer community) can be promoted to Top-Level Project status. This promotion occurs through a Promotion Review. Upon the successful completion of a Promotion Review, the EMO(ED) may recommend that the project be promoted to the Board of Directors and ask that its Charter be reviewed and approved.
 
'''Top-Level''' - Projects that have demonstrated the characteristics of a Top-Level Project (e.g., consistent leadership in a technical area and the recruitment of a wider developer community) can be promoted to Top-Level Project status. This promotion occurs through a Promotion Review. Upon the successful completion of a Promotion Review, the EMO(ED) may recommend that the project be promoted to the Board of Directors and ask that its Charter be reviewed and approved.
  
<div style="border: 2px solid #8E87EB; padding: 6px;">Do we need to say more about TL projects?  Previously we had talked about down playing the distinction. Should we set expections as to how many TLPs there would be and why someone would want to have a TLP?  (ie., what are the differences/benefits) ''--Jeff McAffer''</div>
+
'''Archived''' - Projects that become inactive, either through dwindling resources or by reaching their natural conclusion, are archived. Projects can reach their natural conclusion in a number of ways: for example, a project might become so popular that it is absorbed into one of the other major frameworks. Projects are moved to Archived status through a Termination Review.  
  
'''Archived''' - Projects that become inactive, either through dwindling resources or by reaching their natural conclusion, are archived. Projects can reach their natural conclusion in a number of ways: for example, a project might become so popular that it is absorbed into one of the other major frameworks. Projects are moved to Archived status through a Termination Review.
+
If there is sufficient community interest in reactivating an Archived Project, the Project will start again with Creation Review. As there must be good reasons to have moved a Project to the Archives, the Creation Review provides a sufficiently high bar to prove that those reasons are no longer valid.  It also ensures that the original or updated project goals are still consistent with the Purposes and Roadmap.
 
+
<div style="border: 2px solid #8E87EB; padding: 6px;">Should it be possible for a project to come out of 'Archived' and back into 'Incubation' or 'Mature'? ''--Scott Lewis''
+
</div>
+
<div style="border: 2px solid #8E87EB; padding: 6px;">Yes, if there are people to reactivate the project. ''--Bjorn Freeman-Benson''</div>
+
<div style="border: 2px solid #8E87EB; padding: 6px;">Hmm...how is that different than a creation review? Does it matter if the project being created repurposes some existing materials? (Trying to understand what's special about adding the new transition and another type of review to the state diagram.) ''--Tim Wagner''</div>
+
<div style="border: 2px solid #8E87EB; padding: 6px;">Tim, you're probably right - it should just be a Creation Review - effectively a new project with some initial code from the archives.''--Bjorn Freeman-Benson''</div>
+
<div style="border: 2px solid #8E87EB; padding: 6px;">I agree that an archived project should go through a Creation Review to be reactivated.  There were likely good reasons why it became archived in the first place and a full creation review provides a sufficiently high bar to prove that those reasons are no longer valid.  It also ensures that the original (or updated) project goals are still consistent with the overall Eclipse goals.''-- Rich Main''</div>
+
<div style="border: 2px solid #8E87EB; padding: 6px;">Restore the Validation phase and its Checkpoint Review to the proposed revision, as they are essential. "We currently don't implement this phase or
+
hold this review" is not a justification for removing it. ''-- Dave Bernstein (copied from [http://dev.eclipse.org/newslists/news.eclipse.foundation/msg01305.html newsgroup] by Bjorn Freeman-Benson)''</div>
+
 
+
<div style="border: 2px solid #8E87EB; padding: 6px;">I have written more about the phases in [http://eclipse-projects.blogspot.com/2006/11/edp-phases-14-of-17.html the fourteenth of a series of blog posts about the Development Process]. ''--Bjorn Freeman-Benson''</div>
+
  
 
==Reviews==
 
==Reviews==
 
The Eclipse Development Process is predicated on open and transparent behavior. All major changes to Eclipse projects must be announced and reviewed by the membership-at-large. Major changes include the Project Phase transitions as well as the introduction or exclusion of significant new technology or capability. It is a clear requirement of this document that members who are monitoring the appropriate media channels (e.g., mailing lists or RSS feeds) not be surprised by the post-facto actions of the Projects.
 
The Eclipse Development Process is predicated on open and transparent behavior. All major changes to Eclipse projects must be announced and reviewed by the membership-at-large. Major changes include the Project Phase transitions as well as the introduction or exclusion of significant new technology or capability. It is a clear requirement of this document that members who are monitoring the appropriate media channels (e.g., mailing lists or RSS feeds) not be surprised by the post-facto actions of the Projects.
 
<div style="border: 2px solid #8E87EB; padding: 6px;">As suggested by ''Dave Bernstein'' above: Projects are responsible for initiating the appropriate reviews. However, if a Project does not do so and the EMO believes a Review is necessary, the EMO may initiate a Review on the Project's behalf. ''--Bjorn Freeman-Benson''
 
</div>
 
  
 
All Projects are required to have at least one Review per year.
 
All Projects are required to have at least one Review per year.
 
<div style="border: 2px solid #8E87EB; padding: 6px;">What review does a mature project that it not releasing yearly have? Or is there a requirement to release yearly? ''--Jeff McAffer''</div>
 
 
<div style="border: 2px solid #8E87EB; padding: 6px;">Jeff: if there is no other Review in a given year, a project must have a Continuation Review (see above). There is no requirement to release yearly. ''--Bjorn Freeman-Benson''</div>
 
  
 
For each '''Review''', the project leadership makes a presentation to, and receives feedback from, the Eclipse membership.  
 
For each '''Review''', the project leadership makes a presentation to, and receives feedback from, the Eclipse membership.  
Line 323: Line 239:
  
 
# The Review process begins with the Project's Leadership requesting that the PMC approve the request for review.  
 
# The Review process begins with the Project's Leadership requesting that the PMC approve the request for review.  
 +
## Projects are responsible for initiating the appropriate reviews. However, if a Project does not do so and the EMO believes a Review is necessary, the EMO may initiate a Review on the Project's behalf.
 
# A Review then continues with the Project's Leadership requesting that the EMO(ED) schedule the Review.  
 
# A Review then continues with the Project's Leadership requesting that the EMO(ED) schedule the Review.  
 
# No less than one week in advance of the Review conference call, and preferably at least two weeks in advance, the Project leadership provides the EMO with the archival presentation material.  
 
# No less than one week in advance of the Review conference call, and preferably at least two weeks in advance, the Project leadership provides the EMO with the archival presentation material.  
Line 328: Line 245:
 
## The presentation material must be available in a format that anyone in the Eclipse membership can review. For example, Microsoft Powerpoint files are not an acceptable single format - such files may be one of the formats, but not the only format. Similarly for Apple Keynote files and Microsoft Word files. PDF and HTML are acceptable single formats.
 
## The presentation material must be available in a format that anyone in the Eclipse membership can review. For example, Microsoft Powerpoint files are not an acceptable single format - such files may be one of the formats, but not the only format. Similarly for Apple Keynote files and Microsoft Word files. PDF and HTML are acceptable single formats.
 
## The presentation material must have a correct copyright statement and be licensed under the EPL.
 
## The presentation material must have a correct copyright statement and be licensed under the EPL.
## The presentation material must be ''archival quality''. This means that the materials must comprehensible and complete on their own without requiring explanation by a human presenter.
+
## The presentation material must be ''archival quality''. This means that the materials must be comprehensible and complete on their own without requiring explanation by a human presenter.
 
# The EMO announces the Review schedule and makes the presentation materials available to the membership-at-large.
 
# The EMO announces the Review schedule and makes the presentation materials available to the membership-at-large.
  
 
The criteria for the successful completion of each type of Review will be documented in writing by the EMO in guidelines made available via the www.eclipse.org website. Such guidelines will include, but are not limited to the following:
 
The criteria for the successful completion of each type of Review will be documented in writing by the EMO in guidelines made available via the www.eclipse.org website. Such guidelines will include, but are not limited to the following:
 
# Clear evidence that the project has vibrant committer, adopter and user communities as appropriate for the type of Review.
 
# Clear evidence that the project has vibrant committer, adopter and user communities as appropriate for the type of Review.
# Reasonable diversity in its committer population as appropriate for the type of Review.
+
# Reasonable diversity in its committer population as appropriate for the type of Review. Diversity status must be provided not only as number of people/companies, but also in terms of effort provided by those people/companies.  
 
# Documented completion of all required due diligence under the [http://www.eclipse.org/org/documents/Eclipse%20IP%20Policy2006_03_20.pdf Eclipse IP Policy].
 
# Documented completion of all required due diligence under the [http://www.eclipse.org/org/documents/Eclipse%20IP%20Policy2006_03_20.pdf Eclipse IP Policy].
 
# Balanced progress in creating both frameworks and extensible, exemplary tools.
 
# Balanced progress in creating both frameworks and extensible, exemplary tools.
 +
# Showcase the project's quality through project-team chosen metrics and measures, e.g., coupling, cyclomatic complexity, test/code coverage, documentation of extensions points, etc.
  
 
The Review itself:<br>
 
The Review itself:<br>
Line 342: Line 260:
 
# During the conference call, the Project Leadership (or EMO appointed Project representative) provides a brief summary of the reasons and justifications for the phase transition followed by a question and answer session.
 
# During the conference call, the Project Leadership (or EMO appointed Project representative) provides a brief summary of the reasons and justifications for the phase transition followed by a question and answer session.
 
# After the conference call, the Review remains active for open and transparent discussion amongst the membership-at-large via the Project-appropriate mailing lists, newsgroups, or other designated forums.
 
# After the conference call, the Review remains active for open and transparent discussion amongst the membership-at-large via the Project-appropriate mailing lists, newsgroups, or other designated forums.
# At the end of the Review period, the EMO(ED) holds a public vote.
+
# At the end of the Review period, the EMO(ED) holds a public advisory vote of all Eclipse Members (which for clarity includes Committers Members as defined in [http://www.eclipse.org/org/documents/Eclipse%20BYLAWS%202003_11_10%20Final.pdf#page=5 the Bylaws 3.3(d)]). Votes may be cast early via the appropriate mailing list, but are not counted until the end of the Review period.
<div style="border: 2px solid #8E87EB; padding: 6px;">Voting procedures must be consistent with the Eclipse Bylaws.  That should guide the discussion below. ''-- Rich Main''</div>
+
## A successful advisory vote requires at least three +1s from the Membership external to the Project's Leadership Chain.
<div style="border: 2px solid #8E87EB; padding: 6px;">Rich, an excellent point: if we change the Review process to include a vote from the Membership-At-Large then we must abide by the voting rules in [http://www.eclipse.org/org/documents/Eclipse%20BYLAWS%202003_11_10%20Final.pdf#page=13 the Bylaws]. Those rules include the "multiple committers from a single member are entitled to only one (collective) vote". ''--Bjorn Freeman-Benson''</div>
+
## A successful advisory vote requires at least one +1 from each level of the Project's Leadership Chain.
 +
## A successful advisory vote requires no upheld -1s. An ''Upheld -1'' is a -1 that is followed within 24 hours by open, transparent, and public justification, and that justification is accepted by the EMO. Rejected -1s count as 0s.
 +
## A successful advisory vote requires, if applicable, +1s from each of the Project's Mentors.
 +
# The EMO(ED) approves or fails the Review based on the public advisory vote, the scope of the Project, and the Purposes of the Eclipse Foundation as defined in the Bylaws.
  
## All Eclipse members are eligible voters. For corporate members, their vote must be cast by the delegate for that member.
+
If any Member believes that the EMO has acted incorrectly in approving or failing a Review may appeal to the Board to review the EMO's decision.
## A successful vote requires +1s from the Project's Leadership Chain.
+
  
<div style="border: 2px solid #8E87EB; padding: 6px;"> may need to define that more clearly.  How many +1s at each level? ''--Jeff McAffer''</div>
+
===Creation Review===
## At least three +1s from members who are not Committers on the Project and not part of the Project's Leadership Chain.
+
The purpose of the Creation Review is: to assess the community and membership response to the proposal, to verify that appropriate resources are available for the project to achieve its plan, and to serve as a committer election for the project's initial Committers. The Eclipse Foundation strives not to be a repository of ''code dumps'' and thus projects must be sufficiently staffed for forward progress.  
  
## No upheld -1s. An ''Upheld -1'' is a -1 that is followed within 24 hours by open, transparent, and public justification, and that justification is accepted by the EMO. Frivolous or unjustified -1s are ignored. Reject -1s count as 0s.
+
The Creation Review must include a short bio of the proposed initial committers. [Not a] life story, but their relationship to and history with the incoming code and/or their involvement with the area/technologies covered by the proposal. The goal is to help keep any legacy contributors connected to new project and explain that connection to the current and future Eclipse membership, as well as justify the initial Committers' participation in a meritocracy.(See [http://mail-archives.apache.org/mod_mbox/incubator-general/200610.mbox/%3c4522A123.5090400@rowe-clan.net%3e])
# The EMO(ED) approves or fails the Review based on the public vote, the scope of the Project, and the Purposes of the Eclipse Foundation as defined in the Bylaws.
+
  
<div style="border: 2px solid #8E87EB; padding: 6px;">Various people have different thoughts about how many +1s are needed to pass a review. We'd like your opinions right here on this wiki page. Some have said 3 +1s; some have said at least 4 +1s; etc. There has also been discussion about who can vote: Eclipse members who are not on the Project? Architecture Council members? all Eclipse members? ''--Bjorn Freeman-Benson''</div>
+
===Graduation Review===
 +
The purpose of the Graduation Review is to confirm that the Project is/has:
 +
* a working and demonstratable code base of sufficiently high quality
 +
* active and sufficiently diverse communities: adopters, developers, and users
 +
* operating fully in the open following the Principles and Purposes of Eclipse
 +
* a credit to Eclipse and is functioning well within the larger Eclipse community
  
<div style="border: 2px solid #8E87EB; padding: 6px;">I think 3 +1s.  This is a significantly higher hurdle than currently (EMO+project team only).  I would leave the voting up to to entire (non-project team) membership ''--Scott Lewis''</div>
+
===Release Review===
 +
The purposes of a Release Review are: to summarize the accomplishments of the release, to verify that the IP Policy has been followed and all approvals have been received, to highlight any remaining quality and/or architectural issues, and to verify that the project is continuing to operate according to the Princples and Purposes of Eclipse.
  
<div style="border: 2px solid #8E87EB; padding: 6px;">We might include a list of criteria for specific Review types here. Not the full list for each Review type, but the essential items that are not part of the generic list above. ''--Bjorn Freeman-Benson''</div>
+
===Promotion Review===
 +
The purpose of a Promotion Review is to determine if the Project has demonstrated the characteristics of a Top-Level Project, e.g., consistent leadership in a technical area and the recruitment of a wider developer community. The Project will already be a well-functioning Mature Eclipse Project, so evidence to the contrary will be a negative for promotion. Top-Level Projects, both through their existance and their Council memberships, have substantial influence over direction and operation of Eclipse, thus it behooves the membership to grant Top-Level status only for merit: for demonstrated service to the larger Eclipse eco-system.
  
<div style="border: 2px solid #8E87EB; padding: 6px;">At one point we talked about requiring some number of Architecture Council votes. In the case of a graduation review, the mentors (aka arch council members) must vote +1. Should the same be true for release reviews etc.  Personally I vote +1 for having required arch council representation. ''--Jeff McAffer''</div>
+
===Continuation Review===
 +
The purpose of a Continuation Review is to verify that a Proposal or Project continues to be a viable effort and a credit to Eclipse. The Project team will be expected to explain the recent technical progress and to demonstrate sufficient adopter, developer, and user support for the Project. The goal of the Continuation Review is to avoid having inactive projects looking promising but never actually delivering extensible frameworks and exemplary tools to the ecosystem.
  
<div style="border: 2px solid #8E87EB; padding: 6px;">Jeff: that is explained in the "Mentors" section [http://wiki.eclipse.org/index.php/Development_Process_2006_Revision#Mentors]. Perhaps it should be moved here. ''--Bjorn Freeman-Benson''</div>
+
===Termination Review===
 
+
The purpose of a Termination Review is to provide a final opportunity for the Committers and/or Eclipse membership to discuss the proposed withdrawl of a Proposal or archiving of a Project. The desired outcome is to find sufficient evidence of renewed interest and resources in keeping the Project or Proposal active.
<div style="border: 2px solid #8E87EB; padding: 6px;">Re: creation reviews, [http://mail-archives.apache.org/mod_mbox/incubator-general/200610.mbox/%3c4522A123.5090400@rowe-clan.net%3e William Rowe on the Apache incubation mailing list] has a suggestion for Apache that perhaps we should adopt for Eclipse: creation reviews must include "a short biographical on the proposed participants.  [Not a] life story, but their relationship to and history with the incoming code and/or their involvement with the area/technologies covered by the proposal. ... For OSS transitions from another home, this can often be a short 'Author of the Foo container bits, see also ralphj commits to ___ and mailing list participation on dev@example.com', or 'contributing author to spec X'. ... For Corporate contributions, this has to be more detailed.  At the very least, justify the individual's participation -in the code-. .. This would serve to help keep legacy contributors connected to the effort, and explain that connection to newcomers, but justify their participation in a meritocracy.  It will help the project, four years down the road, do a /whois and come up with something meaningful about any of their members." ''--Bjorn Freeman-Benson''</div>
+
 
+
<div style="border: 2px solid #8E87EB; padding: 6px;">Scope of projects suitable for Eclipse - Not sure if this is the best place for this comment (guess we can always move it later) - I haven't seen any discussion of the scope of projects suitable for Eclipse aside from the projects needing to support users, developers and adopters (if I have missed it please point it out so I can retract my comment). There are several prominent open source communities and I think rather than try to tackle all manner of projects Eclipse should cut out a section of projects that it will develop and work with the other communities to develop other projects not appropriate for Eclipse. Cutting out a section of projects is not meant to limit people but rather meant to maintain the Eclipse brand and avoid potentially diluting it with many projects that are unrelated in any way. (i.e. Currently most projects are related by extending the IDE of being useful tool frameworks.) ''--Lawrence Mandel''</div>
+
 
+
<div style="border: 2px solid #8E87EB; padding: 6px;">Lawrence: the kinds of projects suitable for Eclipse are defined in the Bylaws [http://www.eclipse.org/org/documents/Eclipse%20BYLAWS%202003_11_10%20Final.pdf#search=%22eclipse%20bylaws%22] and is referenced above in the first paragraph of the "Development Process" section [http://wiki.eclipse.org/index.php/Development_Process_2006_Revision#Development_Process]. ''--Bjorn Freeman-Benson''</div>
+
 
+
If any Member believes that the EMO has acted incorrectly in approving or failing a Review may appeal to the Board to review the EMO's decision.
+
 
+
<div style="border: 2px solid #8E87EB; padding: 6px;">While the revision describes the proposed phases, it says little about the function and content of the proposed creation review, incubation review, promotion review, release review, or termination review. ''-- Dave Bernstein (copied here from [http://dev.eclipse.org/newslists/news.eclipse.foundation/msg01291.html the newsgroup] by Bjorn Freeman-Benson''</div>
+
  
 
==Membership Involvement==
 
==Membership Involvement==
Line 382: Line 300:
 
* Number and identification of all explicit abstentions (0)
 
* Number and identification of all explicit abstentions (0)
 
* Number and identification of all explicit negative (-1) votes
 
* Number and identification of all explicit negative (-1) votes
* A statement that all other Eclipse members have implicitly voted positively
 
  
 
==Grievance Handling==
 
==Grievance Handling==
Line 393: Line 310:
 
* '''Contributor Appeal.''' It is alleged that a Contributor who desires to be a Committer is not being treated fairly.
 
* '''Contributor Appeal.''' It is alleged that a Contributor who desires to be a Committer is not being treated fairly.
 
* '''Invalid Veto''' It is alleged that a -1 vote on a Review is not in the interests of the Project and/or of Eclipse.
 
* '''Invalid Veto''' It is alleged that a -1 vote on a Review is not in the interests of the Project and/or of Eclipse.
 +
 +
A variety of grievance resolutions are available to the EMO up to, and including, rebooting or restarting a project with new Committers and leadership.
  
 
=Revisions=
 
=Revisions=

Latest revision as of 21:13, 17 March 2007

Revision 2.3.1

This draft document was approved by the Eclipse Foundation Board of Directors in its meeting on January 17, 2007. It replaces the original 2003 Development Process. The official approved version, along with guidelines and interpretations, is on the Eclipse website at [1].

This is the draft of version as by the Board of Directors - the initial version and the community comments are here: Development Process 2006 Revision --Mike Milinkovich and Bjorn Freeman-Benson

Purpose

This document describes the Development Process for the Eclipse Foundation. In particular, it describes how the Membership at Large, the Board of Directors, other constituents of the Ecosystem, and the Eclipse Management Organization (EMO) lead, influence, and collaborate with Eclipse Projects to achieve these Eclipse purposes:

The Eclipse technology is a vendor-neutral, open development platform supplying

frameworks and exemplary, extensible tools (the 'Eclipse Platform'). Eclipse Platform tools are exemplary in that they verify the utility of the Eclipse frameworks, illustrate the appropriate use of those frameworks, and support the development and maintenance of the Eclipse Platform itself; Eclipse Platform tools are extensible in that their functionality is accessible via documented programmatic interfaces. The purpose of Eclipse Foundation Inc., (the “Eclipse Foundation”), is to advance the creation, evolution, promotion, and support of the Eclipse Platform and to cultivate both an

open source community and an ecosystem of complementary products, capabilities, and services.

This document has five sections:

  1. Principles outlines the basic principles upon which the development process is based.
  2. Requirements describes the requirements that the Eclipse community has for its development process.
  3. Structure and Organization specifies the structure and organization of the projects and project community at Eclipse.
  4. Roadmap Process describes the manner by which the EMO will work with the projects to create the annual Eclipse Roadmap.
  5. Development Process outlines the lifecycle and processes required of all Eclipse projects.

Principles

The following describe the guiding principles used in developing this Development Process.

Open Source Rules of Engagement

  • Open - Eclipse is open to all; Eclipse provides the same opportunity to all. Everyone participates with the same rules; there are no rules to exclude any potential contributors which include, of course, direct competitors in the marketplace.
    • As a further explanation of Open, we include Permeable and Receptive - Projects are open to new ideas and new committers; not just in words, but in fact. In other words, those outside the core can, and do, influence and join the project.
  • Transparent - Project discussions, minutes, deliberations, project plans, plans for new features, and other artifacts are open, public, and easily accessible.
  • Meritocracy - Eclipse is a meritocracy. The more you contribute the more responsibility you will earn. Leadership roles in Eclipse are also merit-based and earned by peer acclaim.

Quality Culture

In this context, quality means extensible frameworks and exemplary tools developed in an open, inclusive, and predictable process involving the entire community.

  • From the "consumption perspective," Eclipse Quality means good for users (exemplary tools - cool/compelling to use, indicative of what is possible) and ready for plug-in developers (deliver usable frameworks with platform-ready APIs). The direct involvement of developers in use, reuse, testing, and feedback of components is essential to improving the quality.
  • From the "creation perspective," Eclipse Quality means working with an open, transparent, and receptive process, open (and welcoming) to participation from technical leaders, regardless of affiliation.
  • From the "community perspective," Eclipse Quality is that the community perceives quality, i.e., if the frameworks and tools are good enough to be used, then they have sufficient quality.
  • From the "collective perspective," Eclipse Quality is the integration of the disparate Eclipse components into a unified whole, i.e., the value of the Eclipse brand as a whole over the individual projects.

The Eclipse projects are managed by different people and different organizations, most already experienced in software engineering. We want to ensure that we share the best practices of all our experts so that all projects benefit. We need to ensure that we have an "Eclipse committer community" rather than dozens of smaller "project committer communities".

Collective Reputation

Having the Eclipse name on a project provides a certain "goodness" to the project. And having great and amazing projects under the Eclipse banner provides a certain "goodness" to Eclipse. Correspondingly, having a highly-visible poor, closed, and/or failing project under the Eclipse banner detracts from that reputation.

A certain number of failures are expected in any research and development effort, thus we do not let the fear of failure prevent us from accepting interesting project. However, it is in the community's best interest to have a well-defined process for identifying and dealing with failures when they occur.

Eclipse Ecosystem

The Eclipse Foundation has the responsibility to ...cultivate...an ecosystem of complementary products, capabilities, and services.... It is therefore a key principle that the Eclipse Development Process ensures that the projects are managed for the benefit of both the open source community and the ecosystem members. To this end, all Eclipse projects are required to:

  • communicate their project plans and plans for new features (major and minor) in a timely, open and transparent manner;
  • create platform quality frameworks capable of supporting the building of commercial grade products on top of them;
  • ship extensible, exemplary tools which help enable a broad community of users; and
  • participate in the annual Roadmap process to ensure maximum transparency and bi-directional communication with the ecosystem.

Three Communities

Essential to the Purposes of the Eclipse Foundation is the development of three inter-related communities around each Project:

  • Contributors and Committers - a thriving, diverse and active community of developers is the key component of any Eclipse Project. Ideally, this community should be an open, transparent, inclusive, and diverse community of Committers and (non-Committer) Contributors. Attracting new Contributors and Committers to an open source project is time consuming and requires active recruiting, not just passive "openness". The Project Leadership must make reasonable efforts to encourage and nurture promising new Contributors.
    • Projects must have the diversity goals to ensure diversity of thought and avoiding relying on any one company or organization. At the same time, we acknowledge that enforcing a particular diversity metric is a poor way to achieve these goals; rather we expect the project leadership to help the diversity evolve organically.
    • Diversity is a means to an end, not an end in itself, thus diversity goals will differ by project based on the other accomplishments of the project(s).
    • Project are required to explain their diversity efforts and accomplishments during Reviews.
  • Users - an active and engaged user community is proof-positive that the Project's exemplary tools are useful and needed. Furthermore, a large user community is one of the key factors in creating a viable ecosystem around an Eclipse project, thus encouraging additional open source and commercial organizations to participate. Like all good things, a user community takes time and effort to bring to fruition, but once established is typically self-sustaining.
  • Adopters - an active and engaged adopter/plug-in developer community is only way to prove that an Eclipse project is providing extensible frameworks and extensible tools accessible via documented APIs. Reuse of the frameworks within the companies that are contributing to the project is necessary, but not sufficient to demonstrate an adopter community. Again, creating, encouraging, and nurturing an adopter community outside of the Project's developers takes time, energy, and creativity by the Project Leadership, but is essential to the Project's long-term open source success.

The Eclipse community considers the absence of any one or more of these communities as proof that the Project is not sufficiently open, transparent, and inviting, and/or that it has emphasized tools at the expense of extensible frameworks or vice versa.

Clear and Concise

It is an explicit goal of the Development Process to be as clear and concise as possible so as to help the Project teams navigate the complexities, avoid the pitfalls, and become successful as quickly as possible.

Freedom, Autonomy and Evolution

This document imposes requirements and constraints on the operation of the Projects, and it does so on behalf of the larger Eclipse community. It is an explicit goal of the Development Process to provide as much freedom and autonomy to the Projects as possible while ensuring the collective qualities benefit the entire Eclipse community.

Similarly, this document should not place undue constraints on the EMO or the Board that prevent them from governing the process as necessary. We cannot foresee all circumstances and as such should be cautious of being overly prescriptive and/or requiring certain fixed metrics.

The frameworks, tools, projects, processes, community, and even the definition of Quality continues to, and will continue to, evolve. Creating rules or processes that force a static snapshot of any of these is detrimental to the health, growth, and ecosystem impact of Eclipse.

Part of the strength of this document is in what it does not say, and thus opens for community definition through convention, guidelines, and public consultation. A document with too much structure becomes too rigid and prevents the kind of innovation and change we desire for Eclipse. In areas where this document is vague, we expect the Projects and Members to engage the community-at-large to clarify the current norms and expectations.

Just Enough Process

The Eclipse Development Process should be "just enough" to ensure that the community's goals (quality, openness, etc), but no more - we want to make it easy and inviting for high-quality teams to build interesting software at Eclipse. The entry bar should be "just high enough" to keep Eclipse great, but no more - we want to make it easy to experiment and explore new ideas while simultaneously supporting the ecosystem with strong releases. The entry bar should be "just high enough" to prevent Eclipse from growing too fast (because too rapid growth places too much of a strain on the mentoring capacity of the existing community) yet "just low enough" to prevent it from stagnating.

  • The processes and goals should make projects:
    • Easy to propose
    • Fairly easy to create (e.g., enter incubation)
    • Kinda hard to graduate (e.g., exit incubation)
    • Pretty tough to ship
  • The processes are designed to enhance the middle ground of continued quality growth in Eclipse projects by eliminating the two undesirable endpoints:
    • an entry bar so low that it results in a random collection of low-quality projects, and
    • an entry bar so high that an insufficient number of new projects are created.

Requirements

This document and any additional criteria as established by the EMO contain requirements, recommendations, and suggestions.

RRequired - Certain responsibilities and behaviors are required of participants in Eclipse open source projects. Projects that fail to perform the required behaviors will be terminated by the EMO. In keeping with the Guiding Principles, the number of requirements must be kept to an absolute minimum.

GGuideline - Other responsibilities and behaviors are recommended best practices. Collectively, we have learned that Projects are more likely to be successful if the team members and leaders follow these recommendations. Projects are strongly encouraged to follow these recommendations, but will not be penalized by this Process if they do not.

Requirements and Guidelines

This document is entirely composed of requirements. In addition to the requirements specified in this Development Process, the EMO is instructed to clarify, expand, and extend this Process by creating a set of Eclipse Project Development Guidelines to advance the creation, evolution, promotion, and support of the Eclipse Platform and to cultivate both an open source community and an ecosystem of complementary products and services.

The EMO is not permitted to override or ignore the requirements listed in this document without the express written endorsement of the Board of Directors.

Structure and Organization

The Eclipse Projects are organized hierarchically. The top of the hierarchy are the set of Top Level Projects. Each Top Level Project contains zero or more Projects (for linguistic clarity, Projects as often referred to as Sub-Projects). Projects may contain one or more Components. Components are dependent, managed by the enclosing Project, and do not have independent release schedules.

As defined by the Eclipse Bylaws - Article VII, the Eclipse Management Organization (EMO) consists of the Foundation staff and the Councils. The term EMO(ED), when discussing an approval process, refers to the subset of the EMO consisting of the Executive Director and whomever he or she may delegate that specific approval authority to.

Charter

Each Top-Level Project has a Charter which describes the purpose, Scope, and operational rules for the Top-Level Project. The Charter should refer to, and describe any refinements to, the provisions of this Development Process. The Board approves the Charter of each Top-Level Project.

Sub-Projects do not have separate Charters; Sub-Projects operate under the Charter of their parent Top-Level Project.

Scope

All Projects have a defined Scope and all initiatives within that Project are required to reside within that Scope. Initiatives and code that is found to be outside the Scope of a Project may result in the termination of the Project. The Scope of Top-Level Projects is part of the Charter, as approved by the Board of Directors of the Eclipse Foundation.

The Scope of sub-projects and components is defined by the initial project proposal as reviewed and approved by the Project Management Committee (PMC) (as further defined below) of the Project's parent Top-Level Project and the EMO. A Project's Scope must be a subset of the parent Top-Level Project's Scope.

Management

Top-Level Projects are managed by a Project Management Committee (PMC). Sub-Projects are managed by one or more Project Leaders. The Project Leaders, the Project Leaders of all the Project's parent Projects, and the PMC of the Project's Top-Level parent are referred to as the Project Leadership Chain.

PMC Leads are approved by the Board; PMC members and Project Leads are approved by the EMO(ED). The initial Project Leadership is appointed and approved in the Creation Review. Subsequently, additional Project Leadership (PMC members or Project co-Leads) must be approved unanimously by the existing Project Leadership and the Board or EMO(ED) (as appropriate). In the unlikely event that a member of the Project Leadership becomes disruptive to the process or ceases to contribute for an extended period, the member may be removed by (a) if there are at least two other Project Leaders, then unanimous vote of the remaining Project Leadership; or (b) unanimous vote of the Project Leadership of the parent Project.

Each Project's leadership is required to:

  • ensure that the Project is operating effectively by guiding the Project's overall direction and by removing obstacles, solving problems, and resolving conflicts
  • ensure that all Project plans, technical documents and reports are publicly available and up-to-date
  • notify the membership-at-large of all major new features and new code contributions via the defined membership notification mechanism (e.g., specific mailing list). This notification must occur in advance of the code being committed to the source respository.
  • 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.
  • work effectively with other Eclipse projects with which it has touchpoints.

Active participation in the user newsgroups and the appropriate developer mailing lists is a required responsibility of all Project Leaders and is critical to the success of the Project.

Project Team

Each Project has a Development Team, led by a Project Lead. The Development Team is composed of Committers and Contributors. Contributors are individuals who contribute code, fixes, tests, documentation, or other work that is part of the Project. Committers have write access to the source code repository(ies) for the associated Project and are expected to influence the Project's development.

Contributors who have the trust of the Project's Committers can, through election, be promoted Committer for that Project using the process as specified in the Charter of the relevant Top-Level Project. The breadth of a Committer's influence corresponds to the breadth of their contribution. A Development Team's Contributors and Committers may (and should) come from a diverse set of organizations. A Committer has write access to the source code repository for the Project and/or website and/or bug tracking system. A Committer gains voting rights allowing them to affect the future of the Project. Becoming a Committer is a privilege that is earned by contributing and showing discipline and good judgment. It is a responsibility that should be neither given nor taken lightly, nor is it a right based on employment by an Eclipse Member company or any company employing existing committers.

The nomination and election process for Committers to a Project must follow the Eclipse principles by being open and transparent.

Committer, PMC Lead, Project Lead, and Council Representative(s) are roles; an individual may take on more than one of these roles simultaneously.

Councils

The three Councils defined in Bylaws section VII are comprised of Strategic members and PMC representatives. The three Councils help guide the Projects as follows:

  • The Requirements Council is primarily responsible for the Eclipse Roadmap. There will always be more requirements than there are resources to satisfy them, thus the Requirements Council gathers, reviews, and categorizes all of these incoming requirements - from the entire Eclipse ecosystem - and proposes a coherent set of Themes and Priorities.
  • The Planning Council is responsible for establishing a coordinated Simultaneous Release (a.k.a, "the release train") that supports the Themes and Priorities in the Roadmap. The Planning Council is responsible for cross-project planning, architectural issues, user interface conflicts, and all other coordination and integration issues. The Planning Council discharges its responsibility via collaborative evaluation, prioritization, and compromise.
  • The Architecture Council is responsible for the development, articulation, and maintenance of the Eclipse Platform Architecture and ensuring the Principles of the Development Process through mentorship. Membership in the Architecture Council is per the Bylaws through Strategic Membership, PMCs, and by appointment. The Architecture Council will, at least annually, recommend to the EMO(ED), Eclipse Members who have sufficient experience, wisdom, and time to be appointed to the Architecture Council and serve as mentors. Election as a Mentor is a highly visible confirmation of the Eclipse community's respect for the candidate's technical vision, good judgement, software development skills, past and future contributions to Eclipse. It is a role that should be neither given nor taken lightly. Appointed members of the Architecture Council are appointed to three year renewable terms.

Roadmap Process

Eclipse Roadmap Process Diagram

The Roadmap describes the collective Eclipse Projects future directions and consists of two parts:

  1. Themes and Priorities from the Requirements Council
  2. Simultaneous Release Plan from the Planning Council

The Roadmap must be consistent with the Purposes as described in Bylaws section 1.1. It is developed using the prescribed roadmap process.

The Roadmap is prepared by the Councils and approved by the Board annually. A proposed Roadmap or Roadmap update is disseminated to the Membership at Large for comment and feedback in advance of its adoption. This dissemination and all discussion and debate around the Roadmap must be held in an open and transparent public forum, such as mailing lists or newsgroups.

Prior to any Board vote to approve a Roadmap or Roadmap update, every Member has the right to communicate concerns and objections to the Board.

The process of producing or updating the Roadmap is expected to be iterative. An initial set of Themes and Priorities may be infeasible to implement in the desired timeframe; subsequent consideration may reveal new implementation alternatives or critical requirements that alter the team’s perspective on priorities. The EMO orchestrates interaction among and within the Councils to drive the Roadmap to convergence.

This Development Process, the EMO, the Councils, and the Projects all acknowledge that the success of the Eclipse ecosystem is dependent on a balanced set of requirements and implementations. A Roadmap that provides too large a burden on the Projects will be rejected and ignored; similarly, a Roadmap that provides no predictable Project plans will be unhelpful to the business and technical plans being created by the ecosystem. A careful balance of demands and commitments is essential to the ongoing success of the Eclipse Projects, frameworks, and ecosystem.

The Project Leadership is expected to ensure that their Project Plans are consistent with the Roadmap, and that all plans, technical documents and reports are publicly available. To meet this requirement, each Project is expected to create a transparently available Project Plan meets the following criteria:

  1. Enumerates the areas of change in the frameworks and tools for each proposed Release
  2. Consistent with and categorized in terms of the themes and priorities of the Roadmap
  3. Identifies and accommodates cross-project dependencies
  4. Addresses requirements critical to the Ecosystem and/or the Membership at Large
  5. Advances the Project in functionality, quality, and performance

A Project may incrementally revise their Project Plan to deliver additional tasks provided:

  1. the approved Roadmap is not put in jeopardy; and
  2. the work is consistent with the Project Plan criteria (as described above)

Development Process

All Eclipse Projects, and hence all Project Proposals, must be consistent with the Purposes and the then-current Roadmap.

Projects must work within their Scope. Projects that desire to expand beyond their current Scope must seek an enlargement of their Scope using a public Review as described below.

All projects are required to report their status at least quarterly using the EMO defined status reporting procedures.

Projects must provide advanced notification of upcoming features and frameworks via their Project Plan and the appropriate public announcement communication channels.

Mentors

New Proposals are required to have at least two Mentors. The Mentors (including name, affiliation, and current Eclipse projects/roles) must be listed in the Proposal, along with their affiliations and their Eclipse projects. Mentors are required to monitor and advise the new Project during its Incubation Phase, but are released from that requirement once the Project graduates to the Mature Phase.

The Mentors must attend the Creation and Graduation Reviews and the Mentors must vote +1 for those Reviews to be successful. If the Mentors do not attend or do not vote positively, the Creation Review cannot be successful regardless of other feedback or votes.

Project Lifecycle

Development-process.gif

Projects go through six distinct phases. The transitions from phase to phase are open and transparent public reviews.

Pre-proposal - An individual or group of individuals declares their interest in, and rationale for, establishing a project. The EMO will assist such groups in the preparation of a project Proposal.

  • The Pre-proposal phase ends when the Proposal is published by EMO and announced to the membership by the EMO.

Proposal - The proposers, in conjunction with the destination PMC and the community, collaborate in public to enhance, refine, and clarify the proposal. Mentors for the project must be identified during this phase.

  • The Proposal phase ends with a Creation Review or a Termination Review.

Incubation - After the project has been created, the purpose of the incubation phase is to establish a fully-functioning open-source project. In this context, incubation is about developing the process, the community, and the technology. Incubation is a phase rather than a place: new projects may be incubated under any existing Top-Level Project.

  • The Incubation phase may continue with a Continuation Review.
  • Top-Level Projects cannot be incubated and can only be created from existing Mature-phase Projects.
  • The Incubation phase ends with a Graduation Review or a Termination Review.

Many Eclipse Projects are proposed and initiated by individuals with extensive and successful software development experience. This document attempts to define a process that is sufficiently flexible to learn from all its participants. At the same time, however, the Incubation phase is useful for new Projects to learn the community-defined Eclipse-centric open source processes.

Only projects that are properly identified as being in the incubation phase may use the Parallel IP process to reduce IP clearance process for new contributions.

Mature - The project team has demonstrated that they are an open-source project with an open and transparent process; an actively involved and growing community; and Eclipse Quality technology. The project is now a mature member of the Eclipse Community. Major releases continue to go through Release Reviews.

  • Mature phase projects have Releases through a Release Review.
  • A Mature Projects may be promoted to a Top-Level Project through a Promotion Review.
  • A Mature Project that does not release in given year may continue through a Continuation Review.
  • Inactive Mature phase projects may be archived through a Termination Review.

Top-Level - Projects that have demonstrated the characteristics of a Top-Level Project (e.g., consistent leadership in a technical area and the recruitment of a wider developer community) can be promoted to Top-Level Project status. This promotion occurs through a Promotion Review. Upon the successful completion of a Promotion Review, the EMO(ED) may recommend that the project be promoted to the Board of Directors and ask that its Charter be reviewed and approved.

Archived - Projects that become inactive, either through dwindling resources or by reaching their natural conclusion, are archived. Projects can reach their natural conclusion in a number of ways: for example, a project might become so popular that it is absorbed into one of the other major frameworks. Projects are moved to Archived status through a Termination Review.

If there is sufficient community interest in reactivating an Archived Project, the Project will start again with Creation Review. As there must be good reasons to have moved a Project to the Archives, the Creation Review provides a sufficiently high bar to prove that those reasons are no longer valid. It also ensures that the original or updated project goals are still consistent with the Purposes and Roadmap.

Reviews

The Eclipse Development Process is predicated on open and transparent behavior. All major changes to Eclipse projects must be announced and reviewed by the membership-at-large. Major changes include the Project Phase transitions as well as the introduction or exclusion of significant new technology or capability. It is a clear requirement of this document that members who are monitoring the appropriate media channels (e.g., mailing lists or RSS feeds) not be surprised by the post-facto actions of the Projects.

All Projects are required to have at least one Review per year.

For each Review, the project leadership makes a presentation to, and receives feedback from, the Eclipse membership.

A Review is a fairly comprehensive process. Gathering the material for a Review and preparing the presentation is a non-trivial effort, but the introspection offered by this exercise is useful for the Project and results are very useful for the entire Eclipse community. In addition, Reviews have a specific relationship to the requirements of the Eclipse IP Policy.

All Reviews have the same general process:

  1. The Review process begins with the Project's Leadership requesting that the PMC approve the request for review.
    1. Projects are responsible for initiating the appropriate reviews. However, if a Project does not do so and the EMO believes a Review is necessary, the EMO may initiate a Review on the Project's behalf.
  2. A Review then continues with the Project's Leadership requesting that the EMO(ED) schedule the Review.
  3. No less than one week in advance of the Review conference call, and preferably at least two weeks in advance, the Project leadership provides the EMO with the archival presentation material.
    1. The presentation material always includes a summary slide presentation. The minimum contents of the presentation are proscribed by the individual Review types.
    2. The presentation material must be available in a format that anyone in the Eclipse membership can review. For example, Microsoft Powerpoint files are not an acceptable single format - such files may be one of the formats, but not the only format. Similarly for Apple Keynote files and Microsoft Word files. PDF and HTML are acceptable single formats.
    3. The presentation material must have a correct copyright statement and be licensed under the EPL.
    4. The presentation material must be archival quality. This means that the materials must be comprehensible and complete on their own without requiring explanation by a human presenter.
  4. The EMO announces the Review schedule and makes the presentation materials available to the membership-at-large.

The criteria for the successful completion of each type of Review will be documented in writing by the EMO in guidelines made available via the www.eclipse.org website. Such guidelines will include, but are not limited to the following:

  1. Clear evidence that the project has vibrant committer, adopter and user communities as appropriate for the type of Review.
  2. Reasonable diversity in its committer population as appropriate for the type of Review. Diversity status must be provided not only as number of people/companies, but also in terms of effort provided by those people/companies.
  3. Documented completion of all required due diligence under the Eclipse IP Policy.
  4. Balanced progress in creating both frameworks and extensible, exemplary tools.
  5. Showcase the project's quality through project-team chosen metrics and measures, e.g., coupling, cyclomatic complexity, test/code coverage, documentation of extensions points, etc.

The Review itself:

  1. Is open for no less than one week and no more than two weeks of generally accepted business days.
  2. Begins with a conference call or other conference technology (e.g., web conferencing) so long as the technology is available to all members and incurs no additional costs to the attendees.
  3. During the conference call, the Project Leadership (or EMO appointed Project representative) provides a brief summary of the reasons and justifications for the phase transition followed by a question and answer session.
  4. After the conference call, the Review remains active for open and transparent discussion amongst the membership-at-large via the Project-appropriate mailing lists, newsgroups, or other designated forums.
  5. At the end of the Review period, the EMO(ED) holds a public advisory vote of all Eclipse Members (which for clarity includes Committers Members as defined in the Bylaws 3.3(d)). Votes may be cast early via the appropriate mailing list, but are not counted until the end of the Review period.
    1. A successful advisory vote requires at least three +1s from the Membership external to the Project's Leadership Chain.
    2. A successful advisory vote requires at least one +1 from each level of the Project's Leadership Chain.
    3. A successful advisory vote requires no upheld -1s. An Upheld -1 is a -1 that is followed within 24 hours by open, transparent, and public justification, and that justification is accepted by the EMO. Rejected -1s count as 0s.
    4. A successful advisory vote requires, if applicable, +1s from each of the Project's Mentors.
  6. The EMO(ED) approves or fails the Review based on the public advisory vote, the scope of the Project, and the Purposes of the Eclipse Foundation as defined in the Bylaws.

If any Member believes that the EMO has acted incorrectly in approving or failing a Review may appeal to the Board to review the EMO's decision.

Creation Review

The purpose of the Creation Review is: to assess the community and membership response to the proposal, to verify that appropriate resources are available for the project to achieve its plan, and to serve as a committer election for the project's initial Committers. The Eclipse Foundation strives not to be a repository of code dumps and thus projects must be sufficiently staffed for forward progress.

The Creation Review must include a short bio of the proposed initial committers. [Not a] life story, but their relationship to and history with the incoming code and/or their involvement with the area/technologies covered by the proposal. The goal is to help keep any legacy contributors connected to new project and explain that connection to the current and future Eclipse membership, as well as justify the initial Committers' participation in a meritocracy.(See [2])

Graduation Review

The purpose of the Graduation Review is to confirm that the Project is/has:

  • a working and demonstratable code base of sufficiently high quality
  • active and sufficiently diverse communities: adopters, developers, and users
  • operating fully in the open following the Principles and Purposes of Eclipse
  • a credit to Eclipse and is functioning well within the larger Eclipse community

Release Review

The purposes of a Release Review are: to summarize the accomplishments of the release, to verify that the IP Policy has been followed and all approvals have been received, to highlight any remaining quality and/or architectural issues, and to verify that the project is continuing to operate according to the Princples and Purposes of Eclipse.

Promotion Review

The purpose of a Promotion Review is to determine if the Project has demonstrated the characteristics of a Top-Level Project, e.g., consistent leadership in a technical area and the recruitment of a wider developer community. The Project will already be a well-functioning Mature Eclipse Project, so evidence to the contrary will be a negative for promotion. Top-Level Projects, both through their existance and their Council memberships, have substantial influence over direction and operation of Eclipse, thus it behooves the membership to grant Top-Level status only for merit: for demonstrated service to the larger Eclipse eco-system.

Continuation Review

The purpose of a Continuation Review is to verify that a Proposal or Project continues to be a viable effort and a credit to Eclipse. The Project team will be expected to explain the recent technical progress and to demonstrate sufficient adopter, developer, and user support for the Project. The goal of the Continuation Review is to avoid having inactive projects looking promising but never actually delivering extensible frameworks and exemplary tools to the ecosystem.

Termination Review

The purpose of a Termination Review is to provide a final opportunity for the Committers and/or Eclipse membership to discuss the proposed withdrawl of a Proposal or archiving of a Project. The desired outcome is to find sufficient evidence of renewed interest and resources in keeping the Project or Proposal active.

Membership Involvement

The proper functioning of the Eclipse Development Process is contingent on the active participation of the Eclipse Members and Committers. The requirement for positive votes from Members (which includes Committers) which are not involved in the project will require each project to build relationships with other participants within the Eclipse community. The process is positive biased in that Reviews give more weight to negative votes (vetoes) as opposed to requiring a majority of positive votes to proceed.

Review vote summaries will include:

  • Number and identification of all explicit positive (+1) votes
  • Number and identification of all explicit abstentions (0)
  • Number and identification of all explicit negative (-1) votes

Grievance Handling

When a Member has a concern about a Project, the Member will raise that concern with the Project's Leadership. If the Member is not satisfied with the result, the Member can raise the concern with the parent Project's Leadership. The Member can continue appeals up the Project Leadership Chain and, if still not satisfied, thence to the EMO, then the Executive Director, and finally to the Board. All appeals and discussions will abide by the Guiding Principles of being open, transparent, and public.

Member concerns may include:

  • Out of Scope. It is alleged that a Project is exceeding its approved scope.
  • Inconsistent with Purposes. It is alleged that a Project is inconsistent with the Roadmap and/or Purposes.
  • Dysfunctional. It is alleged that a Project is not functioning correctly or is in violation of one or more requirements of the Development Process.
  • Contributor Appeal. It is alleged that a Contributor who desires to be a Committer is not being treated fairly.
  • Invalid Veto It is alleged that a -1 vote on a Review is not in the interests of the Project and/or of Eclipse.

A variety of grievance resolutions are available to the EMO up to, and including, rebooting or restarting a project with new Committers and leadership.

Revisions

As specified in the Bylaws, the EMO is responsible for maintaining this document and all changes must be approved by the Board.

Due to the continued evolution of the Eclipse technology, the Eclipse community, and the software marketplace, it is expected that the Development Process (this document) will be reviewed and revised on at least an annual basis. The timeline for that review should be chosen so as to incorporate the lessons of the previous annual coordinate release and to be applied to the next annual coordinated release.

The EMO is further responsible for ensuring that all plans, documents and reports produced in accordance with this Development Process be made available to the Membership at Large via an appropriate mechanism in a timely, effective manner.

Back to the top