Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Create GOVERNANCE.md #1

Open
wants to merge 5 commits into
base: main
Choose a base branch
from
Open

Create GOVERNANCE.md #1

wants to merge 5 commits into from

Conversation

GenPage
Copy link
Member

@GenPage GenPage commented May 12, 2024

This is an updated GOVERNANCE document that builds upon the one currently in runatlantis/atlantis.

Changes include but are not limited to:

  • Introducing language around a new two-tier governance model
    • Org-tier: Atlantis Steering Committee
    • Repo-tier: Contributor membership tiers
  • Added membership tier's roles and responsibilities
    • Replaced Users with Members
    • Removed Contributors
    • Clarified Core-Contributors and Maintainers
  • Updated Conflict resolution and Voting process
  • Removed Proposal process (will end up in a new doc)

This is an updated GOVERNANCE document that builds upon the one currently in runatlantis/atlantis. 

Changes include but are not limited to:
- Introducing language around a new two-tier governance model
    - new Atlantis Steering Committee
    - new Membership tiers per-repository
- Added membership tier's roles and responsibilities
- Updated Voting process
@GenPage GenPage added documentation Improvements or additions to documentation governance labels May 12, 2024
@GenPage GenPage self-assigned this May 12, 2024

## Atlantis Steering Committee

The Atlantis project has a project steering committee consisting of 5 members, with a maximum of 1 member from any single organization. The steering committee in Atlantis has a final say in any decision concerning the Atlantis project, with the exceptions of deciding steering committee membership, and changes to project governance. See [Updating Governance](#Updating-Governance).
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

does it have to be 5 members off the start, or we can grow into it once we start our cncf journey?

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

quorum style with 3 initial members and then jumping to 5?

GOVERNANCE.md Outdated Show resolved Hide resolved
- Periodically attend the recurring community meetings
- In general, continue to be willing to spend at least 5% of their time working on Atlantis (~0.25 business days per week)

Each repository's current list of core-contributors is published and updated in each repo’s OWNERS.md file.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

maybe just owners file?

Suggested change
Each repository's current list of core-contributors is published and updated in each repo’s OWNERS.md file.
Each repository's current list of core-contributors is published and updated in each repo’s OWNERS file.

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Are CODEOWNERS and OWNERS interchangeable here?

- Periodically attend the recurring steering committee meetings to provide input
- In general, continue to be willing to spend at least 25% of their time working on Atlantis (~1.25 business days per week)

Each repository's current list of maintainers is published and updated in each repo’s OWNERS.md file.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

same question about the file for owners


#### Removing a core-contributor or maintainer

If a core-contributor or maintainer is no longer interested or cannot perform the the 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.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

On paper, contributor/maintainer should opt out, but it is a bit tricky process.

## Updating Governance

This governance will likely be a living document, and its policies will, therefore, need to be updated over time as the community grows. The steering committee has full ownership of this governance and only the committee may make updates to it. Changes can be made at any time, but a super-majority (at least 2/3 of votes) is required to approve any updates.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

wonder if it would be good to also include CoC

## Code of Conduct
--

The [Atlantis Code of Conduct](CODE_OF_CONDUCT.md) is aligned with the CNCF Code of Conduct.

Copy link

@jippi jippi left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What a fantastic document! Good job 🎉 Really excited to see this happening for the Atlantis org!

Feel free to ignore any and all of my suggested edits or questions if they are not applicable (I'm not native english, so might have gotten some of suggestions wrong)


## Atlantis Steering Committee

The Atlantis project has a project steering committee consisting of 5 members, with a maximum of 1 member from any single organization. The steering committee in Atlantis has a final say in any decision concerning the Atlantis project, with the exceptions of deciding steering committee membership, and changes to project governance. See [Updating Governance](#Updating-Governance).
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

quorum style with 3 initial members and then jumping to 5?

@@ -0,0 +1,192 @@
# Atlantis Governance

**Atlantis** is committed to building an open, inclusive, productive, and self-governing community focused on building a high-quality infrastructure orchestration system. This document governs the community and defines how it should work together to achieve this goal.
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"building" is used quite a lot in different contexts (systems, groups (of people)), so this makes it more natural to read

Suggested change
**Atlantis** is committed to building an open, inclusive, productive, and self-governing community focused on building a high-quality infrastructure orchestration system. This document governs the community and defines how it should work together to achieve this goal.
**Atlantis** is committed to building an open, inclusive, productive, and self-governing community focused on creating a high-quality infrastructure orchestration system. This document governs the community and defines how it should work together to achieve this goal.


**Atlantis** is committed to building an open, inclusive, productive, and self-governing community focused on building a high-quality infrastructure orchestration system. This document governs the community and defines how it should work together to achieve this goal.

Atlantis follows a two-tier governance model. The higher tier comprises the Atlantis Steering Committee, responsible for the project's overall health. [Maintainers](#Maintainer), [Core-Contributors](#Core-Contributor), and [Members](#Member) make up the lower tier. They are the main contributors to one or more repositories within the overall project.
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Atlantis follows a two-tier governance model. The higher tier comprises the Atlantis Steering Committee, responsible for the project's overall health. [Maintainers](#Maintainer), [Core-Contributors](#Core-Contributor), and [Members](#Member) make up the lower tier. They are the main contributors to one or more repositories within the overall project.
Atlantis follows a two-tier governance model. The higher tier comprises the Atlantis Steering Committee, which is responsible for the project's overall health. [Maintainers](#Maintainer), [Core-Contributors](#Core-Contributor), and [Members](#Member) make up the lower tier. They are the main contributors to one or more repositories within the overall project.


Atlantis follows a two-tier governance model. The higher tier comprises the Atlantis Steering Committee, responsible for the project's overall health. [Maintainers](#Maintainer), [Core-Contributors](#Core-Contributor), and [Members](#Member) make up the lower tier. They are the main contributors to one or more repositories within the overall project.

The governance policies defined here apply to all repositories in the runatlantis GitHub organization.
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
The governance policies defined here apply to all repositories in the runatlantis GitHub organization.
The governance policies defined here apply to all repositories in the [`runatlantis`](https://github.com/runatlantis) GitHub organization.


## Atlantis Steering Committee

The Atlantis project has a project steering committee consisting of 5 members, with a maximum of 1 member from any single organization. The steering committee in Atlantis has a final say in any decision concerning the Atlantis project, with the exceptions of deciding steering committee membership, and changes to project governance. See [Updating Governance](#Updating-Governance).
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
The Atlantis project has a project steering committee consisting of 5 members, with a maximum of 1 member from any single organization. The steering committee in Atlantis has a final say in any decision concerning the Atlantis project, with the exceptions of deciding steering committee membership, and changes to project governance. See [Updating Governance](#Updating-Governance).
The Atlantis project has a steering committee of 5 members, with a maximum of 1 member from any organization. The steering committee has the final say in any decision concerning the Atlantis project, with the exceptions of deciding steering committee membership and changes to project governance. See [Updating Governance](#Updating-Governance).

- Seek review and obtain approval from the steering committee when making a change to central architecture that will have broad impact across multiple repositories
- Contribute non-trivial pull requests
- Perform code reviews on other's pull requests
- Ensure that proposed changes to your repository adhere to the established standards, best practices, and guidelines, and that the overall quality and integrity of the code base is upheld.
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- Ensure that proposed changes to your repository adhere to the established standards, best practices, and guidelines, and that the overall quality and integrity of the code base is upheld.
- Ensure that proposed changes to your repository adhere to the established standards, best practices, and guidelines, and that the overall quality and integrity of the code base is upheld


Responsibilities include:

- Strong commitment to the project
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I like this, but how is that measured; its a bit more subjective than the other responsibilities listed.

- Participate in design and technical discussions
- Participate in the conflict resolution and voting process at the repository scope when necessary
- Seek review and obtain approval from the steering committee when making a change to central architecture that will have broad impact across multiple repositories
- Contribute non-trivial pull requests
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think I understand the intent of this, but 20 "trivial" quality of life changes can easily outshine a single "non-trivial" change in terms of project health, quality, and improved velocity in the long term; so feels a bit weird calling out out "output" here rather than "outcomes" of the contributions

Issues can be resolved or voted on at different scopes:

* **Repository**: When an issue or conflict only affects a single repository, then the maintainer team for that repository should resolve or vote on the issue. This includes technical decisions as well as team membership.
* **Organization**: If an issue or conflict affects multiple repositories or the Atlantis organizations and community at large, the steering committee should resolve or vote on the issue.
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

should or must? it feels like a must since they are the highest authority

Suggested change
* **Organization**: If an issue or conflict affects multiple repositories or the Atlantis organizations and community at large, the steering committee should resolve or vote on the issue.
* **Organization**: If an issue or conflict affects multiple repositories or the Atlantis organizations and community at large, the steering committee must resolve or vote on the issue.


### Issue Voting Process

The issue voting process is usually a simple majority in which each entity within the voting scope gets a single vote. The following decisions require a super majority (at least 2/3 of votes). All other decisions and changes require only a simple majority:
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

what happens if voting is 50/50 (even number of legible voters) - who acts as tie breaker?

Co-authored-by: Rui Chen <rui@chenrui.dev>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
documentation Improvements or additions to documentation governance
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants