So.
Here we are.
We have a Charter for the OpenJDK Community.
The Charter creates an Interim Governance Board, with three members from outside Sun and two from within.
The Charter empowers the Board to write a Constitution, get it ratified by the Community, and then hold elections for the three non-appointed seats. In the meantime Sun will strive to be the very model of a modern benevolent dictator.
Ratification? Elections? Now wait just a minute, you might be thinking.
Who is it, exactly, that gets to vote?
Until the Constitution has been written and ratified we have a set of interim guidelines to govern the operation of the Groups that make up the Community and the Projects upon which they collaborate.
A Group is a collection of Participants who share a common interest. That interest might involve a specific body of code, or it might not—quality, documentation, and advocacy, e.g., are just some of the areas in which meaningful contributions can be made without hacking upon the JDK itself.
Groups are the fundamental social units of the Community. They are the social contexts in which a Participant’s merit is judged and hence the basis of the meritocracy. A Participant can be granted Membership in a Group, by a vote of the existing Members of that Group, after demonstrating a history of significant contributions in the Group’s area of interest.
It is the Members of Groups who are empowered to vote: To ratify the Constitution, elect Governance Board members, sponsor Project proposals, and, of course, grant Membership in Groups. Members can also propose new Projects, and even Groups.
(To answer an obvious question: You can be a Member of multiple Groups, but you never get more than one vote in any Community-wide decision.)
The big bang The initial Groups in the OpenJDK Community are, more or less, Sun’s existing development and quality teams, plus the Governance Board. (We’ll publish a roster of all Members once we get some privacy issues ironed out.)
The initial Projects are those for creating free replacements for the most significant of the encumbered, non-free components of the OpenJDK build: The Audio Engine, Font Scaler, and Graphics Rasterizer Projects. There’s also a Modules Project, for the work being done on JSRs 277 and 294.
Expanding the universe Under the interim governance guidelines the Community can grow in three ways:
New Members The Members of an existing Group can grant Membership to a Participant by a three-vote consensus (three yays, no nays).
New Projects A Member of an existing Group can propose a new Project. The Project will be created if one or more Groups decide to sponsor it, by a simple majority vote in each Group, or else if a simple majority of all Members approve it.
New Groups A Member of an existing Group can propose a new Group. The Group will be created if the proposal is seconded by two other Members and then approved by a simple majority of the Interim Governance Board.
These rules are meant to apply equally all Participants, whether or not they work for Sun. New Sun employees, e.g., will not automatically be granted Membership—they’ll have to prove their merit over time, just like everyone else.
Taking shape We’ve already seen our first Project proposal, for a framebuffer-based AWT toolkit; the AWT Group will shortly vote on whether to sponsor it. I’ve heard that proposals for a few other Projects and Groups are being drafted—in some cases on behalf of Participants who are not yet Members but, presumably, hope to be one day. I look forward to the eventual granting of Membership to non-Sun developers as they participate, contribute, and prove their merit.