The Wayback Machine - https://web.archive.org/web/20111206150354/http://openjdk.java.net:80/projects/

Projects

A Project is a collaborative effort to produce a specific artifact, which may be a body of code, or documentation, or some other material. A Project must be sponsored by one or more Groups. A Project may have web content, one or more file repositories, and one or more mailing lists.

The Bylaws define several ways for the Community to expand via Projects. A step-by-step guide is provided here for the following common cases:

This page is a summary and interpretation of the Bylaws. If there is a conflict between this page and the Bylaws then the Bylaws are considered authoritative.

Becoming an Author

Any Contributor may request the Project Author role by contacting the relevant Project Lead. An e-mail request should be sent directly to the Project Lead and contain a short description of the Contributor's qualifications, including past contributions to the Project.

Project Leads are encouraged to grant the Author role only to Contributors who appear likely to continue to contribute for some time so that they will eventually be nominated to the Committer role.

An Author receives the following privileges above those of a Contributor:

An Author who is not a Committer still requires the assistance of a Committer to push changesets, but the Author role is nonetheless a step above being an unregistered Contributor.

Nominating Contributors to new Project Committer

Any Project Committer may nominate a Contributor to be a new Project Committer. Becoming an Author may be helpful in establishing credibility to become a Committer, but it is not required.

As a rough guide, for any given Project, a Contributor should make at least eight significant contributions before being nominated.

Step 1: Nominate

Send a call-for-votes to the Project's OpenJDK mailing list. The voting method for approval is Lazy Consensus and only current Project Committers are eligible to vote.

To: <OpenJDK project mailing list>
Subject: CFV: New <project name> Committer: <full name>

I hereby nominate <full name> to <project name> Committer.

<contributor description>

Votes are due by <deadline>.

Only current <project name> Committers [1] are eligible to vote on
this nomination.

For Lazy Consensus voting instructions, see [2].

<nominator>

[1] http://openjdk.java.net/census
[2] http://openjdk.java.net/projects/#committer-vote

Where the following substitutions are made in the message:

<OpenJDK project mailing list>
The primary OpenJDK mailing list for the project.
<full name>
The full name of the nominated Contributor (not e-mail address, OpenJDK username, etc.).
<project name>
The short name for the Project as listed on the left side-bar of the main OpenJDK page.
<contributor description>
Describe the Contributor's past contributions to the Project, and any relevant qualifications.
<deadline>
Insert a date and time, with time zone, two weeks after the call-for-votes is sent.
<nominator>
Nominating Project Committer's name.
Step 2: Vote

Project Committers vote by replying to the proposal with the first line of the message body in the following form:

Vote: <vote>

where <vote> is one of yes, veto, or abstain. A justification for the vote may be provided on subsequent lines, and is required in order for a veto vote to be valid. Multiple votes are allowed but only the most recent vote will be counted. Votes must be cast in the open, on the mailing list to which the call-for-votes was originally sent; votes sent as private replies will not be counted.

The following is a minimum affirmative reply.

To: <OpenJDK project mailing list>
Subject: Re: CFV: New <project name> Committer: <full name>

Vote: yes
Step 3: Announce Result

Once all Project Members have voted or the deadline has passed then the result must be announced to the mailing list where the call-for-votes and voting took place. If the announcement is approval then it must also be sent to the registrar. The registrar will contact the new Committer to obtain additional information, if necessary, and will update the census.

This is a typical announcement of approval:

To: <OpenJDK mailing list>
CC: registrar at openjdk dot java dot net
Subject: Result: New <project name> Committer: <full name>

Voting for <full name> [1] is now closed.

Yes: <number of "yes" votes>
Veto: 0
Abstain: <number of "abstain" votes>

According to the Bylaws definition of Lazy Consensus, this is
sufficient to approve the nomination.

<nominator>

[1] http://mail.openjdk.java.net/<reference to original CFV>

Where the following substitutions are made in the message:

<reference to original CFV>
Find the original call-for-votes in the OpenJDK mail archives and provide a link to it.

Nominating Project Committers to new Project Reviewer

This role is relevant only to Projects that require formal change review before a Mercurial push. The census notes which Projects have this requirement.

Any Project Reviewer may nominate any of the Project's Committers to be a Project Reviewer of the same Project. A Project Lead is automatically considered to be a Reviewer, and remains a Reviewer after leaving the Project Lead role.

As a rough guide, a Committer should author and push at least 32 significant changesets before being nominated to be a Reviewer.

Step 1: Nominate

Send a call-for-votes to the Project's OpenJDK mailing list. The voting method for approval is Lazy Consensus and only current Project Reviewers are eligible to vote.

To: <OpenJDK project mailing list>
Subject: CFV: New <project name> Reviewer: <full name>

I hereby nominate <full name> to <project name> Reviewer.

<committer description>

Votes are due by <deadline>.

Only current <project name> Reviewers [1] are eligible to vote on
this nomination.

For Lazy Consensus voting instructions, see [2].

<nominator>

[1] http://openjdk.java.net/census
[2] http://openjdk.java.net/projects/#reviewer-vote

Where the following substitutions are made in the message:

<OpenJDK project mailing list>
The primary OpenJDK mailing list for the project.
<full name>
The full name of the nominated Committer (not e-mail address, OpenJDK name, etc.).
<project name>
The short name for the Project as listed on the left side-bar of the main OpenJDK page.
<committer description>
Describe the Committer's past contributions to the Project, and any relevant qualifications.
<deadline>
Insert a date and time, with time zone, two weeks after the call-for-votes is sent.
<nominator>
Nominating Project Reviewer's name.
Step 2: Vote

Project Reviewers vote by replying to the proposal with the first line of the message body in the following form:

Vote: <vote>

where <vote> is one of yes, veto, or abstain. A justification for the vote may be provided on subsequent lines, and is required in order for a veto vote to be valid. Multiple votes are allowed but only the most recent vote will be counted. Votes must be cast in the open, on the mailing list to which the call-for-votes was originally sent; votes sent as private replies will not be counted.

The following is a minimum affirmative reply.

To: <OpenJDK project mailing list>
Subject: Re: CFV: New <project name> Reviewer: <full name>

Vote: yes
Step 3: Announce Result

Once all Project Reviewers have voted or the deadline has passed then the result must be announced to the mailing list where the call-for-votes and voting took place. If the announcement is approval then it must also be sent to the registrar. The registrar will contact the new Reviewer to obtain additional information, if necessary, and will update the census.

This is a typical announcement of approval:

To: <OpenJDK mailing list>
CC: registrar at openjdk dot java dot net
Subject: Result: New <project name> Committer: <full name>

Voting for <full name> [1] is now closed.

Yes: <number of "yes" votes>
Veto: 0
Abstain: <number of "abstain" votes>

According to the Bylaws definition of Lazy Consensus, this is
sufficient to approve the nomination.

<nominator>

[1] http://mail.openjdk.java.net/<reference to original CFV>

Where the following substitutions are made in the message:

<reference to original CFV>
Find the original call-for-votes in the OpenJDK mail archives and provide a link to it.

Proposing a New Project

Any Contributor may propose the creation of a new Project.

Step 0: Discuss [optional]

It is recommended that any proposal for a new Project be discussed publicly before being proposed for a vote. Send an e-mail describing the motivation, goals, and initial Lead of the proposed Project to the general discussion list. Include any suggested initial Authors, Committers, and Reviewers, if known. (Reviewers are only relevant if the Project will require formal change review.) Describe existing bodies of code, if any, that will be used as the Project's starting point. The proposing Contributor should be an active participant in any subsequent discussion and should refine the proposal as necessary in response to comments.

The header for the Project proposal e-mail is as follows:

To: discuss at openjdk dot java dot net
Subject: Project Proposal: <project name>

Where <project name> is the suggested short name of the Project as it would appear on the left side-bar of the main OpenJDK page.

At least one Group Lead must declare that their Group is a sponsor of the proposed Project. (Unlike the interim guidelines which required Group Members to vote for sponsorship, a Group's Lead has the authority to declare that the Group is a sponsor of the Project.)

Step 1: Propose

Send a combined motion for the creation of the Project and the appointment of its initial Lead to the announcement list. The e-mail should contain the Project name, description, initial Lead name and qualifications, sponsoring Groups, and suggested initial Authors, Committers, Reviewers, if any. The voting method is Lazy Consensus and only current OpenJDK Members are eligible to vote.

The format for the call-for-votes e-mail is as follows:

To: announce at openjdk dot java dot net
Subject: CFV: New Project: <project name>

I hereby propose the creation of the <project name> Project with
<lead name> as the Lead and <group list> as the sponsoring 
Group(s).

<project description>

<lead description>

<list of suggested initial authors, committers, and reviewers>

Votes are due by <deadline>.

Only current OpenJDK Members [1] are eligible to vote on this 
motion.

For Lazy Consensus voting instructions, see [2].

<nominator>

[1] http://openjdk.java.net/census/#members
[2] http://openjdk.java.net/projects/#new-project-vote

Where the following substitutions are made in the message:

<project name>
The name of the proposed Project as it would appear on the left side-bar of the main OpenJDK page.
<project description>
Describe the Project's deliverable.
<lead name>
The full name of the proposed Project Lead (not e-mail address, OpenJDK name, etc.)
<lead description>
Describe the proposed Lead's relevant qualifications.
<group list>
A comma-separated list containing at least one Group whose Lead has agreed to sponsor the Project.
<list of suggested initial authors, committers, and reviewers>
Provide the full names (not e-mail address, OpenJDK name, etc.) of people which the prospective Project Lead may choose to appoint as initial Authors, Committers, and Reviewers (if necessary).
<deadline>
Insert a date and time, with time zone, two weeks after the call-for-votes is sent.
<nominator>
The proposing Contributor's name.

The Bylaws specify separate votes on the creation of a new Project, by the OpenJDK Members, and the appointment of its initial Lead, by the Group Leads of the sponsoring Groups. Any such Group Lead may therefore request that the two motions be voted upon independently, though this is not expected to be the common case.

Step 2: Vote

Eligible voters cast their vote by replying to the proposal with the first line of the message body in the following form:

Vote: <vote>

where <vote> is one of yes, veto, or abstain. A justification for the vote may be provided on subsequent lines, and is required in order for a veto vote to be valid. Multiple votes are allowed but only the most recent vote will be counted. Votes must be cast in the open, on the mailing list to which the call-for-votes was originally sent; votes sent as private replies will not be counted.

The following is a minimum affirmative reply:

To: discuss at openjdk dot java dot net
Subject: Re: CFV: New Project: <project name>

Vote: yes
Step 3: Announce Results

Once all OpenJDK Members have voted or the deadline has passed, the proposing Contributor must send the results to the announcement list. If the announcements are of approval then they must also be sent to the registrar.

This is a typical announcement of approval:

To: announce at openjdk dot java dot net
CC: registrar at openjdk dot java dot net
Subject: Result: New Project: <project name>

Voting on the <project name> Project with initial Lead
<lead name> [1] is now closed.

Yes: <number of "yes" votes>
Veto: 0
Abstain: <number of "abstain" votes>

According to the Bylaws definition of Lazy Consensus, this is 
sufficient to approve the new Project and its initial Lead.

<nominator>

[1] http://mail.openjdk.java.net/<reference to original CFV>

Where the following substitutions are made in the message:

<reference to original CFV>
Find the original call-for-votes in the OpenJDK mail archives and provide a link to it.
Step 4: Appoint

The registrar will send an e-mail questionnaire to the new Project Lead to collect information necessary to launch the Project on OpenJDK. In addition to information for web pages, file repositories, and mailing list(s), the Lead will be asked to select the initial Authors, Committers, and Reviewers (if necessary). The registrar will issue registration invitations as appropriate and will update the census.