This is a first draft of Cozystack project governance <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **Documentation** - Introduced a new governance document outlining the project's community roles and responsibilities. - Clarified roles for various community members including users, contributors, and leadership. - Detailed the decision-making process and guidelines to promote transparent engagement and active participation. <!-- end of auto-generated comment: release notes by coderabbit.ai --> Signed-off-by: Nick Volynkin <nick.volynkin@gmail.com> Co-authored-by: Nick Volynkin <nick.volynkin@gmail.com>
4.6 KiB
Cozystack Governance
This document defines the governance structure of the Cozystack community, outlining how members collaborate to achieve shared goals.
Overview
Cozystack, a Cloud Native Computing Foundation (CNCF) project, is committed to building an open, inclusive, productive, and self-governing open source community focused on building a high-quality open source PaaS and framework for building clouds.
Code Repositories
The following code repositories are governed by the Cozystack community and
maintained under the cozystack namespace:
- Cozystack: Main Cozystack codebase
- website: Cozystack website and documentation sources
- Talm: Tool for managing Talos Linux the GitOps way
- cozy-proxy: A simple kube-proxy addon for 1:1 NAT services in Kubernetes with NFT backend
- cozystack-telemetry-server: Cozystack telemetry
- talos-bootstrap: An interactive Talos Linux installer
- talos-meta-tool: Tool for writing network metadata into META partition
Community Roles
- Users: Members that engage with the Cozystack community via any medium, including Slack, Telegram, GitHub, and mailing lists.
- Contributors: Members contributing to the projects by contributing and reviewing code, writing documentation, responding to issues, participating in proposal discussions, and so on.
- Directors: Non-technical project leaders.
- Maintainers: Technical project leaders.
Contributors
Cozystack is for everyone. Anyone can become a Cozystack contributor simply by contributing to the project, whether through code, documentation, blog posts, community management, or other means. As with all Cozystack community members, contributors are expected to follow the Cozystack Code of Conduct.
All contributions to Cozystack code, documentation, or other components in the Cozystack GitHub organisation must follow the contributing guidelines. Whether these contributions are merged into the project is the prerogative of the maintainers.
Directors
Directors are responsible for non-technical leadership functions within the project. This includes representing Cozystack and its maintainers to the community, to the press, and to the outside world; interfacing with CNCF and other governance entities; and participating in project decision-making processes when appropriate.
Directors are elected by a majority vote of the maintainers.
Maintainers
Maintainers have the right to merge code into the project. Anyone can become a Cozystack maintainer (see "Becoming a maintainer" below).
Expectations
Cozystack maintainers are expected to:
- Review pull requests, triage issues, and fix bugs in their areas of expertise, ensuring that all changes go through the project's code review and integration processes.
- Monitor cncf-cozystack-* emails, the Cozystack Slack channels in Kubernetes and CNCF Slack workspaces, Telegram groups, and help out when possible.
- Rapidly respond to any time-sensitive security release processes.
- Attend Cozystack community meetings.
If a maintainer is no longer interested in or cannot perform the duties listed above, they should move themselves to emeritus status. If necessary, this can also occur through the decision-making process outlined below.
Becoming a Maintainer
Anyone can become a Cozystack maintainer. Maintainers should be extremely proficient in cloud native technologies and/or Go; have relevant domain expertise; have the time and ability to meet the maintainer's expectations above; and demonstrate the ability to work with the existing maintainers and project processes.
To become a maintainer, start by expressing interest to existing maintainers. Existing maintainers will then ask you to demonstrate the qualifications above by contributing PRs, doing code reviews, and other such tasks under their guidance. After several months of working together, maintainers will decide whether to grant maintainer status.
Project Decision-making Process
Ideally, all project decisions are resolved by consensus of maintainers and directors. If this is not possible, a vote will be called. The voting process is a simple majority in which each maintainer and director receives one vote.