Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
34 changes: 18 additions & 16 deletions incubator/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,18 +4,20 @@

## 1. Purpose & Scope

This directory is the single entry point for **external project donations** to the FlagOS community. It defines the full lifecycle from donation proposal through incubation, graduation, and archiving. Design principle: **take IP in cleanly, let projects exit gracefully** — keep everything else simple.
This directory is the single entry point for **external project contributions** to the FlagOS community. It defines the full lifecycle from contribution proposal through incubation, graduation, and archiving. Design principle: **take IP in cleanly, let projects exit gracefully** — keep everything else simple.

This process applies to externally donated projects; governance of existing FlagOS subprojects is not affected by this directory.
This process applies to externally contributed projects; governance of existing FlagOS subprojects is not affected by this directory.

**Terminology.** In this directory, **project contribution** means contributing an existing external project into the FlagOS lifecycle; it does not refer to ordinary code, documentation, issue, or pull-request contributions, which follow the normal repository contribution process. The **contributing party** is the organization or individual submitting and legally granting the project contribution; **contributing organization** is used only where a rule is specific to organizations.

**Language.** English is the working language of this directory. Policy and runbook documents are authoritative in English — the `_CN` translations are provided for convenience, and if the versions differ, the English version prevails. Canonical project records (proposals, IP checklists, graduation proposals, annual reviews) are written in English. Legally executed documents such as the SGA define their own governing-language rule. Changes to any policy or runbook must update the English and `_CN` files in the same PR.

## 2. Quick Start for Donors
## 2. Quick Start: Contribute a Project

If you plan to donate a project to FlagOS:
If you plan to contribute a project to FlagOS:

1. **Confirm the fit**: Read the acceptance principles in Section 4 and confirm the project fits the FlagOS technical scope, has a maintainer team, and its code and assets can in principle pass IP clearance.
2. **Prepare and submit the proposal**: Copy the [donation proposal template](proposal-template.md) to `incubator/projects/<project-name>/proposal.md`, fill in the project, maintainer team, donation scope, IP status, and post-donation plan, then submit a PR to the community repo. The proposal and canonical process records (IP checklist, graduation proposal, and annual reviews) are written in English; executed legal documents define their own language rule.
2. **Prepare and submit the proposal**: Copy the [contribution proposal template](proposal-template.md) to `incubator/projects/<project-name>/proposal.md`, fill in the project, maintainer team, contribution scope, IP status, and post-contribution plan, then submit a PR to the community repo. The proposal and canonical process records (IP checklist, graduation proposal, and annual reviews) are written in English; executed legal documents define their own language rule.
3. **Public review and TSC presentation**: The proposal is publicly reviewed for at least 14 days; we will then contact you to arrange a ~30-minute TSC presentation. On approval the project is conditionally approved and enters the SGA and IP due-diligence stage.
4. **Complete the SGA and IP clearance**: With help from the Mentors, the TSC-designated verifier, and the legal receiving entity, complete the [IP clearance checklist](ip-checklist.md) and sign the SGA. Conditional approval is valid for 12 months.
5. **Formal acceptance and asset migration**: Once the SGA is effective and IP clearance is complete, the community records Final Acceptance in the proposal, and **the project enters incubation as of that date**; both sides then migrate repositories, release channels, domains, and other agreed assets per the [acceptance runbook](acceptance-runbook.md).
Expand All @@ -31,21 +33,21 @@ Questions before submitting: <contact@flagos.io>. **Do not submit contract scans
## 3. Project Lifecycle

```
Donation Proposal → Incubating → Graduated
Contribution Proposal → Incubating → Graduated
└─────→ Archived
```

Only two levels: **Incubating** / **Graduated**. Archiving is the neutral exit path from either stage.

### Project List

| Project | Status | Donor | Mentors | Proposal |
| Project | Status | Contributed by | Mentors | Proposal |
|---------|--------|-------|---------|----------|
| _None yet_ | | | | |

## 4. Acceptance Principles

The TSC reviews donation proposals against the following principles, and the reasons for acceptance or rejection are recorded publicly. A candidate project must at minimum:
The TSC reviews contribution proposals against the following principles, and the reasons for acceptance or rejection are recorded publicly. A candidate project must at minimum:

- Fit the FlagOS mission and technical scope (the multi-chip AI system software stack and its ecosystem);
- Use an open source license compliant with the license policy in Section 9;
Expand All @@ -56,20 +58,20 @@ The TSC reviews donation proposals against the following principles, and the rea

## 5. Decision Body

- Donation acceptance, graduation, and archiving are **major decisions** of the community, decided by **TSC vote under the major-decision rules defined in [GOVERNANCE.md](../GOVERNANCE.md)**. Before the first TSC meeting, the FlagOS founding community acts on its behalf under the same rules.
- Project contribution acceptance, graduation, and archiving are **major decisions** of the community, decided by **TSC vote under the major-decision rules defined in [GOVERNANCE.md](../GOVERNANCE.md)**. Before the first TSC meeting, the FlagOS founding community acts on its behalf under the same rules.
- Routine matters follow the lazy consensus rules in GOVERNANCE.
- **Conflict of interest**: Directly interested parties in a donation matter (TSC members from the donor or its affiliated organizations) **must recuse** from the vote. This is a special rule for donation matters on top of the GOVERNANCE conflict-of-interest policy; see [GOVERNANCE.md](../GOVERNANCE.md#conflict-of-interest-coi).
- **Conflict of interest**: Directly interested parties in a project contribution matter (TSC members from the contributing party or its affiliated organizations, or a TSC member who is the individual contributing party) **must recuse** from the vote. This is a special rule for project contribution matters on top of the GOVERNANCE conflict-of-interest policy; see [GOVERNANCE.md](../GOVERNANCE.md#conflict-of-interest-coi).
- All decisions are recorded publicly on GitHub.

## 6. Donation & Formal Acceptance Process
## 6. Project Contribution & Formal Acceptance Process

```
① Proposal PR → ② 2-week public review → ③ TSC conditional approval → ④ SGA + IP clearance → ⑤ Formal acceptance, incubation begins
```

1. **Proposal PR**: The donor fills out [proposal-template.md](proposal-template.md) and submits it as a PR to `incubator/projects/<project-name>/proposal.md`. Questions before submitting can go to <contact@flagos.io>.
1. **Proposal PR**: The contributing party fills out [proposal-template.md](proposal-template.md) and submits it as a PR to `incubator/projects/<project-name>/proposal.md`. Questions before submitting can go to <contact@flagos.io>.
2. **2-week public review**: The PR stays open for at least 14 days to collect community feedback. Meanwhile the TSC identifies 1–2 Mentors for the project.
3. **TSC conditional approval**: The donor presents at a TSC meeting (~30 minutes); the TSC votes under the rules in Section 5. On approval, the proposal PR is merged.
3. **TSC conditional approval**: The contributing party presents at a TSC meeting (~30 minutes); the TSC votes under the rules in Section 5. On approval, the proposal PR is merged.
- **Conditional approval only authorizes proceeding to IP due diligence; it does not constitute formal acceptance.**
- **Validity**: Conditional approval is valid for **12 months** from the vote, extendable by TSC resolution. If the SGA and IP clearance are not completed in time, the proposal is closed (closed/withdrawn) and the project **enters no lifecycle state**; it may be resubmitted later.
- **If rejected**: The TSC provides written reasons in the PR; the project may resubmit after 6 months.
Expand All @@ -94,7 +96,7 @@ Graduation is assessed against the following **six fixed dimensions**, which pro
3. **Releases & security**: a steady release cadence and basic security-response capability;
4. **Real adoption**: real users or production usage exists;
5. **Compliance**: IP and licensing remain continuously compliant, with no unresolved violating dependencies;
6. **Reduced single-party dependence**: dependence on the original donor is clearly reduced (maintainers not concentrated in a single organization).
6. **Reduced single-party dependence**: dependence on the original contributing party is clearly reduced (maintainership and critical project knowledge are not concentrated in a single individual or organization).

Graduation is initiated by project maintainers or the Mentor using the [graduation proposal template](graduation-template.md) (evidence per dimension + written Mentor recommendation), takes effect after a TSC vote under the rules in Section 5, and drops the `(incubating)` label.

Expand All @@ -111,7 +113,7 @@ Archiving is the neutral exit mechanism for a **formally accepted project** (Inc
- Inability to sustain basic release and security-response capability;
- The project's maintainer team voluntarily requests to exit.

After archiving, the repository becomes **read-only and remains available**; execution details (notice period, channel disposition, trademarks, reactivation) are in the [archiving runbook](archiving-runbook.md). **Commitment to donors**: the code license granted under the SGA is **irrevocable**; archiving does not affect anyone's right to fork and use the code. Project trademarks may be returned to the donor by negotiation.
After archiving, the repository becomes **read-only and remains available**; execution details (notice period, channel disposition, trademarks, reactivation) are in the [archiving runbook](archiving-runbook.md). **Commitment to contributing parties**: the code license granted under the SGA is **irrevocable**; archiving does not affect anyone's right to fork and use the code. Project trademarks may be returned to the contributing party by negotiation.

## 9. Licensing, Security & Supporting Files

Expand All @@ -131,7 +133,7 @@ Please report security vulnerabilities in incubating and graduated projects **pr

| File | Purpose |
|------|---------|
| [proposal-template.md](proposal-template.md) | Donation proposal template |
| [proposal-template.md](proposal-template.md) | Contribution proposal template |
| [ip-checklist.md](ip-checklist.md) | IP clearance checklist (hard gate for acceptance) |
| [sga-outline.md](sga-outline.md) | Software Grant Agreement term sheet (pending legal counsel) |
| [license-policy.md](license-policy.md) | License policy details (classification, CI scanning, AI artifacts) |
Expand Down
6 changes: 4 additions & 2 deletions incubator/README_CN.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,11 @@

本制度适用于外部捐赠项目;FlagOS 现有子项目的治理不受本目录约束。

**术语说明。**本目录所称**项目捐赠**(英文文档用 project contribution)指将现有外部项目整体捐入 FlagOS 生命周期,不指日常的代码、文档、issue 或 PR 贡献——后者遵循各仓库常规贡献流程。**捐赠方**(contributing party)指提交并在法律上授予本次项目捐赠的机构或个人。

**语言说明。**本目录以英文为工作语言。政策与手册类文档**以英文版本为准**——中文 `_CN` 版本供阅读便利,两者不一致时以英文版本为准。项目流程档案(提案、IP 清理清单、转正提案、年度 review)**须以英文填写**。正式签署的 SGA 等法律文件按其自身约定的语言效力条款执行。修改政策或手册须在同一 PR 中同步更新英文与 `_CN` 两个版本。

## 2. 捐赠方快速开始 / Quick Start for Donors
## 2. 捐赠方快速开始 / Quick Start: Contribute a Project

如果您计划向 FlagOS 捐赠项目:

Expand Down Expand Up @@ -94,7 +96,7 @@ TSC 依据以下原则评审捐赠提案,接收与否的理由公开记录。
3. **发布与安全**:有稳定的发布节奏,具备基本的安全漏洞响应能力;
4. **真实采用**:存在真实用户或生产使用;
5. **合规**:IP 与许可证持续合规,无未处理的违规依赖;
6. **去单点依赖**:对原始捐赠方的单点依赖已明显降低(maintainer 不集中于单一机构)。
6. **去单点依赖**:对原始捐赠方的单点依赖已明显降低(maintainer 与关键项目知识不集中于单一个人或机构)。

转正由项目 maintainer 或 Mentor 按[转正提案模板](graduation-template.md)发起(逐维度附证据 + Mentor 书面推荐),TSC 按第 5 节规则投票通过后生效,去掉 `(incubating)` 标识。

Expand Down
10 changes: 5 additions & 5 deletions incubator/acceptance-runbook.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

[English](acceptance-runbook.md) | [中文](acceptance-runbook_CN.md)

> Operational runbook for step ⑤ of the donation process in Section 6 of the [README](README.md): after Final Acceptance is recorded, the execution team completes asset migration and announcements per this document.
> Operational runbook for step ⑤ of the project contribution process in Section 6 of the [README](README.md): after Final Acceptance is recorded, the execution team completes asset migration and announcements per this document.

## 0. Preconditions

Expand All @@ -12,7 +12,7 @@

## 1. Repository Transfer

1. The donor hands over repository owner rights or uses GitHub **Transfer ownership** to move the repository into the `flagos-ai` org (stars, forks, issue and PR history are preserved; GitHub auto-redirects the old URL).
1. The contributing party hands over repository owner rights or uses GitHub **Transfer ownership** to move the repository into the `flagos-ai` org (stars, forks, issue and PR history are preserved; GitHub auto-redirects the old URL).
2. Multi-repository projects migrate one by one; once all are done, append a migration-completion confirmation under the Final Acceptance record in proposal.md.
3. Post-transfer setup:
- Branch protection (main: no force pushes, PR review required);
Expand All @@ -31,20 +31,20 @@

Execute the actual handover item by item, following the asset inventory and migration plan confirmed in the "Asset Verification & Migration Readiness" section of the IP clearance checklist:

- PyPI / npm / Docker Hub etc.: add the alliance machine account as owner; downgrade the donor's personal accounts to maintainer or remove them;
- PyPI / npm / Docker Hub etc.: add the alliance service account as owner; retain, downgrade, or remove existing organization and individual accounts according to the approved migration plan;
- Domains: complete the transfer or hand over DNS control;
- Social media / community channels: complete the handover or update ownership in the channel profile.

## 4. Community Onboarding

- Update the project list in the incubator [README](README.md) / [README_CN.md](README_CN.md) (status Incubating, donor, Mentors, proposal link);
- Update the project list in the incubator [README](README.md) / [README_CN.md](README_CN.md) (status Incubating, contributing party, Mentors, proposal link);
- Assign the project to the appropriate SIG (where none fits, the TSC manages it directly per the GOVERNANCE transition rules);
- Register the maintainer roster in MAINTAINERS.md or the project OWNERS file;
- Invite the project maintainers to the open agenda of TSC meetings.

## 5. Announcement

- Publish the acceptance announcement in the community repo's GitHub Discussions (project intro, donor, incubating-status note);
- Publish the acceptance announcement in the community repo's GitHub Discussions (project intro, contributing party, incubating-status note);
- Syndicate to official channels such as the WeChat official account;
- Wording: refer to the project as a "FlagOS incubating project"; avoid phrasing that could be read as final endorsement.

Expand Down
2 changes: 1 addition & 1 deletion incubator/acceptance-runbook_CN.md
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@

按 IP 清理清单"资产核验与迁移准备"节确认的资产清单与迁移方案,逐项执行实际移交:

- PyPI / npm / Docker Hub 等:将联盟机器账号加为 owner,捐赠方个人账号降为 maintainer 或移除;
- PyPI / npm / Docker Hub 等:将联盟服务账号添加为 owner;根据已批准的迁移方案,保留、降权或移除现有的机构账号和个人账号;
- 域名:完成转移或 DNS 控制权移交;
- 社交媒体/社区渠道:完成交接或在渠道简介中更新归属。

Expand Down
4 changes: 2 additions & 2 deletions incubator/archiving-runbook.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@

## 1. Notice Period

- Before an archiving proposal goes to a TSC vote, it is publicized in the project repository and the community repository for **≥30 days**, with best-effort direct contact to the project maintainers and the donor contact;
- Before an archiving proposal goes to a TSC vote, it is publicized in the project repository and the community repository for **≥30 days**, with best-effort direct contact to the project maintainers and the contributing party contact;
- During the notice period the project may present an improvement plan; the TSC decides whether to halt the archiving process;
- After the vote passes, downstream users get a **≥30-day** migration notice before the repository goes read-only.

Expand All @@ -29,7 +29,7 @@

## 5. Trademark Disposition

- Negotiated with the donor per the SGA trademark terms: return to the donor, retain under the alliance, or let registration lapse;
- Negotiated with the contributing party per the SGA trademark terms: return to the contributing party, retain under the alliance, or let registration lapse;
- The outcome is recorded in the process records of `projects/<project-name>/proposal.md`.

## 6. Announcement
Expand Down
Loading