大部分特性更新、Bug 修复的代码变更可以遵循普通的 GitHub Flow 流程,通过发起 Pull Request 和 Code Review 完成。但有一些更新会导致系统架构、API 发生根本改变——对于这类的更新我们需要设计一个流程来保证 Taro 团队和社区达成共识。
RFC (Request For Comments)就是一种为了保证重大特性更新和架构更改能够顺利推进的一种流程机制。
如前文所述,任何导致系统架构,API 发生改变时或是导致代码整体结构更改都需要 RFC 流程,例如:
以下类型的改动不需要进行 RFC 流程:
如果开发者提交了本应该走 RFC 流程的 Pull Request,Taro 团队会把 Pull Request 关闭并请发起 Pull Requst 的开发者在 RFC 仓库执行 RFC 流程。
繁琐的流程对开发和迭代效率毫无疑问是有害的,但出于以下的原因,让我们即便愿意降低迭代效率也要引入 RFC 机制:
简而言之,如果需要 RFC 改动在未来的 Taro 版本在发布,需要先让 RFC 提案文档在 RFC 仓库合并。
0000-template.md
到 rfcs/0000-my-feature.md
(my-feature
需要更改为一个能够描述该 RFC 的词语,0000
是 RFC 的序号,先不用更改);Pending
阶段;Active
阶段;Landed
阶段,RFC 提案也会被合并进入 RFC 仓库;当一个 RFC 提案作为 Pull Request 请求合并时:
Active
阶段,Taro 团队或社区可以开始着手提案的代码实现;当一个 RFC 提案在社区中达成共识,进入 Active
阶段之后,并不意味着 RFC 提案的更改就是板上钉钉的事情,RFC 提案的代码实现不一定可以合入 Taro 代码的主仓库。但 RFC 提案进入了 Active
的确意味着 Taro 团队和社区认可 RFC 提案的更改,并认为这是将来应该去实现的一件事。
也就是说,当 RFC 提案进入 Active
阶段时并不认为这个改动被分配了优先级,具体的版本发布时间也需要在代码实现之后才能确定。
RFC 提案文档的作者没有义务去进行 RFC 提案的代码实现。当然, RFC 提案的作者(或任何一位开发者)如果有意愿在 RFC 提案文档被接受后去进行代码实现,这也是非常受欢迎的。
已经被接受的 RFC 提案需要包含一个在 Taro 主仓库的 Pull Request 链接(即便 PR 还在起草或未完成阶段),RFC 提案的作者和 Taro 团队需要去督促 RFC 实现 PR 朝着 RFC 提案文档所描述的方向去推进。
Taro RFC 流程机制受到了来自 Rust RFC Process、React RFC Process 和 Vue RFC Process 的启发。
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4