Skip to content

Commit 02cd0f1

Browse files
[Others] Add GOVERNANCE.md (flagos-ai#519)
1 parent f02915a commit 02cd0f1

1 file changed

Lines changed: 171 additions & 0 deletions

File tree

GOVERNANCE.md

Lines changed: 171 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,171 @@
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

Comments
 (0)