|
| 1 | +The projects within the GlassFish community have a very flat, lightweight governance structure. |
| 2 | +Decisions are made in public discussion on public mailing lists. There are few formal roles--an |
| 3 | +individual's word carries weight in accordance with their contribution to the project. |
| 4 | +Decisions are made by consensus, rather than voting--most decisions are of interest only |
| 5 | +to members of the community who will be affected by it. The combination of public mailing lists |
| 6 | +and consensus ensures that any person who could be affected by a decision both finds out about it, |
| 7 | +and has a voice in the discussion. |
| 8 | + |
| 9 | +## Roles and Responsibilities |
| 10 | + |
| 11 | + |
| 12 | +There are quite a few ways to participate on projects within the GlassFish community, |
| 13 | +and not all of them involve contributing source code to a project! Simply using the software, |
| 14 | +participating on mailing lists, or filing bug reports or enhancement requests is an incredibly valuable |
| 15 | +form of participation. |
| 16 | + |
| 17 | +If one were to break down the forms of participation in GlassFish projects into a set of roles, |
| 18 | +the result would look something like this: Users, Contributors, Committers, Maintainers, and Project Lead. |
| 19 | + |
| 20 | +### Users |
| 21 | + |
| 22 | +Users are the people who use the software. Users are using the software, reporting bugs, |
| 23 | +making feature requests and suggestions. This is by far the most important category of people. |
| 24 | +Without users, there is no reason for the project. |
| 25 | + |
| 26 | +How to become one: Download the software and use it to build an application. |
| 27 | + |
| 28 | +### Contributors |
| 29 | + |
| 30 | +Contributors are individuals who contribute to a GlassFish project, but do not have write access |
| 31 | +to the source tree. Contributions can be in the form of source code patches, new code, or bug reports, |
| 32 | +but could also include web site content like articles, FAQs, or screenshots. |
| 33 | + |
| 34 | +A contributor who has sent in solid, useful source code patches on a project can be elevated |
| 35 | +to committer status by the maintainer. |
| 36 | + |
| 37 | +Integration of a Contributors' submissions is at the discretion of the project maintainer, but this is |
| 38 | +an iterative, communicative process. Note that for code to be integrated, a completed |
| 39 | +Oracle Contribution Agreement (OCA) is required from each contributor. See the [OCA policy](#oca-policy) |
| 40 | +for info. |
| 41 | + |
| 42 | +How to become one: Contribute in any of the ways described above: either code, examples, |
| 43 | +web site updates, tests, bugs, and patches. If you're interested in becoming a Committer to the source base, |
| 44 | +get the sources to the project, make an improvement or fix a bug, and send that code |
| 45 | +to the developers mailing list or attach it to the bug report in the project issue tracking system. |
| 46 | + |
| 47 | +### Committers |
| 48 | + |
| 49 | +Committers have write access to the source tree, either for the individual modules they are working on, |
| 50 | +or in some cases global write permissions everywhere in the source code management system. |
| 51 | + |
| 52 | +A committer must complete and send in a OCA to commit code. See the [OCA policy](#oca-policy) for info. |
| 53 | + |
| 54 | +Rules for how to commit, once you have commit access, will vary by project and module. Be sure to ask |
| 55 | +before you start making changes! |
| 56 | + |
| 57 | +How to become one: Submit some patches via email, and ask the maintainer of the code you've patched |
| 58 | +for commit access. The maintainer will seek consensus before granting Committer access, but their |
| 59 | +decisions are final. |
| 60 | + |
| 61 | +### Maintainers |
| 62 | + |
| 63 | +Each module has one maintainer, who has check-in permissions (either for that module or globally), |
| 64 | +and "manages" a group of Committers. They are responsible for merging contributors' patches, bug fixes, |
| 65 | +and new code from the development branch of the source tree into the stable branch. |
| 66 | +Maintainers are responsible for making sure that these contributions do not break the build. |
| 67 | + |
| 68 | +The Maintainer is also responsible for checking that everyone who contributes code has submitted a OCA. |
| 69 | +See the [OCA policy](#oca-policy) for info. |
| 70 | + |
| 71 | +A Maintainer is responsible for their module, and for granting check-in privileges to contributors. |
| 72 | +They also act as the "police force" of the module, helping to ensure quality across the build. |
| 73 | + |
| 74 | +How to become one: Start a module (you need to have written some working code on your project to do this, |
| 75 | +you'll also need to talk to the Project Lead). Have responsibility for that module handed over to you |
| 76 | +from the current Maintainer. Take over an abandoned project--sometimes someone starts something, |
| 77 | +but for one reason or another can't continue to work on it. If it's interesting to you, volunteer! |
| 78 | + |
| 79 | +### Project Lead |
| 80 | + |
| 81 | +Each project in the GlassFish community has an overall Project Lead. The Project Leads are currently appointed |
| 82 | +by Oracle. They are responsible for managing the entire project, helping to create policies by consensus |
| 83 | +that ensure global quality. |
| 84 | + |
| 85 | +## OCA Policy |
| 86 | + |
| 87 | +The first step to contributing code or submitting a patch is to sign and return a signed copy of the |
| 88 | +[Contributor Agreement][oca-agreement]. Please print this form out, fill in all the necessary detail, |
| 89 | +scan it in, and return it via e-mail : `oracle-ca_us [at] oracle [dot] com`. |
| 90 | + |
| 91 | +The [main OCA page][oca-main] has more information and the list of current signatories. You may also want to read |
| 92 | +the [Contributor agreement FAQ][oca-faq]. |
| 93 | + |
| 94 | +[oca-agreement]: http://oss.oracle.com/oca.pdf |
| 95 | +[oca-main]: http://oracle.com/technetwork/goto/oca |
| 96 | +[oca-faq]: http://oss.oracle.com/oca-faq.pdf |
0 commit comments