diff --git a/COMMITTERS.md b/COMMITTERS.md new file mode 100644 index 0000000..2500818 --- /dev/null +++ b/COMMITTERS.md @@ -0,0 +1,15 @@ +# Kroxylicious Committers + +The following people are [Committers](GOVERANCE.md). +The format is: `{preferred name}, {affiliation} (@{github_username})`. + +* Tom Bentley, IBM (@tombentley) +* Robert Young, IBM (@robobario) +* Sam Barker, IBM (@SamBarker) +* Grace Grimwood, IBM (@gracegrimwood) +* Keith Wall, IBM (@k-wall) +* Francisco Vila, IBM (@franvila) +* Paul Mellor, IBM (@PaulRMellor) + +The committers can be addressed collectively in GitHub using the `@kroxylicious/committers` team. + diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 3a8f946..8b66a2a 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -27,10 +27,11 @@ Certificate of Origin (DCO)](./DCO.txt). This can be done using `git commit -s` for each commit in your pull request. Alternatively, to signoff a bunch of commits you can use `git rebase --signoff _your-branch_`. -## Code Review +## PR Review -All changes which are to be committed in project source control must be reviewed by at least one Code Owner before being merged. -If the change is being authored by someone who is a Code Owner, that change must be reviewed by at least one other Code Owner before being merged. +All changes which are to be committed in project source control must be reviewed by at least one [Committer](COMMITTERS.md) before being merged. +If the change is being authored by someone who is a Committer, that change must be reviewed by at least one other Committer before being merged. +The GitHub teams `@kroxylicious/code-reviewers` and `@kroxylicious/doc-reviewers` can be used to request a PR review from contributors. ## I just have a question diff --git a/GOVERNANCE.md b/GOVERNANCE.md index 16fd618..640df80 100644 --- a/GOVERNANCE.md +++ b/GOVERNANCE.md @@ -8,52 +8,70 @@ This governance model is designed to uphold the principles of transparency, open [ctp]: https://www.commonhaus.org/policies/trademark-policy/ [coc]: ./CODE_OF_CONDUCT.md [contrib]: ./CONTRIBUTING.md +[dco]: ./DCO.txt +[committers]: ./COMMITTERS.md +[PMs]: ./PMs.md -## Table of Contents +# Purpose -- [Roles and Responsibilities](#roles-and-responsibilities) -- [Decision Making](#decision-making) -- [Code of Conduct](#code-of-conduct) -- [Trademark Policy](#trademark-policy) -- [Contributing](#contributing) +The purpose of the Kroxylicious Project is to develop a Kafka protocol proxy with an open source license, and to make the resulting software and documentation available to Users. -## Roles and Responsibilities +## Code of Conduct + +All participants in the project are expected to adhere to the project's [Code of Conduct][coc]. Please ensure you are familiar with its guidelines and expectations, as it's essential for maintaining a positive and collaborative environment. + +## Participants + +- **Users:** Anyone using the software is a User. + While the Project exists to provide the software to Users, the other participants' duties are to all current and potential Users collectively, any not to the interests of any one User, or subset of Users. -- **Code owners:** Individuals with write access to any repository within the GitHub organisation, responsible for reviewing and merging contributions, and steering project direction. - Those people with code ownership responsibilities will be identified in each repository (`.github/CODEOWNERS`). - For the sake of transparency, the membership of github teams will be made public in [TEAMS.md](TEAMS.md). -- **Contributors:** Anyone who contributes to the project in any form. +- **Contributors:** Anyone who contributes to the project, in any form, is a Contributor. + Contributions can take a variety of forms, but many of them, such as source code and documentation, need to be approved before being accepted by the Project. + The most common kind of contribution requiring such approval is a github Pull Request (PR); the merging of the PR signifies its approval. + The duty of a Contributor is to offer a contribution in good faith, to the best of their ability, and to be honest when signing off on the [Developer Certificate of Origin][dco]. -Reference: [About code owners](https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/about-code-owners) +- **Committers:** Committers are those individuals with write access to any repository within the Kroxylicious GitHub organisation, except for the repository containing this `GOVERNANCE.md` file. + These people are listed in [COMMITTERS.md][committers]. + The duty of a Committer is to help Contributors make high quality contributions to the Project. + As such, Committers are responsible for reviewing and merging contributions. + An individual may act as both a Contributor and a Committer for a contribution. + +- **Project Managers:** Project Managers are Committers who also have write access to the repository containing this `GOVERNANCE.md` file within the Kroxylicious GitHub organisation. + These people are listed in [PMs.md][PMs]. + Project Managers are tasked with sustaining the project, in part by identifying individuals who have made valuable contributions which further the Project's purpose. + They can collectively decide to invite a Contributor to become a Committer; or to invite a Committer to become a Project Manager. + +## Contributing + +We welcome all forms of contribution, from code improvements to documentation and design. For details on how to contribute and the process your contributions will follow, please read our [Contributing Guidelines][contrib]. ## Decision Making This project follows The [Commonhaus decision making][cdm] process. -This project uses the following decision making process. -1. **Consensus-seeking (lazy consensus):** The project primarily aims for a consensus-based decision-making process, where code owners and active contributors discuss and come to an agreement. -2. **Voting:** In situations where consensus cannot be reached, decisions may be made through a simple majority vote among the code owners. -3. **Conflict Resolution:** If conflicts arise, code owners are responsible for facilitating a resolution. The [Commonhaus Foundation Council][cfc] (CFC) can be asked to mediate the discussion, if necessary. +This project uses the following decision making process for PRs in all repositories except for the repository containing this `GOVERNANCE.md`: -## Code of Conduct +1. **Consensus-seeking (lazy consensus):** The project primarily aims for a consensus-based decision-making process, where committers and active contributors discuss and come to an agreement. +2. **Voting:** In situations where consensus cannot be reached about a PR, decisions may be made through a simple majority vote among the committers. +3. **Conflict Resolution:** If conflicts arise, project managers are responsible for facilitating a resolution. The [Commonhaus Foundation Council][cfc] (CFC) can be asked to mediate the discussion, if necessary. -All participants in the project are expected to adhere to the project's [Code of Conduct](./CODE_OF_CONDUCT.md). Please ensure you are familiar with its guidelines and expectations, as it's essential for maintaining a positive and collaborative environment. +This project uses the following decision making process for PRs in the repository containing this `GOVERNANCE.md`, [COMMITTERS.md][committers] and [PMs.md][PMs] files: -## Trademark Policy +1. **Voting:** Decisions may be made through a simple majority vote among the project managers who participate in a vote, as tallied 7 days after the start of the voting process. +2. **Conflict Resolution:** If conflicts arise, project managers are responsible for facilitating a resolution. The [Commonhaus Foundation Council][cfc] (CFC) can be asked to mediate the discussion, if necessary. -The Kroxylicious logos, icons, and domain names are protected by trademark rights. Usage of these trademarks must adhere to our [Trademark Policy][ctp]. +## Becoming a Committer -## Contributing +Existing Committers are encouraged to: -We welcome all forms of contribution, from code improvements to documentation and design. For details on how to contribute and the process your contributions will follow, please read our [Contributing Guidelines][contrib]. - -## Becoming a Code Owner +* inform the Project Managers about the review burden they're experiencing. +* suggest to the Project Managers other individuals who they consider meet the Committer criteria below. -New Code Owners can be elected by a majority vote of the existing Code Owners following the [Decision Making](#decision-making) process. +The Project Managers should endeavour to match the number of active committers to the reported review burden, by inviting Contributors to become Committers. -To ensure that all potential Code Owners are judged fairly and consistently the following criteria should be taken into account in electing new Code Owners: +New Committers are elected by the Project Managers following the above [Decision Making](#decision-making) process to approve a PR which adds an individual to the [COMMITTERS.md][committers] file. -### Code Owner Criteria +To ensure that all potential Committers are judged fairly and consistently, the following criteria should be taken into account in electing new Committers: * Sustained contributions over at least 3 months ideally including non-trivial PRs. * Reviewing other contributors’ PRs @@ -65,3 +83,31 @@ To ensure that all potential Code Owners are judged fairly and consistently the * Promotion of Kroxylicious, for example by blogging, speaking at conferences, and so on. * Knowing when to ask for help or seek consensus. * An indication of being committed to the long term success of the project. + +## Becoming a Project Manager + +New Project Managers are elected by the existing Project Managers following the above [Decision Making](#decision-making) process to approve a PR which adds an individual to the [PMs.md][PMs] file. + +To ensure that all potential Project Managers are judged fairly and consistently, the following criteria (in addition to those for being a Committer) should be taken into account in electing new Project Managers: + +* Sustained contributions _as a committer_ over at least 3 months. +* Reviewing and merging other contributors’ non-trivial PRs. +* Knowing when to ask for help or seek consensus. +* Continued commitment to the long term success of the project. + +Unlike the situation for Committers, the need for more Project Managers is not driven by the review burden, and is left to the discretion of the existing Project Managers. + +The Commonhaus [Extended Governance Committee](https://www.commonhaus.org/bylaws/cf-council.html#extended-governance-committee-egc) has a [primary and secondary](https://github.com/commonhaus/foundation/blob/main/CONTACTS.yaml) representitive from the Project. +These will be selected from, and by, the Project Managers. +Other aspects of this representation are left to the discretion of the Project Managers using the [Decision Making](#decision-making) process. + + +## Ceasing participation + +A Committer or Project Manager can voluntarily cease their involvement in the project by opening a PR removing themselves from the [COMMITTERS.md][committers] and/or [PMs.md][PMs] files in this repository. +Such PRs will be deemed as approved automatically, without recourse to the [Decision Making](#decision-making) process. + +## Trademark Policy + +The Kroxylicious logos, icons, and domain names are protected by trademark rights. Usage of these trademarks must adhere to our [Trademark Policy][ctp]. + diff --git a/PMs.md b/PMs.md new file mode 100644 index 0000000..5dc0dee --- /dev/null +++ b/PMs.md @@ -0,0 +1,16 @@ + +# Project Managers + +The following people are [Project Managers](GOVERANCE.md). +The format is: `{preferred name}, {affiliation} (@{github_username})`. +Those marked with a * have access to the project's shared secrets. + +* Tom Bentley, IBM (@tombentley) +* Robert Young*, IBM (@robobario) +* Sam Barker*, IBM (@SamBarker) +* Grace Grimwood, IBM (@gracegrimwood) +* Keith Wall*, IBM (@k-wall) +* Francisco Vila, IBM (@franvila) +* Paul Mellor, IBM (@PaulRMellor) + +The project managers can be addressed collectively in GitHub using the `@kroxylicious/pms` team, or via email to to . diff --git a/TEAMS.md b/TEAMS.md deleted file mode 100644 index f75acbc..0000000 --- a/TEAMS.md +++ /dev/null @@ -1,41 +0,0 @@ - -# People - -The following people are members of at least one team. -The format is: `{preferred name}, {affiliation} (@{github_username})` - -* Tom Bentley, IBM (@tombentley) -* Robert Young, IBM (@robobario) -* Sam Barker, IBM (@SamBarker) -* Grace Grimwood, IBM (@gracegrimwood) -* Keith Wall, IBM (@k-wall) -* Francisco Vila, IBM (@franvila) -* Paul Mellor, IBM (@PaulRMellor) - -# Teams - -The following sections publicise the membership of the organization's teams. -The format for each item is `@{github_username}`, which can be cross-referenced with the people above. - -# `@kroxylicious/admins` - -* @tombentley -* @robobario -* @SamBarker -* @gracegrimwood -* @k-wall -* @franvila - -## `@kroxylicious/developers` - -* @tombentley -* @robobario -* @SamBarker -* @gracegrimwood -* @k-wall -* @franvila - -## `@kroxylicious/documentationwriters` - -* @PaulRMellor -