NetBeans Governance & Project Roles

The NetBeans project has a very flat, lightweight governance structure. Decisions are made in public discussion on public mailing lists. There are no formal roles--an individual's word carries weight in accordance with their contribution to the project. Decisions are made by consensus, rather than voting--most decisions are of interest only to members of the community who will be affected by them. The combination of public mailing lists and consensus ensures that any person who could be affected by a decision both finds out about it, and has a voice in the discussion.

In the case of an irresolvable dispute, there is a Governance Board. The board consists of three people, who are appointed for year-long terms. Two of the members are appointed by the community, by consensus or vote on the public mailing lists. The third is appointed by Oracle, which funds the web site and developers who work on NetBeans full-time. The board is a voting body, but in practice, a dispute that cannot be resolved and needs its intervention is extremely rare.

The nomination and voting procedures for NetBeans Governance Board elections are described in detail on the Governance Board Election Process page.

Roles and Responsibilities

There are quite a few ways to participate in the NetBeans project and community, and not all of them involve contributing source code to the project! Simply using the IDE or Platform, participating on mailing lists or filing bug reports or enhancement requests is an incredibly valuable form of participation.

If one were to break down the forms of participation in the NetBeans project into a set of roles, the result would look something like this: Users -- Contributors -- Developers -- Maintainers -- and finally, "The Board".


  • Users are the people who use the Platform or the IDE. They use the software, report bugs, and make feature requests and suggestions. This is by far the most important category of people. Without users, there is no reason for the project.
  • How to become a User: Download the IDE and use it to write code, or download the Platform and use it to build an application.


  • Contributors are individuals who contribute to, but do not have write-access to the source tree. Contributions can be in the form of source code patches, new code, or bug reports, but could also include website content like Articles, FAQs or screenshots.
  • A contributor who has sent in solid, useful (source code) patches on a project can be elevated to developer status by the maintainer. Integration of contributors' contributions is at the discretion of the project maintainer, but this is an iterative, communicative process. Note that for code to be integrated, a completed OCA is required from each contributor. See the OCA policy page for info.

  • How to become a Contributor: Contribute in any of the ways described on the contribution page. If you're interested in becoming a developer of the source base, get the sources to the IDE, make an improvement or fix a bug, and send that code to the developers mailing list or attach it to the bug report in IssueZilla.


  • Developers have write-access to the source tree, either for the individual modules they are working on, or in some cases global write permissions everywhere. A developer must complete and send in a Contributor Agreement form to commit code - see the OCA policy page for info.
  • How to participate as a Developer: Submit a patch (or patches) via email, and ask the maintainer of the code you've patched for commit access. See the contributing page for more details.


  • Each module has one maintainer, who has check-in permissions (either for that module or globally), and "manages" a group of developers. Maintainers are responsible for merging contributors' patches, bug fixes and new code from the development branch of the source tree onto the stable branch; and for making sure that these contributions do not break the build. The Maintainer is also responsible for checking that everyone who contributes code has submitted a OCA. See the the CA policy page for info.
  • A maintainer is responsible for the web space for that module, at http://<module>, and for granting check-in privileges for contributors. For module projects, the person who started that project or currently maintains it is the maintainer.

  • How to become a Maintainer:

    • Start a module project (you need to have written some working code on your project to do this), or
    • Have responsibility for a module handed over to you from the current maintainer, or
    • Take over an abandoned project. Sometimes an individual starts a project, but for one reason or another can't continue to work on it. If the project is of interest to you, volunteer!

    See the contributing page for more details.

The Board

  • As mentioned above, the Board consists of three members, made up of one Oracle-appointed representative and two at-large representatives. The Board has the high-level duty to ensure that the project is run in a fair and open manner. The Board exists as a last resort to resolve disputes and grievances. Every effort should be made to solve disputes at the community level before turning to the Board. Board members, both past and present, are listed on the Board pages.
  • Should you need to contact the board, send an email: . This list includes the current board members, and may also include past board members, who have the right to opt to remain subscribed after their term has concluded. Past board members on the list may participate and advise in any discussions, but have no vote or power in current events. Remember the board is a last resort to settle disputes--please try to resolve problems on the normal public mailing lists before contacting the board!

  • We seek to maintain governance procedures that are as lightweight as possible. Above all, we invite all interested developers to take part in the enhancement of this project--we seek input from all. The governance procedures should never become an obstacle to the momentum of any group or individual within it who seeks to create software as part of the NetBeans project.

  • How to become a Board member: Board members must be nominated by fellow community members on the public mailing lists during a board election cycle. Any participant in the community is eligible for membership on the NetBeans board. The duty of board members has historically been very light, but anyone choosing nomination should be aware that there exists the possibility that they will need to make decisions that can affect the future of the project. The nomination and voting procedures are described in detail on the Board Election Process page.


Please see the Oracle Privacy Policy, the Terms of Use.