Keel — open governance

Keel 是 Apache 2.0 开源 的中国市场 React Native 平台。本文档说明治理模式、贡献流程、决策权重。


License

Apache License 2.0。选 Apache 2.0 而不是 MIT 的理由:

  • 专利保护条款 —— 贡献者授予的专利许可不可撤销,对企业用户友好(可以放心商用,不担心被埋伏专利诉讼)
  • 明确商标条款 —— “Keel” 名字 / logo 不在 license 范围内(第 6 条),保留品牌权
  • 业界惯例:Kubernetes / Apache Cassandra / TiDB / Apache Doris 等做企业级服务的项目都选 Apache 2.0

不接受 CLA(Contributor License Agreement),按 Apache 2.0 第 5 条默认许可即可——降低社区贡献门槛。


Repository

Keel 源码当前位于 appunvs/appunvs monorepo 的 keel/ 子目录,完全开源,欢迎外部 PR。仓库里其它子目录是 Appunvs 维护的独立产品,跟 Keel 解耦 —— Keel-only contributor 只需关心 keel/ 路径。

为什么暂不拆独立 appunvs/keel repo:

  • 跨仓库 PR 协调成本高
  • monorepo 公开后 Keel-only contributor 可以只关心 keel/ 子目录
  • 等用户量起来后再考虑拆分(后续可选)

决策机制

Tier 1:核心团队决策

不开 RFC,直接 PR 合并:

  • 编译错误 / bug 修复
  • 文档错别字 / 链接修复
  • 内部重构(不改公开 API)
  • CI / 工程化改进

Tier 2:RFC + 公开讨论(≥ 7 天)

需要走 GitHub Discussions RFC 频道 提案 + 至少 7 天讨论窗口:

  • 公开 API 改动(Keel SDK / CLI / Build / Update / Submit 接口)
  • 新增 Tier 1 模块
  • License / 治理变更
  • 路线图重大调整

模板见 .github/RFC_TEMPLATE.md

Tier 3:核心团队保留权

无论社区讨论结果如何,下列由核心团队最终拍板(避免社区被 hijack):

  • 商业定价(pricing.md
  • 商标 / Brand identity
  • 法律合规相关条款
  • 跟 appunvs / Mortar 的产品边界

路线图透明度

roadmap.md 是公开当前规划。变更走 Tier 2 RFC。

实际工程进展跟踪:GitHub Project按路线图阶段列分。


贡献流程

提 issue / discussion

提 PR

  1. Fork + 在 feature branch 上改
  2. PR 标题用 conventional commits 格式(feat(keel): ... / fix(cli): ...
  3. PR 描述说清楚动机 + 测试方式
  4. CI 必须全绿(lint + build + test)
  5. 至少 1 个 maintainer approve 才合并;改公开 API 的 PR 需要 2 个

测试要求

  • 新增 native 模块:iOS + Android 都要有最小测试
  • 改 Native SDK 公开 API:必须更新 keel/version.jsonsdk_version 数字(ABI bump)
  • 改 CLI:单元测试 + 一个 e2e(创建项目 → build → 验证产物)

Maintainer 列表

首发内测期间核心团队(按字母序):

  • TBD

进入 maintainer 的路径:

  • 持续高质量贡献 ≥ 3 个月
  • 至少 5 个被接受的 PR
  • 现有 maintainer 中 ≥ 50% 同意

跟 appunvs / Mortar 的边界

范畴谁的决定权
Keel SDK / CLI / Build / Update / SubmitKeel 社区(按上面机制)
Keel 跟 Mortar 怎么集成Keel 社区(Mortar 是 Keel 的可选 plugin)
Mortar 内部架构Mortar 团队(Keel 不干涉)
appunvs 内部如何使用 Keelappunvs 团队(Keel 不干涉,但 Keel 公开 API 改动会通知 appunvs)

跨产品 PR(同时改 keel + mortar 或 keel + appunvs)走双方 maintainer 联合 review。


商业模式与开源的关系

Keel 完全开源:SDK / CLI / Build server / Update server / Push server 全部代码 Apache 2.0 License。

商业服务(pricing.md)卖的是托管 + SLA + 一等运营

  • 自己跑 Build server / Update server?✅ 可以,按 Apache 2.0 free
  • 用 Keel 的托管 Build?走 Keel Pro / Team 订阅
  • 自建可以参考 deployment.md

跟 GitLab / Sentry / Supabase 同样的”open core + managed cloud”模式。社区版不阉割功能——商业版主要是省运维。


行为准则

Contributor Covenant 2.1。违规走 conduct@keel.appunvs.com 报告(独立邮箱,不进核心团队 issue 渠道)。


RFC 接受 / 拒绝模板(核心团队回复用)

## Decision

[Accepted / Rejected / Deferred to V_]

## Rationale

(为什么这么决)

## Action items

- [ ] xxx
- [ ] xxx

License + Trademark Policy

  • 代码 + 文档:Apache 2.0
  • “Keel” 名字 + logo:不在 Apache 2.0 范围;只允许在描述本项目时使用,禁用于 fork 后的衍生品 / 商业服务命名(同 Apache 项目惯例)
  • 商标使用申请:trademark@keel.appunvs.com(远期,后续需要)