GOVERNANCE.md
Becoming a maintainer generally means that you are going to be spending substantial time on Envoy for the foreseeable future. You should have domain expertise and be extremely proficient in C++.
If a maintainer is no longer interested or cannot perform the maintainer duties listed above, they should volunteer to be moved to emeritus status. In extreme cases this can also occur by a vote of the maintainers per the voting process below.
The xDS API shepherds are responsible for approving any PR that modifies the api/ tree. They ensure that API style and versioning policies are enforced and that a consistent approach is taken towards API evolution.
The xDS API shepherds are also the xDS API maintainers; they work collaboratively with the community to drive the xDS API roadmap and review major proposed design changes. The API shepherds are intended to be representative of xDS client and control plane developers who are actively working on xDS development and evolution.
As with maintainers, an API shepherd should be spending at least 25% of their time working on xDS
developments and expect to be active in this space in the near future. API shepherds are expected to
take on API shepherd review load and participate in meetings. They should be active on Slack #xds
and responsive to GitHub issues and PRs on which they are tagged.
The API shepherds are distinct to the xDS working group, which aims to evolve xDS directionally towards a universal dataplane API. API shepherds are responsible for the execution of the xDS day-to-day and guiding xDS implementation changes. Proposals from xDS-WG will be aligned with the xDS API shepherds to ensure that xDS is heading towards the xDS goal of client and server neutral xDS. xDS API shepherds operate under the envoyproxy organization but are expected to keep in mind the needs of all xDS clients (currently Envoy and gRPC, but we are aware of other in-house implementations) and the goals of xDS-WG.
If you wish to become an API shepherd and satisfy the above criteria, please contact an existing API shepherd. We will factor in PR and review history to determine if the above API shepherd requirements are met. We may ask you to shadow an existing API shepherd for a period of time to build confidence in consistent application of the API guidelines to PRs.
Adding new extensions has a dedicated policy. Please see this document for more information.
Adding new external dependencies has a dedicated policy. Please see this document for more information.
In general, we prefer that technical issues and maintainer membership are amicably worked out between the persons involved. If a dispute cannot be decided independently, the maintainers can be called in to decide an issue. If the maintainers themselves cannot decide an issue, the issue will be resolved by voting. The voting process is a simple majority in which each senior maintainer receives two votes and each normal maintainer receives one vote.
New projects will be added to the envoyproxy organization via GitHub issue discussion in one of the existing projects in the organization. Once sufficient discussion has taken place (~3-5 business days but depending on the volume of conversation), the maintainers of the project where the issue was opened (since different projects in the organization may have different maintainers) will decide whether the new project should be added. See the section above on voting if the maintainers cannot easily decide.