<?php

/**
 * Copyright (c) 2005, 2018 Eclipse Foundation.
 *
 * This program and the accompanying materials are made
 * available under the terms of the Eclipse Public License 2.0
 * which is available at https://www.eclipse.org/legal/epl-2.0/
 *
 * Contributors:
 *   Denis Roy (Eclipse Foundation)
 *   Eric Poirier (Eclipse Foundation)
 *	 Zhou Fang (Eclipse Foundation)
 * 
 * SPDX-License-Identifier: EPL-2.0
 */
?>

<h1>Eclipse Foundation Community Awards</h1>

<p>The Eclipse Foundation Community Awards recognize the best of the Eclipse community. In 2022, we will be giving out four awards: <a href="#top-committer">Top Committer</a>, <a href="#top-newcomer">Top Newcomer Evangelist</a>, <a href="#top-contributor">Top Contributor</a>, and <a href="#lifetime-achievement">Lifetime Achievement</a>.</p>

<h2>Awards</h2>

<h3 id="top-committer">Top Committer</h3>
<p>This award is to recognize the Eclipse committer who best exemplifies community support - through code contributions, fixing bugs, forum and mailing list posts, conference presentations, blogs and other areas.</p>

<hr />

<h3 id="top-newcomer">Top Newcomer Evangelist</h3>
<p>This award is to recognize the individual who best welcomes, engages and educates new people into the Eclipse community through the user forums, blogging, creating resources like demos and tutorials, and Eclipse-related conversations on social media.</p>
<hr />

<h3 id="top-contributor">Top Contributor</h3>
<p>This award is to recognize an individual who best exemplifies support for the Eclipse community through their contributions to forums, submission of patches, comments on bugs, tutorials, conference presentations, blogs, and other areas. Contributors are the individuals that participate due to their passion for the community and technology.&nbsp;</p>
<hr />

<h3 id="lifetime-achievement">Lifetime Achievement&nbsp;</h3>
<p>The Lifetime Achievement award is given to those individuals who have helped shape the Eclipse community through a long history of contributions to Eclipse projects, and active participation and leadership in our community.</p>
<hr />

<h2>Nominations &amp; Voting</h2>
<p>Anyone can nominate a community member for any of the awards. Nominations will be collected May 2 to May 31, 2022. Voting will take place June 1 to June 30, 2022.</p>
<p>Award winners for the Top Committer, Top Contributor, and Top Newcomer Evangelist will be determined by a vote of the community. Each person will get one vote per category, June 1 through June 30. The Lifetime Achievement award winner will be selected by the Eclipse Foundation team.</p>

<h2>Important Dates</h2>
<ul>
	<li>May 2: Nominations open</li>
	<li>May 31: Nominations close</li>
	<li>June 1: Voting opens</li>
	<li>June 30: Voting closes</li>
	<li>October 25: Winners announced at EclipseCon 2022</li>
</ul>

<h2>Past Winners</h2>

<p>See the <a href="https://www.eclipse.org/org/foundation/eclipseawards/pastwinners.php">Past Winners</a> of the Eclipse Community Awards.</p>
