Skip to content

Commit

Permalink
Update GOVERNANCE.md
Browse files Browse the repository at this point in the history
Co-authored-by: Adam Reese <adamreese@users.noreply.github.com>
Signed-off-by: Michelle Dhanani <michelle@fermyon.com>
  • Loading branch information
michelleN and adamreese committed Jul 1, 2024
1 parent 4c06752 commit 98e16a9
Show file tree
Hide file tree
Showing 2 changed files with 28 additions and 146 deletions.
55 changes: 26 additions & 29 deletions GOVERNANCE.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,28 +2,28 @@

This document describes the governance of the Spin project.

The Spin project consists of several codebases with different release cycles: These codebases include:
The Spin project consists of several codebases with different release cycles. These codebases include:

- https://github.com/fermyon/spin
- Core Spin:
- [Spin](https://github.com/fermyon/spin)
- SDKs:
- https://github.com/fermyon/spin-python-sdk
- https://github.com/fermyon/spin-js-sdk
- https://github.com/fermyon/spin-rust-sdk
- https://github.com/fermyon/spin-dotnet-sdk
- https://github.com/fermyon/spin-nim-sdk
- [Spin Python SDK](https://github.com/fermyon/spin-python-sdk)
- [Spin JavaScript SDK](https://github.com/fermyon/spin-js-sdk)
- [Spin Rust SDK](https://github.com/fermyon/spin-rust-sdk)
- [Spin .NET SDK](https://github.com/fermyon/spin-dotnet-sdk)
- [Spin Nim SDK](https://github.com/fermyon/spin-nim-sdk)
- Plugins:
- https://github.com/fermyon/spin-test
- https://github.com/fermyon/cloud-plugin
- https://github.com/fermyon/spin-cloud-gpu
- https://github.com/fermyon/spin-plugins
- https://github.com/fermyon/platform-plugin
- [Spin Plugins Index Repository](https://github.com/fermyon/spin-plugins)
- [Fermyon Platform Plugin](https://github.com/fermyon/platform-plugin)
- [Spin Test Plugin](https://github.com/fermyon/spin-test)
- [Cloud Plugin](https://github.com/fermyon/cloud-plugin)
- [Spin Cloud GPU Plugin](https://github.com/fermyon/spin-cloud-gpu)
- Triggers:
- https://github.com/fermyon/spin-trigger-command
- https://github.com/fermyon/spin-trigger-sqs
- https://github.com/fermyon/spin-trigger-cron

- [Spin Command Trigger](https://github.com/fermyon/spin-trigger-command)
- [Spin SQS Trigger](https://github.com/fermyon/spin-trigger-sqs)
- [Spin Cron Trigger](https://github.com/fermyon/spin-trigger-cron)

Each repository is subject to the same overall governance model, but has different teams of people (“maintainers”) with permissions and access to the repository. This is meant to increase diversity of maintainers in the Spin project and also increases the velocity of code changes. Major changes and features to the project (including changes to project governance) are to be proposed through the [Spin Improvement Proposal](docs/content/sips/index.md) process.
Each repository is subject to the same overall governance model, but has different teams of people (“maintainers”) with permissions and access to the repository. This is meant to increase diversity of maintainers in the Spin project and also increases the velocity of code changes. Major changes and features to the project including additions to the repository list above are to be proposed through the [Spin Improvement Proposal](docs/content/sips/index.md) process.

## Spin Project Maintainers

Expand All @@ -36,10 +36,10 @@ Project maintainers and emeritus maintainers for each project should be outlined
Changes to project maintainers use the following:

- A project maintainer may step down by emailing the mailing list. When a project maintainer steps down, they become an emeritus maintainer.
- Project maintainers MUST remain active on the project. If they are unresponsive for > 3 months, they will lose project maintainer-ship, unless [supermajority](https://en.wikipedia.org/wiki/Supermajority#Two-thirds_vote) (two-thirds majority) of the project maintainers of the given project agrees to extend the period to be greater than 3 months. If two-thirds majority is not possible, the Spin Governance Committee members will be included in the group of people voting on this decision in addition to the project maintainers of the project.
- New maintainers can be added to a project by a [supermajority](https://en.wikipedia.org/wiki/Supermajority#Two-thirds_vote) vote of the project’s existing maintainers. New maintainers must be nominated by existing maintainers. If quorum is not met, the Spin Govenance Committee members will be included in this vote.
- A maintainer may be removed for a [code of conduct](../../../CODE_OF_CONDUCT.md) violation via a supermajority vote of the Spin Governance Committee. Code of conduct violations may be submitted to any member(s) on the Spin Governance Committee by email. See email information on MAINTAINERS.md.
- When a project has no maintainers the maintainers of the [fermyon/spin Github repo](https://github.com/fermyon/spin) become responsible for it, and may archive the project, or find new maintainers
- Project maintainers MUST remain active on the project. If they are unresponsive for > 3 months, they will lose project maintainer-ship, unless the remaining project maintainers of the given project and the Spin Governance Committee agree to extend the period to be greater than 3 months.
- New maintainers must be nominated by existing maintainers. Maintainers are to discuss and agree in a private setting adding a new maintainer. Once a descision has been made, a maintainer may be added to the project via a pull request to the relevant MAINTAINERS.md file.
- A maintainer may be removed for a [code of conduct](CODE_OF_CONDUCT.md) violation by the Spin Governance Committee. Code of conduct violations may be submitted to any member(s) on the Spin Governance Committee by email. See email information on MAINTAINERS.md.
- When a project has no active maintainers, the maintainers of the [fermyon/spin Github repo](https://github.com/fermyon/spin) become responsible for it, and may archive the project, or find new maintainers

### Decision Making

Expand All @@ -52,7 +52,9 @@ Decision making scenarios should be promoted appropriately by the maintainer ove
- communicate updates in meetings

In the extreme case that objection-free consensus cannot be reached after a reasonable amount of time and effort,
a maintainer can call for a [simple majority](https://en.wikipedia.org/wiki/Majority) vote from the project maintainers for a repo on a decision. If the decision impacts multiple repositories or requires a coordinated effort across multiple repositories and project maintainers are unable to reach a decision on their own for the relevant projects, a maintainer can call for a simple majority vote from the Spin Governance Committee. If quorum cannot be met for a decision, all members of the Spin Governance Committee are added to the relevant vote.
a maintainer can call for a [supermajority](https://en.wikipedia.org/wiki/Supermajority#Two-thirds_vote) vote from the project maintainers for a repo on a decision. If quorum cannot be met for a decision, all members of the Spin Governance Committee are added to the relevant vote.

If a decision impacts multiple repositories or requires a coordinated effort across multiple repositories and project maintainers are unable to reach a decision on their own for the relevant projects, a maintainer can call for a supermajority vote from the Spin Governance Committee.

## Spin Governance Committee

Expand All @@ -74,13 +76,13 @@ In addition to the responsibilities listed above, this group is also responsible

The Spin Governance Committee have to match the following criteria:

- Spin Governance Committee members MUST remain active on the project. If they are unresponsive for > 3 months, they will lose membership, unless [supermajority](https://en.wikipedia.org/wiki/Supermajority#Two-thirds_vote) of the other governance members agrees to extend the period to be greater than 3 months
- Spin Governance Committee members MUST remain active on the project. If they are unresponsive for > 3 months, they will lose membership, unless the remaining members of the committee agree to extend the period to be greater than 3 months

The Spin Governance Committee will select a chair to set agendas, call meetings, and oversee the decision making process.

### Decision Making

The default decision making process is objection-free consensus except for changes to the Governance of the project which requires a supermajority agreement of the committee.
The default decision making process is objection-free consensus except for changes to the Governance of the project which requires a supermajority agreement of the committee. The process for making governance related changes is described below.

Decision making scenarios should be promoted appropriately by the member overseeing the issue.

Expand All @@ -102,13 +104,8 @@ The process for changes to the GOVERNANCE.md file is as follows:

_Note: PRs landed without SIPs can be challenged as substantial for up to 2 weeks afterwards, at which point they have to be backed out, and the proposed changes have to go through the SIP process instead._

1) Open an issue
2) Open a pull request to this SIP describing changes and the GOVERNANCE.md file with proposed changes.
3) Spin Govenance Committee will review pull request. Pull request may be merged when a supermajority of Spin Governance Committee has approved the pull request.

## Glossary

- Objection-free consensus: A decision is made when all decision makers have had time to consider the decision and do not raise any objections. Silence on any consensus decision is equivalent to non-objection. Explicit agreement may be stated at will.
- Supermajority: Two-thirds majority where at least two-thirds of the group is in favor of the decision being made. More context [here](https://en.wikipedia.org/wiki/Supermajority#Two-thirds_vote).
- [Simple-majority](https://en.wikipedia.org/wiki/Majority)
- Emeritus Maintainer: These are project maintainers that are no longer active. We model this after the Helm Emeritus Maintainer role. More context [here](http://technosophos.com/2018/01/11/introducing-helm-emeritus-core-maintainers.html).
Loading

0 comments on commit 98e16a9

Please sign in to comment.