## Governance Guidelines

We believe that a governance system that is clearly outlined and fairly represents the community is essential to the successful development of the Grid Engine project.

The Grid Engine project is about providing an enabling technology and the development of common interfaces, with system interoperability from the participants in the project a key metric of success. Successful evolution of the technology will require strong community collaboration to best meet the needs of individual developers and to move the project forward for the group benefit. An effective governance system will provide a means to manage the process of its evolution. Initially we will build on the model used by other open source projects, a meritocracy based on consensus.

All decision making, planning and communication will be done in the open, on public mailing lists.

Roles and Responsibilities

Basically the structure we envision is the following:

- User
- Developer
- Contributor
- Committer
- Module Owner
- Project Owner
- Board

Users

Users are the people who use the products of the Project. People in this role aren't contributing code, but they are using the products, reporting bugs, making feature requests, and such. This is by far the most important category of people as, without users, there is no reason for the Project. When a user starts to contribute code or documentation patches, he/she becomes a developer.

How to become one: Download Grid Engine, and use it to create a distributed computing environment.

Contributors

Contributors are developers who contribute patches and code (by e-mail or via the appropriate project tools), and users of the Grid Engine software who want to report bugs or comments. A developer's contribution is always recognized. Contributors do not have CVS check-in access. A developer who has sent in solid, useful patches on a project can be elevated to contributor status by the Module Owner or Project Owner. Integration of developers' contributions is at the discretion of the Module Owner, but this is an interactive, communicative process.

How to become one: As a developer, Get the source, make an improvement or fix a bug, and send that code to the developers mailing list. End users similarly can make suggestions and submit issues.

Committers

A committer has check-in access to the development, or "pre-release" branch of the source tree. Committers can directly make changes to the source base of the development branch, from which builds are made. A Committer that has been inactive for 6 months or more may lose his or her status as a Committer. In this case, or if the value of contributions of a Committer decreases, Committer status may be revoked by the responsible Module Owner or Project Owner. A Committer has authority to commit any change that is a bug fix, or an improved implementation of an existing capability, where the improvement is not also an enhancement. It is the responsibility of a Committer to verify with the responsible Project Owner or Module Owner before committing any change that is an enhancement to an existing feature or a new feature. A committed change must be reversed if this is asked by the responsible Project Owner, Module Owner, or the Board, where the conditions cannot be immediately satisfied by the equivalent of a "bug fix" commit. Such a situation must be corrected before any public release.

How to become one: Submit a number of patches via e-mail, and ask the Module Owner or Project Owner for commit access.

Any developer who wishes to become a Contributor, Committer or Module Owner - in that he/she wishes to contribute new code to the Concurrent Versions System (CVS) tree -- must also sign a Contributor Agreement. This agreement clarifies that to your knowledge, the code you've submitted was developed by you, and that you have authority to provide it and any related IP to the Grid Engine project.

Module Owners

A Module Owner is a Committer with a defined functional area of responsibility constituting one or more modules of a project.

A Module Owner has responsibility and authority to:

- Review and accept bug reports from Users, and contributions from Developers, where the contribution is a bug fix or an improved implementation of an existing capability. This authority can be delegated to a Committer.
- Review and accept suggestions and contributions for enhancements and new features which are in accordance with project goals.
- Recommend to the Project Owner changes to the project goals relative to enhancements and new features.
- Give guidance and directions for his or her area, and to ensure that questions about the area are answered and contributions/issues are handled.
- Review contributions from developers and grant committer status.

How to become one: A Committer is made a Module Owner by the Project Owner as demonstrated through a history of contributions.

Project Owner

The Project Owner acts as a 'benevolent dictator' for the project, and in this role should have ample experience with the product and the product space. The Project Owner has authority to appoint or remove Module Owners.

Fritz Ferstl will take the role of Project Owner at the beginning of the project. Fritz has held responsibility to guide the development of Grid Engine technology since its inception in 1993, and is presently Engineering Manager for the Grid Engine development team at Sun Microsystems.

The Board

We propose initially that the Board will consist of three members, made up of one Sun representative and two independent, non-Sun representatives, and that the board will be established by December 1, 2001. The community has the opportunity to nominate board members from now until November 10, 2001. Nominations will be accepted through the mailing list users@gridengine.sunsource.net. The board members will be announced in early September 2001, and they will initially serve a limited term beginning at that time.

The role of the board is as a "court of last resort", to resolve problems that are not resolved through a process of dialog. As such it is more important for the individuals on the board to be well familiar with the processes of open source development and related issues. The Board is expected to have high-level duties to ensure that the Grid Engine project is being run in a fair and open manner. Every effort should be made to solve disputes at the community level before turning to the Board.

How to become one: The nomination and selection process is open to public discussion, and we are actively soliciting input from the Grid Engine community. Please post your comments and suggestions to the users@gridengine.sunsource.net mailing list.

We are attempting to make the governance procedures as lightweight as possible. We seek above all to invite all interested users and developers to take part in the enhancement of this project and seek input from all. We are attempting to make sure the governance procedures will not hinder the momentum of any group or individual who seeks to use Grid Engine software or participate in the Grid Engine project.

This governance system might change as the Grid Engine community grows, but we are committed to a system that is fair and open to all community members. If you have any questions, suggestions, and/or concerns, please post them on the general mailing list.