This document outlines the governance model for the project, including roles and responsibilities, decision-making processes, and procedures for community participation. The goal is to provide a transparent and inclusive framework that supports collaboration, innovation, and accountability.
This governance model applies to the KAI Scheduler project. It serves as a guide to ensure clarity and consistency in the way decisions are made, contributors are supported, and the project grows in a sustainable and inclusive manner.
Maintainers are the individuals responsible for the long-term health and direction of the project. They have the final say on key decisions but are expected to collaborate with the community and seek consensus when possible.
- Responsibilities:
- Oversee the technical direction of the project.
- Make final decisions on contributions and community matters.
- Ensure code quality and maintainability.
- Manage project releases and documentation.
- Resolve conflicts and mediate disputes within the community.
- Actively participate in community discussions.
Contributors are individuals who actively participate in the project by submitting code, bug reports, documentation, or other contributions. Contributors may be individuals, teams, or organizations.
- Responsibilities:
- Follow the project’s guidelines for contributions.
- Engage in discussions and provide feedback on project decisions.
- Respect the project's code of conduct.
- Strive for high-quality contributions that adhere to the project's goals.
The community consists of all individuals interested in the project, including end users, contributors, and other stakeholders. The community is encouraged to contribute ideas, report issues, and engage in discussions.
- Responsibilities:
- Provide feedback on project decisions and contribute to discussions.
- Participate in community events and initiatives.
- Respect the project’s code of conduct.
Core decisions, such as changes to the overall direction of the project, architectural shifts, or the approval of major features, are made by the maintainers.
- Process:
- A proposal for a major change will be submitted as a pull request or issue.
- The maintainers will discuss the proposal and seek feedback from the community.
- Once the discussion is concluded, maintainers will make the final decision.
Day-to-day decisions, such as merging pull requests or handling smaller contributions, are made by the approvers. These decisions should be made as quickly as possible to avoid delays in development.
- Process:
- Contributors submit a pull request with their proposed changes.
- Approvers review and approve the pull request if it meets the project’s standards.
- Minor changes, such as documentation updates or bug fixes, may be handled without a formal discussion.
If there is a disagreement or conflict within the community, it will be resolved through discussion and mediation.
- Process:
- Disputes should be addressed privately first through direct communication.
- If the dispute cannot be resolved, a maintainer will mediate the discussion.
- As a last resort, the maintainer team may make a final decision to resolve the issue.
All contributors are expected to follow the Code of Conduct. This ensures a welcoming and respectful environment for all participants.
To contribute to the project, follow the guidelines outlined in the CONTRIBUTING.md. This document details the process for submitting issues, pull requests, and providing feedback.
- Channels: The primary channels for communication within the project are GitHub issues and discussions pages in the repository and #batch-wg Slack channel.
- Expected Behavior: Be respectful, professional, and collaborative in all interactions. Discriminatory behavior, harassment, and disruptive actions will not be tolerated.
Maintainers are selected through a transparent and community-driven process. When a maintainer position becomes open, the existing maintainers will suggest potential candidates from within the community.
- Process:
- Existing maintainers propose candidates based on their contributions and involvement in the project.
- The community is invited to provide feedback on the suggested candidates.
- After considering community feedback, the maintainers make the final decision to invite the selected candidates to join the maintainer team.
The project’s health and progress should be regularly reported to the community. This includes updates on releases, upcoming features, and current issues.
- Process:
- Regular updates will be provided in the form of release notes, roadmap updates, and issue tracking.
- The maintainer team will host periodic community meetings to discuss the project’s status.
If any member of the community violates the code of conduct, they may be subject to sanctions, including temporary or permanent bans from the project.
- Process:
- Violations should be reported to a maintainer or the community manager.
- A review will be conducted, and if the violation is confirmed, appropriate actions will be taken, including warning, suspension, or ban.
This governance model provides a framework for maintaining a healthy, open, and collaborative project. It is designed to evolve as the project grows and should be reviewed periodically to ensure it remains relevant and effective.