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 / 治理变更
- 路线图重大调整
Tier 3:核心团队保留权
无论社区讨论结果如何,下列由核心团队最终拍板(避免社区被 hijack):
- 商业定价(
pricing.md) - 商标 / Brand identity
- 法律合规相关条款
- 跟 appunvs / Mortar 的产品边界
路线图透明度
roadmap.md 是公开当前规划。变更走 Tier 2 RFC。
实际工程进展跟踪:GitHub Project按路线图阶段列分。
贡献流程
提 issue / discussion
- Bug 报告:GitHub Issues,加
keellabel - Feature 请求 / 讨论:GitHub Discussions,
keel频道 - RFC 提案:Discussions
keel-rfc频道(用 RFC template) - 安全问题:security@keel.appunvs.com(不要在公开 issue 里报)
提 PR
- Fork + 在 feature branch 上改
- PR 标题用 conventional commits 格式(
feat(keel): .../fix(cli): ...) - PR 描述说清楚动机 + 测试方式
- CI 必须全绿(lint + build + test)
- 至少 1 个 maintainer approve 才合并;改公开 API 的 PR 需要 2 个
测试要求
- 新增 native 模块:iOS + Android 都要有最小测试
- 改 Native SDK 公开 API:必须更新
keel/version.json的sdk_version数字(ABI bump) - 改 CLI:单元测试 + 一个 e2e(创建项目 → build → 验证产物)
Maintainer 列表
首发内测期间核心团队(按字母序):
- TBD
进入 maintainer 的路径:
- 持续高质量贡献 ≥ 3 个月
- 至少 5 个被接受的 PR
- 现有 maintainer 中 ≥ 50% 同意
跟 appunvs / Mortar 的边界
| 范畴 | 谁的决定权 |
|---|---|
| Keel SDK / CLI / Build / Update / Submit | Keel 社区(按上面机制) |
| Keel 跟 Mortar 怎么集成 | Keel 社区(Mortar 是 Keel 的可选 plugin) |
| Mortar 内部架构 | Mortar 团队(Keel 不干涉) |
| appunvs 内部如何使用 Keel | appunvs 团队(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(远期,后续需要)