|
| 1 | +# FlagCX Project Governance |
| 2 | + |
| 3 | +FlagCX is an open-source project governed by its maintainers with the support of the |
| 4 | +Beijing Academy of Artificial Intelligence (BAAI). This document describes the |
| 5 | +project's roles, decision-making process, maintainer changes, and escalation process. |
| 6 | + |
| 7 | +## Principles |
| 8 | + |
| 9 | +FlagCX aims to make technical decisions openly and on their merits. Project |
| 10 | +participants are expected to: |
| 11 | + |
| 12 | +- discuss changes constructively and in good faith; |
| 13 | +- consider the long-term interests of the project and its users; |
| 14 | +- give community members a reasonable opportunity to participate in decisions; and |
| 15 | +- follow the [Code of Conduct](CODE_OF_CONDUCT.md) and |
| 16 | + [Contributing Guide](CONTRIBUTING.md). |
| 17 | + |
| 18 | +## Project Roles |
| 19 | + |
| 20 | +### Contributors |
| 21 | + |
| 22 | +A contributor is anyone who contributes to FlagCX. Contributions include code, |
| 23 | +documentation, issue reports, design proposals, pull-request reviews, testing, and |
| 24 | +participation in project discussions. |
| 25 | + |
| 26 | +Contributors may: |
| 27 | + |
| 28 | +- open and participate in issues and pull requests; |
| 29 | +- propose technical, documentation, and governance changes; and |
| 30 | +- review and test proposed changes. |
| 31 | + |
| 32 | +### Maintainers |
| 33 | + |
| 34 | +Maintainers are responsible for the ongoing stewardship of FlagCX. The current |
| 35 | +maintainers are listed in [MAINTAINERS.md](MAINTAINERS.md). |
| 36 | + |
| 37 | +Maintainers are expected to: |
| 38 | + |
| 39 | +- review issues and pull requests; |
| 40 | +- guide the project's technical direction and development priorities; |
| 41 | +- help contributors participate effectively; |
| 42 | +- keep the project reliable, secure, and maintainable; |
| 43 | +- enforce the Code of Conduct; and |
| 44 | +- participate in project decisions and votes. |
| 45 | + |
| 46 | +Maintainers have permission to approve and merge changes and to perform other |
| 47 | +repository administration needed for the project. |
| 48 | + |
| 49 | +### Code Owners |
| 50 | + |
| 51 | +Code ownership is a responsibility assigned to maintainers for particular parts of the |
| 52 | +repository; it is not a separate community role. Code owners provide subject-matter |
| 53 | +review for changes in their areas. The current assignments are recorded in |
| 54 | +[`.github/CODEOWNERS`](.github/CODEOWNERS), which is the source of truth for code |
| 55 | +ownership. |
| 56 | + |
| 57 | +### Technical Lead |
| 58 | + |
| 59 | +BAAI selects one of the maintainers to serve as technical lead. The technical lead |
| 60 | +helps coordinate the project's overall technical direction and resolves tied |
| 61 | +maintainer votes as described below. The current technical lead is |
| 62 | +[`MC952-arch`](https://github.com/MC952-arch). |
| 63 | + |
| 64 | +The technical lead does not unilaterally decide ordinary project matters when |
| 65 | +maintainer consensus can be reached. |
| 66 | + |
| 67 | +## Decision-Making |
| 68 | + |
| 69 | +Project decisions should normally be discussed in the relevant public GitHub issue or |
| 70 | +pull request. Design rationale, significant concerns, and the resulting decision |
| 71 | +should be recorded there so that contributors can understand and participate in the |
| 72 | +process. |
| 73 | + |
| 74 | +### Consensus |
| 75 | + |
| 76 | +FlagCX prefers consensus over formal voting. Consensus means that the relevant |
| 77 | +participants have had a reasonable opportunity to comment, material concerns have |
| 78 | +been considered, and no maintainer has an unresolved objection. |
| 79 | + |
| 80 | +Routine decisions may be made through the normal issue and pull-request process. |
| 81 | +Broader or potentially incompatible changes should first be proposed in an issue so |
| 82 | +their impact can be discussed before implementation. |
| 83 | + |
| 84 | +### Pull-Request Approval |
| 85 | + |
| 86 | +A pull request normally requires at least two approvals before it is merged. At least |
| 87 | +one approval must come from a code owner for the affected area. |
| 88 | + |
| 89 | +In an exceptional and time-sensitive circumstance, a maintainer may merge a pull |
| 90 | +request without satisfying the normal approval requirement. This should be rare. The |
| 91 | +maintainer must explain the reason for the exception in the pull request, and the |
| 92 | +change remains subject to follow-up review and correction. |
| 93 | + |
| 94 | +### Voting and Escalation |
| 95 | + |
| 96 | +If maintainers cannot reach consensus after reasonable discussion, any maintainer may |
| 97 | +call for a vote in the relevant issue or pull request. All active maintainers must be |
| 98 | +given a reasonable opportunity to vote. |
| 99 | + |
| 100 | +Each active maintainer has one vote. A proposal passes when it receives more than 50% |
| 101 | +of the votes cast. Abstentions are not counted as votes cast. If the vote is tied, the |
| 102 | +technical lead decides the outcome and records the decision and its rationale in the |
| 103 | +same public discussion. |
| 104 | + |
| 105 | +An active maintainer is one who has participated in at least one pull-request review, |
| 106 | +code contribution, or project meeting during the preceding six months. |
| 107 | + |
| 108 | +## Maintainer Changes |
| 109 | + |
| 110 | +Maintainer status recognizes sustained responsibility for the project; it is not |
| 111 | +granted solely on the basis of employment or organizational affiliation. |
| 112 | + |
| 113 | +Existing maintainers may recommend a contributor for maintainership based on the |
| 114 | +quality and continuity of the contributor's work, technical judgment, collaboration, |
| 115 | +and demonstrated commitment to FlagCX. BAAI has final authority to approve maintainer |
| 116 | +appointments. |
| 117 | + |
| 118 | +A maintainer may step down at any time by notifying the other maintainers and updating |
| 119 | +[MAINTAINERS.md](MAINTAINERS.md). |
| 120 | + |
| 121 | +A maintainer who has performed none of the activities described above for six |
| 122 | +consecutive months is automatically considered inactive. Inactive maintainers are not |
| 123 | +counted as active maintainers for voting purposes. Participation in an eligible |
| 124 | +activity restores active status unless the maintainer has formally stepped down or |
| 125 | +been removed. |
| 126 | + |
| 127 | +BAAI has final authority over the removal of maintainers. Removal may be considered |
| 128 | +for prolonged inactivity, serious or repeated violations of the Code of Conduct, abuse |
| 129 | +of project privileges, or conduct that materially harms the project. Except where |
| 130 | +urgent action is required for security, safety, or legal reasons, the maintainer should |
| 131 | +be informed of the concern and given an opportunity to respond. |
| 132 | + |
| 133 | +Changes to the maintainer list must be recorded in |
| 134 | +[MAINTAINERS.md](MAINTAINERS.md). |
| 135 | + |
| 136 | +## BAAI's Role and Reserved Authority |
| 137 | + |
| 138 | +The maintainers govern FlagCX's ordinary technical and community work through the |
| 139 | +processes above. As the organization backing the project, BAAI retains final authority |
| 140 | +over critical project decisions, including: |
| 141 | + |
| 142 | +- appointment and removal of maintainers; |
| 143 | +- selection of the technical lead; |
| 144 | +- transfer, dissolution, or fundamental reorganization of the project; |
| 145 | +- licensing and intellectual-property matters; |
| 146 | +- project names and trademarks; |
| 147 | +- significant security, legal, financial, or compliance matters; |
| 148 | +- major changes to the project's scope; and |
| 149 | +- changes to BAAI's reserved authority under this document. |
| 150 | + |
| 151 | +Maintainers should discuss critical decisions publicly when confidentiality, security, |
| 152 | +privacy, and legal obligations permit. If BAAI exercises its reserved authority, the |
| 153 | +decision and its rationale should be documented publicly to the extent reasonably |
| 154 | +possible. |
| 155 | + |
| 156 | +## Conduct Escalation |
| 157 | + |
| 158 | +All participants must follow the [Code of Conduct](CODE_OF_CONDUCT.md). Conduct |
| 159 | +incidents should be reported through the FlagCX WeChat group as described there. |
| 160 | +Reports should be handled privately. The owner of the WeChat group has final authority |
| 161 | +over Code of Conduct enforcement decisions. |
| 162 | + |
| 163 | +## Amending This Document |
| 164 | + |
| 165 | +Anyone may propose a governance change through a pull request, with an accompanying |
| 166 | +issue when the change is substantial. |
| 167 | + |
| 168 | +Ordinary clarifications follow the standard pull-request approval process. Substantive |
| 169 | +changes require maintainer consensus or, if consensus cannot be reached, a maintainer |
| 170 | +vote under the process above. Changes involving a critical decision or BAAI's reserved |
| 171 | +authority also require BAAI's approval. |
0 commit comments