From 6611dc79c19e9d5d67e01fcbc4dbca17c31585dc Mon Sep 17 00:00:00 2001 From: Emanuele Stoppa Date: Fri, 15 Sep 2023 14:34:50 +0100 Subject: [PATCH 1/7] chore: add governance --- CONTRIBUTING.md | 2 + GOVERNANCE.md | 196 ++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 198 insertions(+) create mode 100644 GOVERNANCE.md diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 140e32ff3fb3..caffe9bf08aa 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -384,3 +384,5 @@ When releasing a new version of a Biome, follow these steps: This field is set to `next` for newly created rules. This field must be updated to the new version. Then execute `just codegen-linter`. + +1. [ ] Once the PR is merged, the CI will trigger the `Release: *` workflows. Once these workflows finish compiling the final artefact, **they need to be approved manually**. diff --git a/GOVERNANCE.md b/GOVERNANCE.md new file mode 100644 index 000000000000..421118277a64 --- /dev/null +++ b/GOVERNANCE.md @@ -0,0 +1,196 @@ +# Governance + +This document outlines the governance model for Biome. This document includes the contributor model, code review, merging, and the consequences and process for Code of Conduct violations. + +## Member Roles + +All members must follow the [Code of Conduct](CODE_OF_CONDUCT.md). Consequences for member violations are detailed in [Moderation](#moderation). + +### Lead + +Leads are the owners of the organisation. + +Leads have additional privileges over core contributors. Leads control and maintain sensitive project assets and act as tiebreakers in the event of disagreements. + +These assets and responsibilities are but are not limited to: +- Access to social accounts +- Administration privileges of the [Biome Discord server][discord] +- Administration privileges of the [Biome GitHub org][gh-org] +- Website accesses (hosting platform, domain name, etc.) +- Ability to vote for new leads +- Onboard new [core contributors](#core-contributor) and new leads; +- Takes part in [project decisions](#project-direction-and-planning) + +The ownership of assets is only sometimes evenly distributed among all the leads. + +### Core Contributor + +Core Contributors are outstanding [maintainers](#maintainer), ambassadors of Biome organisation and lead by example the community. + +- Push access to the [Biome GitHub org][gh-org], this includes all repositories +- `Core contributor` status on the [Biome Discord server][discord] +- Takes part in [project decisions](#project-direction-and-planning) +- Ability to [vote](#maintainer-nomination) on new maintainers and [vote](#core-contributor-nomination) on new core contributors +- Onboard new [maintainers](#maintainer) + +#### Core contributor nomination + +Core contributors may either be nominated by another, [Core contributor](#core-contributor), or [lead](#lead). + +When nominating a core contributor, the person has to create a new thread in the `#core-contributors` channel with a significant explanation of why the person should join as [core contributor](#core-contributor). + +`#core-contributors` is a private channel available only to people who have the `Core contributor` role. + +The voting period will follow the [voting rules](#voting-rules). An individual becomes a [core contributor](#core-contributor) if: +- receive at least a positive vote from a [lead](#lead); +- more than 70% of positive votes across the members of the Core contributors team; + +A core contributor can be self-nominated. They will have to message a [lead maintainer](#lead) privately and present a case. Then, the lead can: +- reject the nomination in place, provide reasons why and possibly some suggestions for the future; +- initiate a voting session among the core contributors; + +Upon termination of a nomination, the thread will be deleted, and a [lead](#lead) will reach out to the nominee and ask them if they want to accept the title. + +In the event of a rejection, the nominated person will be privately given the requirements they have yet to meet. Details of the discussion - for example, those who objected to the nomination - will not be disclosed. + +### Maintainer + +Maintainers are those with a history of consistent contributions, including but not limited to pull requests, project management, or support. These privileges include: + +- Push access to some of the repositories of the [Biome GitHub org][gh-org] +- `Maintainer` status on the [Biome Discord server][discord] +- Ability to [vote](#voting) on project decisions +- Ability to [vote](#maintainer-nomination) on new maintainers + +#### Maintainer nomination + +Maintainers may either be nominated by another [maintainer](#maintainer), [Core contributor](#core-contributor), [lead](#lead). + +When nominating a new maintainer, the person has to create a new thread in the `#maintainers` channel, provide a link to the history of the person's contributions to the project and a brief explanation of why the person should join as [maintainer](#maintainer). + +`#maintainers` is a private channel available only to people who have the `maintainer` role. + +The voting period will follow the [voting rules](#voting-rules). An individual becomes a [maintainer](#maintainer) if: +- reaches more than 50% of positive votes among the people who have voting rights; +- if the voting session ends with 50%, the Lead maintainers will take the decision; +- + +A maintainer can be self-nominated. They will have to message a [lead maintainer](#lead) privately with links to their contributions to the project. Then, the lead can: +- reject the nomination in place, provide reasons why and possibly some suggestions for the future; +- initiate a voting session among the maintainers; + +Upon termination of a nomination, the thread will be deleted, and a [core contributor](#core-contributor) will reach out to the nominee and ask them if they want to accept the title. + +In the event of a rejection, the nominated person will be privately given the requirements they have not met. Details of the discussion, such as the names of those who objected the nomination, will not be disclosed. + + +### Voting Rules + +- Members may abstain from a vote. +- Members who do not vote within seven days will automatically abstain. +- Leads may reduce the seven days automatic abstain for urgent decisions. +- Leads reserve the right to veto approval with a publicly disclosed reason. + +### Ownership + +One or more people can own certain parts of the codebase. This process is informal, and inclusion could result from substantial contributions or delegation by other members. A maintainer's responsibility is to identify the relevant owners and ensure there's an understanding when it comes to code review. + + +### Inactivity + +There are no expectations around activity once someone becomes a core contributor or maintainer. Inactive core contributors or maintainers may have voting rights removed; however, will always retain their status. A core contributor or maintainer may request their voting rights back upon sufficient activity. + + +## Current Members + +Members are listed in alphabetical order. Members are free to use the full name, GitHub handle, or any other nickname they wish to be addressed. Members are free to disclose their gender. + +### Lead team + +- [Emanuele Stoppa @ematipico](https://github.com/ematipico) + +### Core Contributors team + + +### Maintainers team + + +## Project direction and planning + +Project direction and planning is a shared responsibility amongst members. Core contributors are responsible for dictating high-level goals and the project scope that should be adhered to. + +### Roadmap + +Leads may create a roadmap document to share with the community once the core contributors have set the project's goals. + +Roadmaps don't provide dates or deadlines; they only reflect what the core contributors decide to work on and how to spend the resources. + +The span of a roadmap should cover six months, but it might vary. + +## Code review +We have a reasonably liberal approach to code review and merging. We value quick iteration and low development friction, which comes with great responsibility. Reverting code is easy, so landing code should be just as easy. Because of this, Biome will have discrete releases rather than rolling releases that are automatically published. + +- If you own a particular area, you can merge it without any review despite PR size. +- If there are comments or suggestions after a PR is merged after the fact, allow yourself time to address them in a follow-up PR. If you don't respond in a reasonable timeframe, then create an issue to track. +- Ensure that the PR summary is detailed, listing steps you took to verify the rationale and relevant issues and people involved in any prior discussion. +- Ensure that PRs contain adequate tests and code comments for a future contributor to derive intent and modify your code safely. +- You are welcome to the repos for your WIP branches. Branches that have more than four months of inactivity will be pruned. +- If you add a new feature, ensure it has been discussed or approved on GitHub or Discord. +- If necessary, identify potential owners for PR review and approval. +- All code must go through Pull Requests (PR) and pass status checks before being merged. If a PR is merged that breaks `main` due to the branch not being up-to-date, then it should either be reverted or a quick fix merged as a separate PR. +- If a PR is against code you have previously committed and is either small changes, bug fixes, or refactors, then you're free to merge it without any review. However, if you need more confidence in your changes, you can wait for approval from another maintainer or core contributor. + +## Moderation + +Outlined below is the process for Code of Conduct violation reviews. + +### Reporting + +Anyone may report a violation. Violations can be reported in the following ways: + +- In private, via which is listed in the [Code of Conduct](./CODE_OF_CONDUCT.md). All core contributors monitor this email address. +- In private, via email to one or more core contributors. +- In private, via direct message to a core contributor on [Discord server][discord]. +- In public, via a GitHub comment (mentioning `@biomejs/core-contributors`). +- In public, via the project [Discord server][discord]. + +### Who gets involved? + +Each report will be assigned reviewers. These will initially be all project [core contributors](#core-contributors-team). + +In the event of any conflict of interest - e.g. core contributors who are personally connected to a situation they must immediately recuse themselves. + +At the reporter's request and if deemed appropriate by the reviewers, another neutral third party may be involved in the review and decision process. + +### Review + +If a report doesn't contain enough information, the reviewers will strive to obtain all relevant data before acting. + +The reviewers will then review the incident and determine, to the best of their ability: + +- What happened. +- Whether this event constitutes a Code of Conduct violation. +- Who, if anyone, was involved in the violation. +- Whether this is an ongoing situation. + +The reviewers should aim to have a resolution agreed very rapidly; if they have not decided within a week, they will inform the parties of the planned date. + +### Resolution + +The reviewers will determine responses based on the information gathered and the potential consequences. It may include: + +- taking no further action +- issuing a reprimand (private or public) +- asking for an apology (private or public) +- permanent ban from the GitHub org and Discord server +- revoked contributor or moderator status + +## OpenCollective fund allocation + +- Funds will be allocated for project-specific services such as domain registration and website hosting. +- Other usage of funds has yet to be decided. +- Expenses will be approved by the [leads](#lead). + + +[gh-org]: https://github.com/biomejs +[discord]: https://discord.gg/BypW39g6Yc± From 2f40254649708a87e6dd33fff1cd3762315c9296 Mon Sep 17 00:00:00 2001 From: Emanuele Stoppa Date: Fri, 15 Sep 2023 16:23:17 +0100 Subject: [PATCH 2/7] Update GOVERNANCE.md Co-authored-by: Daiki Nishikawa --- GOVERNANCE.md | 1 - 1 file changed, 1 deletion(-) diff --git a/GOVERNANCE.md b/GOVERNANCE.md index 421118277a64..d1f828aa2283 100644 --- a/GOVERNANCE.md +++ b/GOVERNANCE.md @@ -73,7 +73,6 @@ When nominating a new maintainer, the person has to create a new thread in the ` The voting period will follow the [voting rules](#voting-rules). An individual becomes a [maintainer](#maintainer) if: - reaches more than 50% of positive votes among the people who have voting rights; - if the voting session ends with 50%, the Lead maintainers will take the decision; -- A maintainer can be self-nominated. They will have to message a [lead maintainer](#lead) privately with links to their contributions to the project. Then, the lead can: - reject the nomination in place, provide reasons why and possibly some suggestions for the future; From 2714a3c2eb1b95c25882f7a43bbeb3b89eb7957d Mon Sep 17 00:00:00 2001 From: Emanuele Stoppa Date: Sun, 17 Sep 2023 17:54:08 +0100 Subject: [PATCH 3/7] chore: address some feedback --- CONTRIBUTING.md | 15 ++++++++++++ GOVERNANCE.md | 61 +++++++++++++++++++++++++++++++++---------------- 2 files changed, 56 insertions(+), 20 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index caffe9bf08aa..aa430e1dff57 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -386,3 +386,18 @@ When releasing a new version of a Biome, follow these steps: Then execute `just codegen-linter`. 1. [ ] Once the PR is merged, the CI will trigger the `Release: *` workflows. Once these workflows finish compiling the final artefact, **they need to be approved manually**. + + +## Current Members + +Members are listed in alphabetical order. Members are free to use the full name, GitHub handle, or any other nickname they wish to be addressed. Members are free to disclose their pronouns. + +### Lead team + +- [Emanuele Stoppa @ematipico](https://github.com/ematipico) + +### Core Contributors team + + +### Maintainers team + diff --git a/GOVERNANCE.md b/GOVERNANCE.md index d1f828aa2283..df597f09a862 100644 --- a/GOVERNANCE.md +++ b/GOVERNANCE.md @@ -10,22 +10,41 @@ All members must follow the [Code of Conduct](CODE_OF_CONDUCT.md). Consequences Leads are the owners of the organisation. -Leads have additional privileges over core contributors. Leads control and maintain sensitive project assets and act as tiebreakers in the event of disagreements. +Leads have additional privileges over core contributors. Leads control and maintain sensitive project assets and act as tiebreakers in the event of disagreements. In case of disagreements, only **one** lead must be involved in the resolution. These assets and responsibilities are but are not limited to: - Access to social accounts - Administration privileges of the [Biome Discord server][discord] - Administration privileges of the [Biome GitHub org][gh-org] - Website accesses (hosting platform, domain name, etc.) +- Access to sensitive emails, such as the CoC email + +Also: - Ability to vote for new leads - Onboard new [core contributors](#core-contributor) and new leads; - Takes part in [project decisions](#project-direction-and-planning) The ownership of assets is only sometimes evenly distributed among all the leads. +#### Lead nomination + +Core contributors may only be self-nominated. Being a lead only adds burden to a core contributor: more rights to be held accountable with, and more responsibilities. + +When nominating a core contributor, the person has to create a new thread in the `#leads` channel with a case of why the person should join as [core contributor](#core-contributor). + +`#leads` is a private channel available only to people who have the `Lead` role. + +The voting period will follow the [voting rules](#voting-rules). An individual becomes a [lead](#core-contributor) if all the other leads vote in favour. + +If vote is successful, the lead will ask the nominee if they want to accept the title. + +In the event of a rejection, the nominated person will be privately given the requirements they have yet to meet. Details of the discussion - for example, those who objected to the nomination - will not be disclosed. + + + ### Core Contributor -Core Contributors are outstanding [maintainers](#maintainer), ambassadors of Biome organisation and lead by example the community. +Core Contributors are outstanding [maintainers](#maintainer), are ambassadors of Biome organisation and lead by example the community. - Push access to the [Biome GitHub org][gh-org], this includes all repositories - `Core contributor` status on the [Biome Discord server][discord] @@ -37,7 +56,7 @@ Core Contributors are outstanding [maintainers](#maintainer), ambassadors of Bio Core contributors may either be nominated by another, [Core contributor](#core-contributor), or [lead](#lead). -When nominating a core contributor, the person has to create a new thread in the `#core-contributors` channel with a significant explanation of why the person should join as [core contributor](#core-contributor). +When nominating a core contributor, the person has to create a new thread in the `#core-contributors` channel with a case and [their contributions](#contributions) of why the person should join as [core contributor](#core-contributor). `#core-contributors` is a private channel available only to people who have the `Core contributor` role. @@ -45,11 +64,15 @@ The voting period will follow the [voting rules](#voting-rules). An individual b - receive at least a positive vote from a [lead](#lead); - more than 70% of positive votes across the members of the Core contributors team; +Voting requirements may change in the future based on the amount of people involved in the vote. + A core contributor can be self-nominated. They will have to message a [lead maintainer](#lead) privately and present a case. Then, the lead can: -- reject the nomination in place, provide reasons why and possibly some suggestions for the future; +- reject the nomination in place, provide reasons why and possibly some suggestions for the future; the lead - initiate a voting session among the core contributors; -Upon termination of a nomination, the thread will be deleted, and a [lead](#lead) will reach out to the nominee and ask them if they want to accept the title. +When the verdict is reached, the thread will be deleted, and a [lead](#lead) will reach out to the nominee. + +If vote is successful, the core member will ask the nominee if they want to accept the title. In the event of a rejection, the nominated person will be privately given the requirements they have yet to meet. Details of the discussion - for example, those who objected to the nomination - will not be disclosed. @@ -66,7 +89,7 @@ Maintainers are those with a history of consistent contributions, including but Maintainers may either be nominated by another [maintainer](#maintainer), [Core contributor](#core-contributor), [lead](#lead). -When nominating a new maintainer, the person has to create a new thread in the `#maintainers` channel, provide a link to the history of the person's contributions to the project and a brief explanation of why the person should join as [maintainer](#maintainer). +When nominating a new maintainer, the person has to create a new thread in the `#maintainers` channel, provide a link to the history of the [person's contributions](#contributions) to the project and a brief explanation of why the person should join as [maintainer](#maintainer). `#maintainers` is a private channel available only to people who have the `maintainer` role. @@ -78,17 +101,20 @@ A maintainer can be self-nominated. They will have to message a [lead maintainer - reject the nomination in place, provide reasons why and possibly some suggestions for the future; - initiate a voting session among the maintainers; -Upon termination of a nomination, the thread will be deleted, and a [core contributor](#core-contributor) will reach out to the nominee and ask them if they want to accept the title. +When the verdict is reached, the thread will be deleted, and a [core contributor](#core-contributor) or [lead](#lead) will reach out to the nominee. -In the event of a rejection, the nominated person will be privately given the requirements they have not met. Details of the discussion, such as the names of those who objected the nomination, will not be disclosed. +If vote is successful, the lead will ask the nominee if they want to accept the title. +In the event of a rejection, the nominated person will be privately given the requirements they have not met. Details of the discussion, such as the names of those who objected the nomination, will not be disclosed. ### Voting Rules +- Members are required to vote. - Members may abstain from a vote. - Members who do not vote within seven days will automatically abstain. - Leads may reduce the seven days automatic abstain for urgent decisions. - Leads reserve the right to veto approval with a publicly disclosed reason. +- It's highly suggested to pair the vote with a reason of the vote, e.g. "I vote in favour because that person writes good code". These reasons will be collected and brought up to the nominee at the end of the voting phase. ### Ownership @@ -100,19 +126,14 @@ One or more people can own certain parts of the codebase. This process is inform There are no expectations around activity once someone becomes a core contributor or maintainer. Inactive core contributors or maintainers may have voting rights removed; however, will always retain their status. A core contributor or maintainer may request their voting rights back upon sufficient activity. -## Current Members - -Members are listed in alphabetical order. Members are free to use the full name, GitHub handle, or any other nickname they wish to be addressed. Members are free to disclose their gender. - -### Lead team - -- [Emanuele Stoppa @ematipico](https://github.com/ematipico) - -### Core Contributors team - - -### Maintainers team +### Contributions +Contributions to be project aren't only limited to code. Contributions come in different forms and ways: +- Documentation +- Code to all the repositories of the [GitHub org][gh-org] +- Support in primary channels of the organization, e.g. GitHub and Discord +- Support in secondary channels, e.g. StackOverflow, etc. +- Website; ## Project direction and planning From 01abf3b618609c98b81af154e4abc84e6aad1081 Mon Sep 17 00:00:00 2001 From: Emanuele Stoppa Date: Sun, 17 Sep 2023 17:55:25 +0100 Subject: [PATCH 4/7] Apply suggestions from code review Co-authored-by: Tierney Cyren --- GOVERNANCE.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/GOVERNANCE.md b/GOVERNANCE.md index df597f09a862..39ae7d80be95 100644 --- a/GOVERNANCE.md +++ b/GOVERNANCE.md @@ -199,11 +199,11 @@ The reviewers should aim to have a resolution agreed very rapidly; if they have The reviewers will determine responses based on the information gathered and the potential consequences. It may include: -- taking no further action -- issuing a reprimand (private or public) -- asking for an apology (private or public) -- permanent ban from the GitHub org and Discord server -- revoked contributor or moderator status +- Taking no further action +- Issuing a reprimand (private or public) +- Asking for an apology (private or public) +- Permanent ban from the GitHub org and Discord server +- Revoked contributor or moderator status ## OpenCollective fund allocation From 852611c4284d0cedceb17380f5106e4e4fb74b25 Mon Sep 17 00:00:00 2001 From: Emanuele Stoppa Date: Mon, 18 Sep 2023 09:00:34 +0100 Subject: [PATCH 5/7] chore: more info --- GOVERNANCE.md | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/GOVERNANCE.md b/GOVERNANCE.md index 39ae7d80be95..e3642c07e884 100644 --- a/GOVERNANCE.md +++ b/GOVERNANCE.md @@ -40,8 +40,6 @@ If vote is successful, the lead will ask the nominee if they want to accept the In the event of a rejection, the nominated person will be privately given the requirements they have yet to meet. Details of the discussion - for example, those who objected to the nomination - will not be disclosed. - - ### Core Contributor Core Contributors are outstanding [maintainers](#maintainer), are ambassadors of Biome organisation and lead by example the community. @@ -54,6 +52,8 @@ Core Contributors are outstanding [maintainers](#maintainer), are ambassadors of #### Core contributor nomination +Only [maintainers](#maintainer) can be nominated to be core contributors. + Core contributors may either be nominated by another, [Core contributor](#core-contributor), or [lead](#lead). When nominating a core contributor, the person has to create a new thread in the `#core-contributors` channel with a case and [their contributions](#contributions) of why the person should join as [core contributor](#core-contributor). @@ -120,11 +120,14 @@ In the event of a rejection, the nominated person will be privately given the re One or more people can own certain parts of the codebase. This process is informal, and inclusion could result from substantial contributions or delegation by other members. A maintainer's responsibility is to identify the relevant owners and ensure there's an understanding when it comes to code review. - ### Inactivity -There are no expectations around activity once someone becomes a core contributor or maintainer. Inactive core contributors or maintainers may have voting rights removed; however, will always retain their status. A core contributor or maintainer may request their voting rights back upon sufficient activity. +There aren't strict requirements and expectations around activity for core contributors and maintainers; although long periods of inactivity have be communicated to the team. + +Inactive core contributors or maintainers may have voting and access rights removed and status removed, and given them the _Past contributor_ status. A core contributor or maintainer may request their voting rights and status back upon sufficient activity. +> [!NOTE] +> The definition of "long periods", and how long an individual needs to stay inactive in order to have their voting rights removed have yet to be decided. ### Contributions @@ -208,9 +211,11 @@ The reviewers will determine responses based on the information gathered and the ## OpenCollective fund allocation - Funds will be allocated for project-specific services such as domain registration and website hosting. -- Other usage of funds has yet to be decided. - Expenses will be approved by the [leads](#lead). +> [!NOTE] +> Other usage of funds has yet to be decided. + [gh-org]: https://github.com/biomejs [discord]: https://discord.gg/BypW39g6Yc± From e4fd310b3b8fb655e0f3130686603acf2335b859 Mon Sep 17 00:00:00 2001 From: Emanuele Stoppa Date: Tue, 19 Sep 2023 15:22:47 +0200 Subject: [PATCH 6/7] Update GOVERNANCE.md Co-authored-by: unvalley <38400669+unvalley@users.noreply.github.com> --- GOVERNANCE.md | 1 + 1 file changed, 1 insertion(+) diff --git a/GOVERNANCE.md b/GOVERNANCE.md index e3642c07e884..58fc026574d1 100644 --- a/GOVERNANCE.md +++ b/GOVERNANCE.md @@ -151,6 +151,7 @@ Roadmaps don't provide dates or deadlines; they only reflect what the core contr The span of a roadmap should cover six months, but it might vary. ## Code review + We have a reasonably liberal approach to code review and merging. We value quick iteration and low development friction, which comes with great responsibility. Reverting code is easy, so landing code should be just as easy. Because of this, Biome will have discrete releases rather than rolling releases that are automatically published. - If you own a particular area, you can merge it without any review despite PR size. From 1e66735d66bc43e669b8ff12352a128dfac84b65 Mon Sep 17 00:00:00 2001 From: Emanuele Stoppa Date: Tue, 19 Sep 2023 15:38:16 +0200 Subject: [PATCH 7/7] fix: copyright issues --- GOVERNANCE.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/GOVERNANCE.md b/GOVERNANCE.md index 58fc026574d1..d8db5a4ef06d 100644 --- a/GOVERNANCE.md +++ b/GOVERNANCE.md @@ -28,13 +28,13 @@ The ownership of assets is only sometimes evenly distributed among all the leads #### Lead nomination -Core contributors may only be self-nominated. Being a lead only adds burden to a core contributor: more rights to be held accountable with, and more responsibilities. +Leads may only be self-nominated. Being a lead only adds burden to a core contributor: more rights to be held accountable with, and more responsibilities. -When nominating a core contributor, the person has to create a new thread in the `#leads` channel with a case of why the person should join as [core contributor](#core-contributor). +When nominating a lead, a new thread in the `#leads` channel with a case of why the person should join as [core contributor](#core-contributor) has to be created. `#leads` is a private channel available only to people who have the `Lead` role. -The voting period will follow the [voting rules](#voting-rules). An individual becomes a [lead](#core-contributor) if all the other leads vote in favour. +The voting period will follow the [voting rules](#voting-rules). An individual becomes a lead if all the other leads vote in favour. If vote is successful, the lead will ask the nominee if they want to accept the title. @@ -56,7 +56,7 @@ Only [maintainers](#maintainer) can be nominated to be core contributors. Core contributors may either be nominated by another, [Core contributor](#core-contributor), or [lead](#lead). -When nominating a core contributor, the person has to create a new thread in the `#core-contributors` channel with a case and [their contributions](#contributions) of why the person should join as [core contributor](#core-contributor). +When nominating a core contributor, a new thread in the `#core-contributors` channel has to be created, with a case and [their contributions](#contributions) of why the person should join as [core contributor](#core-contributor). `#core-contributors` is a private channel available only to people who have the `Core contributor` role. @@ -89,7 +89,7 @@ Maintainers are those with a history of consistent contributions, including but Maintainers may either be nominated by another [maintainer](#maintainer), [Core contributor](#core-contributor), [lead](#lead). -When nominating a new maintainer, the person has to create a new thread in the `#maintainers` channel, provide a link to the history of the [person's contributions](#contributions) to the project and a brief explanation of why the person should join as [maintainer](#maintainer). +When nominating a new maintainer, a new thread in the `#maintainers` channel has to be created, provide a link to the history of the [person's contributions](#contributions) to the project and a brief explanation of why the person should join as [maintainer](#maintainer). `#maintainers` is a private channel available only to people who have the `maintainer` role. @@ -158,7 +158,7 @@ We have a reasonably liberal approach to code review and merging. We value quick - If there are comments or suggestions after a PR is merged after the fact, allow yourself time to address them in a follow-up PR. If you don't respond in a reasonable timeframe, then create an issue to track. - Ensure that the PR summary is detailed, listing steps you took to verify the rationale and relevant issues and people involved in any prior discussion. - Ensure that PRs contain adequate tests and code comments for a future contributor to derive intent and modify your code safely. -- You are welcome to the repos for your WIP branches. Branches that have more than four months of inactivity will be pruned. +- You are welcome to the repos for your WIP branches. If you don't use your own fork, prepend the name of the branch with your github handle, e.g. `/experiment-code` Branches that have more than four months of inactivity will be pruned. - If you add a new feature, ensure it has been discussed or approved on GitHub or Discord. - If necessary, identify potential owners for PR review and approval. - All code must go through Pull Requests (PR) and pass status checks before being merged. If a PR is merged that breaks `main` due to the branch not being up-to-date, then it should either be reverted or a quick fix merged as a separate PR.