This document defines the project governance for NATS.
The NATS community adheres to the following principles:
- Open: NATS is open source. See repository guidelines and processes below.
- Welcoming and respectful: See Code of Conduct, below.
- Transparent and accessible: Work and collaboration are done in public.
- Merit: Ideas and contributions are accepted according to their technical merit and alignment with project objectives, scope, and design principles.
Overall, Maintainers are responsible for the project as a whole and are expected to guide the general project direction as well as be the final reviewer on PRs and perform releases. Maintainers may be specifically responsible for one or more components within a project, and are expected to contribute code and documentation, review PRs including ensuring quality of code, triage issues, proactively fix bugs, and perform maintenance tasks for these components.
New maintainers must be proposed by an existing maintainer and must be elected by a 2/3 majority organization vote. Maintainers can be removed by a 2/3 majority organization vote or can resign by notifying the maintainers.
The NATS project employs "organization voting" to ensure no single organization can dominate the project. Ideally, all project decisions are resolved by consensus, but if this is not possible, maintainers may call a vote.
Individuals not associated with or employed by a company or organization are allowed one organization vote. Each company or organization (regardless of the number of maintainers associated with or employed by that company/organization) receives one organization vote.
In other words, if two maintainers are employed by Company X, two by Company Y, two by Company Z, and one maintainer is an un-affiliated individual, a total of four "organization votes" are possible; one for X, one for Y, one for Z, and one for the un-affiliated individual.
Any maintainer from an organization may cast the vote for that organization.
For formal votes, a specific statement of what is being voted on should be added to the relevant Github issue or PR, and a link to that issue or PR added to the maintainers voting document. Maintainers should indicate their yes/no vote on that issue or PR, and after a suitable period of time, the votes will be tallied and the outcome noted.
Maintainers will be added to the NATS GitHub organization.
All PRs must receive approval from at least one maintainer prior to merging.
All changes in Governance require a 2/3 majority organization vote of the maintainers.
NATS follows the CNCF Code of Conduct:
https://github.com/cncf/foundation/blob/master/code-of-conduct.md