Skip to content

Commit

Permalink
Add Financial Contributions to GOVERNANCE
Browse files Browse the repository at this point in the history
  • Loading branch information
arendjr committed May 3, 2024
1 parent 6d264aa commit 50cee22
Showing 1 changed file with 87 additions and 23 deletions.
110 changes: 87 additions & 23 deletions GOVERNANCE.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,16 @@
# 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.
This document outlines the governance model for Biome.

## Member Roles
It describes various parts of how the project is managed as well as accepted practices for day-to-day operation:

- [Contributor Model](#contributor-model)
- [Project Direction](#project-direction)
- [Code Review](#code-review)
- [Financial Contributions](#financial-contributions)
- [Moderation](#moderation)

## Contributor Model

All members must follow the [Code of Conduct](CODE_OF_CONDUCT.md). Consequences for member violations are detailed in [Moderation](#moderation).

Expand Down Expand Up @@ -49,6 +57,7 @@ Core Contributors are outstanding [maintainers](#maintainer), are ambassadors of
- 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)
- Assign [pledges to issues](#bounties).

#### Core contributor nomination

Expand Down Expand Up @@ -139,7 +148,7 @@ Contributions to the project aren't only limited to code. Contributions come in
- Support in secondary channels, e.g. StackOverflow, etc.
- Website;

## Project direction and planning
## Project Direction

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.

Expand All @@ -165,6 +174,81 @@ We have a reasonably liberal approach to code review and merging. We value quick
- 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.

## Financial Contributions

Biome is in the fortunate position that people care enough about it that they want to invest in its future financially. However, with money comes responsibility, so we are setting the following around

There are two ways of funding Biome and its development, though we greatly prefer the first.

### Sponsorship

Sponsorship is the first and foremost way of making financial contributions to Biome. Sponsorship can be
done through a one-time donation, or through recurring donations. We offer incentives for certain levels of recurring donations.

To learn more about sponsorship incentives, or to make a donation, please visit our Open Collective page: https://opencollective.com/biome

### Community-Funded Bounties

Bounties are the second approach towards funding Biome development. Unlike a sponsorship, bounties are directed towards the completion of a specific task. Tasks include, but are not limited to, the development of a feature or the fixing of a bug.

Compared to sponsorship, bounties come with a few risks, both for Biome as a project, as well as the persons or entities offering and collecting the bounty. To minimize these risks, we only sanction bounties under the following conditions:

- Bounties must be pledged through Polar.sh on an issue that is opened in our issue tracker.
- Unless otherwise specified, Biome reserves 30% of the payment amount, meaning contributors receive 70% of the pledged amount.
- The commission charged by Polar.sh is split accordingly.
- If an issue in our issue tracker is not yet open for pledges, the person who wishes to pledge should indicate their desire in the comments of the issue, or do so through the `Community > #bounties` channel on Discord. A core contributor can then **accept** or **reject** the request for the bounty. Reasons for rejection include, but are not limited to:
- Implementation of the task would conflict with the project direction or [its values](https://biomejs.dev/internals/philosophy/).
- Implementation of the task is (currently) technically infeasible.
- The suggested pledge is deemed inappropriate for the amount of work involved.
- The person making the pledge acknowledges their pledge does not come with a guarantee of work done.
- There is a 6 month expiration on pledges, as managed by Polar.sh.
- Terms and conditions of Polar.sh apply to all pledges.
- For the FAQ, please see: https://docs.polar.sh/maintainers/faq/
- For the legal terms, please see: https://polar.sh/legal/terms
- If you are receiving money as part of a bounty, please consider whether you need to pay taxes in your country.

### Project-Funded Bounties

In some cases, Biome funds bounties on its own issues. For project-funded bounties, the same conditions apply as for community-funded bounties. But given that these issues are funded by money from our sponsors, we have additional restrictions in place:

- Implementation of the task funded by Biome must advance [our roadmap](#roadmap) or help with essential infrastructure.
- The description of the task must include a clear rationale for why this task is eligible for funding.
- Each Biome-funded task will be either assigned directly to a contributor, or assigned a label to indicate who is eligible for picking up that task:
- `F-Anyone`: Anyone is free to pick up this task. This task should be of low complexity and has a maximum bounty of $50 (USD).
- `F-Maintainers`: Any Biome maintainer is free to pick up this task. This task may be of medium complexity and has a maximum bounty of $200 (USD).
- `F-Core-Contributors`: Only core contributors are eligible for picking this task. There is no upper limit to the complexity, but the maximum bounty is $1000 (USD).

Additionally, there is a strict process for assigning project-funded bounties:

- To request Biome funding for a task, a request with a clear rationale must be made in the `Community > #bounties` channel on Discord.
- Merely commenting on a GitHub issue is not sufficient, to make sure project members have a better chance at monitoring requests.
- If the request is approved by at least 2 maintainers and not vetoed by any core contributor within 7 days, then a core contributor can assign the pledge to the issue and assign the requester or a corresponding label to it.
- The waiting period is not necessary if a lead approves the request.
- There is a maximum amount of issues with pledges someone can have assigned to them. The limit is 2 for core contributors, and 1 for anyone else.

Finally, there is one more important distinction from community-funded bounties: Since Biome is the one funding the issue, 100% of the pledged amount will go to the contributor completing the task.

### Fund Allocation

**Funds will be allocated for project-specific services**:
- Domain registrations
- Website hosting
- Password manager to manage secrets and passwords among Lead members

#### Expenses

Core contributors are allowed to claim expenses related to conferences where they talk about Biome, or Biome workshops that they run. Expenses that can be claimed include, but are not limited to: trip (plane, train, etc.), meals, transport, parking.
- The person will have to provide proof of attendance (badge, video, etc.);
- Expenses will have to be uploaded via the open collective website.
- Only the expenses that are afforded in the days of the workspace/conference are accepted:
- If a conference lasts multiple days and the member decides to attend *both* days, and the member speaks only the first day, only the expenses of the first day should be taken in consideration. In this example, if the member booked three nights in a hotel to attend these two days, the expense should be divided by 3 - three nights - and only expense 2 days: night before the conference, plus the night of the day the member speaks.
- If a conference lasts one day and the member decides to make their performance longer, all the expenses afforded in the other days won't be accepted. Only 2 nights of accommodation are accepted.

Expenses must be approved by at least one [lead](#lead). In the presence of one single lead, the lead will ask one core contributor to fact-check the honesty of expenses, and leave a comment in the Open Collective expense page. In case of multiple leads, the lead submitting the expense must seek the approval of at least one other lead.

> [!NOTE]
> Other usage of funds has yet to be decided.
## Moderation

Outlined below is the process for Code of Conduct violation reviews.
Expand Down Expand Up @@ -210,25 +294,5 @@ The reviewers will determine responses based on the information gathered and the
- 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**:
- Domain registrations
- Website hosting
- Password manager to manage secrets and passwords among Lead members

Core contributors are allowed to claim expenses related to conferences where they talk about Biome, or Biome workshops that they run. Expenses that can be claimed are but not limited to: trip (plane, train, etc.), meals, transport, parking.
- The person will have to provide proof of attendance (badge, video, etc.);
- Expenses will have to be uploaded via the open collective website.
- Only the expenses that are afforded in the days of the workspace/conference are accepted:
- If a conference lasts multiple days and the member decides to attend *both* days, and the member speaks only the first day, only the expenses of the first day should be taken in consideration. In this example, if the member booked three nights in a hotel to attend these two days, the expense should be divided by 3 - three nights - and only expense 2 days: night before the conference, plus the night of the day the member speaks.
- If a conference lasts one day and the member decides to make their performance longer, all the expenses afforded in the other days won't be accepted. Only 2 nights of accommodation are accepted.

Expenses must be approved by at least one [lead](#lead). In the presence of one single lead, the lead will ask one core contributor to fact-check the honesty of expenses, and leave a comment in the Open Collective expense page. In case of multiple leads, the lead submitting the expense must seek the approval of at least one other lead.

> [!NOTE]
> Other usage of funds has yet to be decided.

[gh-org]: https://github.com/biomejs
[discord]: https://discord.gg/BypW39g6Yc±

0 comments on commit 50cee22

Please sign in to comment.