Both as a newbie and as a senior contributor, if I'm to stay engaged in any open source project, I want to make sure I won't waste my time. If I understand the processes and they are clear and structured, I can perform miracles. I quickly want to know if I have the competence to deliver something meaningful to the project and once engaged, I want the time I've committed to be respected. I want to do the right thing and I quickly want to understand how to do that - I want to learn the rules of the game.
In OpenJDK, there is plenty of room for innovation and ideas and also clear project management to get releases out there, choosing what projects to work on and prioritizing them. Reading the OpenJDK Bylaws will help participants understand how decision processes are designed.
After learning the rules, there's still plenty of room to learn how they are applied in reality, so plenty of excitement left. I'm pleased to see that the culture of OpenJDK when reading the mailing lists is based on strong values, e.g. technical excellence, contribution and helping others. Many Java User Groups have started engaging their members with OpenJDK in the Adopt OpenJDK program.
I delivered a presentation of a summarized model to the Hamburg JUG just before Devoxx, I'll summarize the presentation below, well aware that I'm omitting some important details, so consider this a crash course, to get a feeling for the governance model. If anything seems odd, please refer to the OpenJDK Bylaws and what the OpenJDK Governing Board says.
Five members, two members appointed by Oracle, one member appointed by IBM and 2 “at-large” members elected annually. Sponsors projects for Java SE Platform releases like JDK8.
May nominate other Contributors to elect a Group Member.
Has write access to the Group’s web content and file repositories
Has the authority to sponsor Projects.
Obligation to act as contact point for Group and look after content.
Obligation to publish a quarterly report on activities on the Group.
Appointed upon Group creation by approval of the Governing Board.
A Group Lead who has departed may be replaced by approval of Group Members and ratification by Governing Board.
Self-nominated, appointed by Project Lead.
Should have done a few relevant, sponsored requests.
May create change sets but may not push them directly.
May create and push change sets when confirmed by approval process.
May vote on new Committers.
Role only exists in Projects where a Reviewer Role is required.
Reviews and approves change sets.
Considered a Reviewer, and maintain Reviewer status
Elected by the sponsoring Group Lead(s).
Has full authority over all technical matters related to the Project, including when to require formal change reviews.
Has the authority to appoint and remove Authors who are not also Committers.
Obligation to act as contact point for Project and manage content.
Obligation to publish a quarterly report on activities on the Project.
In OpenJDK, there is plenty of room for innovation and ideas and also clear project management to get releases out there, choosing what projects to work on and prioritizing them. Reading the OpenJDK Bylaws will help participants understand how decision processes are designed.
After learning the rules, there's still plenty of room to learn how they are applied in reality, so plenty of excitement left. I'm pleased to see that the culture of OpenJDK when reading the mailing lists is based on strong values, e.g. technical excellence, contribution and helping others. Many Java User Groups have started engaging their members with OpenJDK in the Adopt OpenJDK program.
OpenJDK Quick Start
Oracle OpenJDK people Donald Smith, Dalibor Topic and Iris Clark gave an extensive presentation on the governance model for OpenJDK at JavaOne, you should really watch that, these guys know their stuff for real.I delivered a presentation of a summarized model to the Hamburg JUG just before Devoxx, I'll summarize the presentation below, well aware that I'm omitting some important details, so consider this a crash course, to get a feeling for the governance model. If anything seems odd, please refer to the OpenJDK Bylaws and what the OpenJDK Governing Board says.
OpenJDK Participation
You can review lists of the Groups, Projects and people in OpenJDK from the Census page.
Participant
General Community role, anyone interested signing up for different mailing lists, making minor contributions.
Contributor
General Community role, someone that has signed the license agreement OCA, can propose/submit non-trivial changes to OpenJDK code.
OpenJDK Member
Senior role, after nomination of other Members. There are a bit more than 100 OpenJDK Members currently.
OpenJDK Groups
- A Group is a set of Participants sharing an interest discussed over email and web page.
- OpenJDK Members can propose creation of a new Group.
- A Group can sponsor Projects.
Group OpenJDK Governing Board
Makes sure everything is working as directed by the Bylaws.Five members, two members appointed by Oracle, one member appointed by IBM and 2 “at-large” members elected annually. Sponsors projects for Java SE Platform releases like JDK8.
Group OpenJDK Members
May vote on new Projects, nominate Groups, vote for “at-large” members for the Governing Board.Other Groups
Examples of other groups are Porters creating ports to different platforms and the group Build sponsoring update releases.Roles of Groups
Group Member
A Contributor who has history of significant contributions to a group, and elected to membership in that Group.May nominate other Contributors to elect a Group Member.
Has write access to the Group’s web content and file repositories
Group Lead
An OpenJDK Member who is responsible for directing and coordinating the Group’s activities.Has the authority to sponsor Projects.
Obligation to act as contact point for Group and look after content.
Obligation to publish a quarterly report on activities on the Group.
Appointed upon Group creation by approval of the Governing Board.
A Group Lead who has departed may be replaced by approval of Group Members and ratification by Governing Board.
OpenJDK Projects
A Group can sponsor Projects.
A Project have a specific purpose like to produce code or documentation, e.g. Coin or JDK 8, and can have a code repository.
Projects are operated in an “open, transparent and meritocratic” way.
Author
Currently there are approximately 400 authors in total.Self-nominated, appointed by Project Lead.
Should have done a few relevant, sponsored requests.
May create change sets but may not push them directly.
Committer
Nominated and approved by other Committers after a number of significant changes.May create and push change sets when confirmed by approval process.
May vote on new Committers.
Reviewer
An Experienced Committer, a larger number of changes, nominated and elected by other Reviewers in the Project.Role only exists in Projects where a Reviewer Role is required.
Reviews and approves change sets.
Project Lead
A Committer for the Project responsible for directing and coordinating the Project’s activities.Considered a Reviewer, and maintain Reviewer status
Elected by the sponsoring Group Lead(s).
Has full authority over all technical matters related to the Project, including when to require formal change reviews.
Has the authority to appoint and remove Authors who are not also Committers.
Obligation to act as contact point for Project and manage content.
Obligation to publish a quarterly report on activities on the Project.