blob: 53cd660ac13e19ed9ee7c97258477cabddb794a5 [file] [log] [blame]
[[elections]]
== Elections
Roles in a project are assigned based on merit demonstrated in a
publicly-accessible forum, in the form of an election. Elections
start with a nomination that contains a statement of merit. The nature
of a statement of merit varies widely, but is generally expected to
to concisely state the impact that the nominee has had on the
project.
NOTE: Employment status has no bearing at whether or not somebody can participate
in an open source project at {forgeName}. Employment does not, for example, guarantee
committer status; committer status must be earned by everybody.
[[elections-committer]]
=== Committer Elections
Contributors who have the trust of the project's committers can,
through election, be promoted to _committer status_ for that 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 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 Foundation member company or any company employing
existing committers.
Being a {forgeName} Committer is more than just having
write-access to the project resources: there are specific
IP due diligence and record keeping activities that Committers _must_
follow. New committers must ensure that they are familiar with the
{committerGuidelinesUrl}[Committer Guidelines].
New committers should be encouraged to join the
{incubationListUrl}[Incubation Mailing List]; this list is a good place
to ask questions about process, services available, and other aspects
of working as a committer.
[[elections-requirements]]
==== What are the Requirements?
There are only three requirements around nominating and electing new
committers (note that there are additional <<paperwork>> requirements for
the new committer):
* *Define Trust.* Each project is entitled to define how it
evaluates "[people] who have the trust of the Project's Committers ...
[through] contributing and showing discipline and good judgment". This
definition needs to be a transparent and public document on the
project's website (the top-level project charter may provide this).
It is extremely important to publish these criteria
to avoid any issues around cliques or "the in-crowd" preventing others
from joining a project.
* *Employment Neutral.* There must not be any hint of "we (company W)
hired person X to work on project Y thus person X should elected a
committer". Committer status is independent of employment; there
are well-supported mechanisms for contributors without
commit-rights and thus Committer status is not required for a team
member to be effective. Additionally, the team will want to make sure
that they have confidence in the candidate irrespective of employment
and management because the committer status will continue even after
moves to another job.
* *Public and Archival Election.* The nomination and election process
for a new Committer is for more than just the project team - it is also
for the entire {forgeName} community, current and future. The larger
community uses the artifacts of elections as (one of many pieces of)
evidence about the maturity of the project team, and thus quality of the
frameworks.
NOTE: Nominations such as "we all know Bob, vote for him" may work within
the team, but actually harm the project's reputation in the larger
{forgeName} community: that larger community does not know Bob and does
not understand why the project team _trusts_ him with the source code.
[[elections-nomination]]
==== What Should a Nomination Look Like?
A committer nomination should explain the candidate's contributions to
the project and thus why they should be elected as a Committer. Cite the
issues they have fixed via patches; cite the community forum postings they have
answered; cite the _dev list_ design discussions to which they have
contributed; etc. In all cases, provide urls to source material.
[[elections-how]]
==== How does an Election work?
Use the {developerPortalUrl}[developer portal] to elect a committer.
* Log in and navigate to the _Eclipse Projects_ section;
* Expand your project by clicking the _[view]_ link on the right;
* Click _[nominate] a new committer for <project>_; and
* Follow the workflow.
Project committers will be notified to participate in the election via
the project's _dev list_.
NOTE: Your project must have a _dev list_ specified in the project's
<<pmi,metadata>> and existing project team members must be subscribed to
the list.
An election starts with a nomination by an existing committer.
[graphviz, elections-overview, svg]
.An overview of the Election Process
----
digraph {
// Graph properties
bgcolor=transparent
// Decisions
node [shape=diamond;style=filled;fillcolor=white;fontsize=10];
time[label="", group=g1];
approval[label="PMC\nApproves", group=g1];
// Notes
node [shape=plaintext;fillcolor=transparent;fontsize=10]
oneweek[label="One week passes or\nall committers\nhave voted"];
node [shape=box;style=filled;fillcolor=white;fontsize=12];
start[label="Nominate", group=g1];
ongoing[label="Ongoing", group=g1];
timedout[label="Timed out"];
complete[label="Complete", group=g1];
approved[label="Approved"];
vetoed[label="Vetoed"];
rejected[label="Rejected"];
edge [fontsize=10];
start->ongoing
ongoing->ongoing[label="Committers Vote"];
ongoing->time
time->timedout[xlabel="Not\nenough\nvotes"]
time->complete
time->rejected[xlabel="Vetoed\nby\ncommitter"]
complete->approval
approval->approved[xlabel="Yes"]
approval->vetoed[xlabel="No"]
edge [color=grey]
oneweek->time
}
----
Only project committers may vote in a committer election. To be successful,
the election must receive a minimum of three positive +pass:[+1]+ votes.
Any committer can veto the election by casting a +pass:[-1]+ vote. For projects
with three or fewer committers all committers must vote. Committer elections
run for one week, but will end prematurely if all
project committers vote +pass:[+1]+.
Following a successful committer vote, the project's PMC will review
the election results and then either approve or veto the election.
An election may be vetoed, for example, if the PMC feels that the
merit statement is not strong enough.
The <<paperwork, paperwork>> process will automatically be initiated following
PMC approval of an election.
[[elections-pl]]
=== Project Lead Elections
Similar to a committer election, a project lead election starts with a
statement of merit. The merit statement should, rather than focus on
specific code contributions, focus instad on the leadership qualities
expressed by the individual.
.Project Lead merit statement
=====================================================================
Sounak has been part of the Ogee development since before the initial
contribution. He played an important role ever since, as he is one of the key
developers. With regards to the number of commits Sounak is currently the top
committer of Ogee:
http://git.eclipse.org/c/ogee/org.eclipse.ogee.git/stats/?period=q&ofs=10
Apart from that Sounak took care of the project page and the build. For
release 0.6 he also handled the review formalities for me. Finally I would
like to mention a blog post he did at odata.org to promote Ogee in the OData
community:
http://www.odata.org/blog/eclipse-ogee
=====================================================================
Project leads are normally also committers. A project may have more than one
project lead (so-called 'co-leads').
Use the 'Nominate a Project Lead' link in the 'Committer Tools' block on the
project's <<pmi,management page>> to start a project lead election.
Only project committers can vote in a project lead election.
To be successful, a project lead election must receive a minimum of three
positive +pass:[+1]+ votes. Any committer can veto the election by
casting a +pass:[-1]+ vote. For projects with three or fewer committers
all committers must vote. Committer elections run for one week, but will
end prematurely if all project committers vote +pass:[+1]+.
Following a successful committer vote, the project's PMC will review
the election results and then either approve or veto the election.
A PMC-approved election will be referred to the EMO/ED as a recommendation
for appointment. The final decision rests with the EMO/ED.
[[elections-pmc-member]]
=== PMC Member Elections
The manner in which a top-level project's Project Management Committee
(PMC) 'Member' is appointed varies by PMC. Some PMCs are set up to have a
representative from each of the projects in the top-level project. Other
PMCs are more exclusive and run an election similar to that of a project
lead election.
In all cases, the PMC Lead makes a recommendation to the EMO/ED to appoint
a PMC Member. The final decision rests with the EMO/ED.
[[elections-pmc-lead]]
=== PMC Lead Appointments
PMC 'Leads' are are not elected. They are vetted by the EMO, approved by
the Eclipse Board of Directors, and appointed by the EMO/ED.
[[elections-faq]]
=== Frequently Asked Questions
[qanda]
Do we really need to do this? ::
Yes.
Can I still be a committer if I change employers? ::
Yes. Your status as a committer is not tied to your employment status.
You may, however, require <<paperwork>> from your new employer (or if
you become self-employed). If you change employers, please contact
emo-records@eclipse.org for help regarding paperwork requirements.
What happens if committers don't vote? ::
If a project has three or fewer committers, then all committers must
vote. If even one out of the three does not vote, then the election will
end in failure. If the non-voting committer is also not active, then
they can, perhaps, be retired by the project lead. Connect with
emo@eclipse.org for assistance.