如何打开 Pull Request
这些说明提供了逐步设置你的机器、向 React Native 核心仓库做贡献以及创建你的第一个 Pull Request 的过程。
前言:准备工作
为了构建和开发 React Native,你需要一些工具和依赖项。这些在“使用原生代码构建项目”部分的环境搭建指南中有所介绍。
为了接受你的 Pull Request,你需要提交一份贡献者许可协议 (CLA)。你只需提交一次,即可参与 Meta 的任何开源项目。这只需一分钟,你可以在等待依赖项安装时完成。
第一章:欢迎来到开源世界
1. 安装 git
React Native 源码托管在 GitHub 上。你可以通过 git
命令行程序与 git 版本控制交互。我们建议你按照GitHub 的说明在你机器上设置 git。
2. 获取源码
虽然你可以在 GitHub 上浏览 React Native 的源码,但我们建议你在本地机器上设置一个 fork。
- 前往 https://github.com/facebook/react-native。
- 点击右上角的“Fork”按钮。
- 当被询问时,选择你的用户名作为此 fork 的宿主。
你现在将在 GitHub 上拥有一个 React Native 的 fork,地址是 https://github.com/your_username/react-native。接下来,你将在本地机器上获取一份源码副本。打开 shell 并输入以下命令
git clone https://github.com/facebook/react-native.git
cd react-native
git remote add fork https://github.com/your_username/react-native.git
如果你对上述内容不熟悉,请不要害怕。你可以在 macOS 和 Linux 上通过 Terminal 应用程序,或在 Windows 上通过 PowerShell 访问 shell。
将创建一个新的 react-native
目录,其中包含 React Native 核心仓库的内容。这个目录实际上是 React Native git 仓库的一个克隆。它设置了两个远程仓库 (remotes)
origin
指向上游仓库 https://github.com/facebook/react-nativefork
指向你自己在 GitHub 账户上的 React Native fork。
3. 创建分支
我们建议在你的 fork 中创建一个新分支来跟踪你的修改
git checkout --branch my_feature_branch --track origin/main
第二章:实现你的修改
1. 安装依赖项
React Native 是一个由 Yarn Workspaces (Yarn Classic) 管理的 JavaScript monorepo。
运行项目级安装
yarn
你还需要构建一次 react-native-codegen
包
yarn --cwd packages/react-native-codegen build
2. 修改代码
你现在可以使用你喜欢的代码编辑器打开项目。Visual Studio Code 在 JavaScript 开发者中很流行,如果你正在对 React Native 进行一般性修改,我们推荐使用它。
IDE 项目配置
- VS Code: 打开
react-native.code-workspace
文件。这应该会提示安装推荐扩展,并正确配置 Flow Language Service 和其他编辑器设置。 - Android Studio: 打开仓库根目录(包含
.idea
配置目录)。 - Xcode: 打开
packages/rn-tester/RNTesterPods.xcworkspace
。
3. 运行你的修改
rn-tester 包可用于运行和验证你的修改。你可以在 RNTester 的 readme 中了解更多。
4. 测试你的修改
确保你的修改是正确的,并且没有引入任何测试失败。你可以在运行和编写测试中了解更多。
5. 检查你的代码
我们理解熟悉并掌握 React Native 核心仓库中使用的各种语言风格需要一些时间。开发者无需担心一些小问题,因此我们尽可能使用自动化工具来按照规范重写你的代码。
例如,我们使用 Prettier 来格式化我们的 JavaScript 代码。这为你节省了时间和精力,因为你可以通过编辑器的集成功能或手动运行 yarn run prettier
让 Prettier 自动修复任何格式问题。
我们还使用 linter 来捕获代码中可能存在的样式问题。你可以通过运行 yarn run lint
来检查代码的样式状态。
要了解更多关于编码规范的信息,请参阅编码风格指南。
6. 查看你的修改
许多流行的编辑器都以某种方式集成了源代码控制。你也可以在命令行上使用 git status
和 git diff
来跟踪已更改的内容。
第三章:提交你的修改
1. 提交你的修改
确保使用 git
将你的修改添加到版本控制中
git add <filename>
git commit -m <message>
你可以使用一个简短的描述性句子作为你的提交消息 (commit message)。
担心写出好的 git 提交消息?别担心。之后,当你的 Pull Request 被合并时,你所有的提交将被压缩成一个单独的提交。你的 Pull Request 描述将用于填充这个压缩提交的消息。
本指南提供了足够的信息来帮助你完成第一次贡献。GitHub 有几个资源可以帮助你开始学习 git
2. 推送你的修改到 GitHub
一旦你的修改已提交到版本控制,你就可以将它们推送到 GitHub。
git push fork <my_feature_branch>
如果一切顺利,你将看到一条消息,鼓励你打开一个 Pull Request
remote:
remote: Create a pull request for 'your_feature_branch' on GitHub by visiting:
remote: https://github.com/your_username/react-native/pull/new/your_feature_branch
remote:
访问提供的 URL 以继续下一步。
3. 创建你的 Pull Request
你快完成了!下一步是填写 Pull Request。使用一个描述性但不要太长的标题。然后,确保填写默认 Pull Request 模板提供的所有字段
- 摘要: 使用此字段说明提交此 Pull Request 的动机。你正在修复什么?
- 变更日志: 提供一个简短的描述,说明如果 Pull Request 合并后会发生什么变化,以帮助发布维护者编写发布说明。
- 测试计划: 让审阅者知道你是如何测试你的修改的。你是否考虑了任何边缘情况?你遵循了哪些步骤来确保你的修改达到预期效果?参阅什么是测试计划?了解更多。
4. 审阅和处理反馈
留意你在 GitHub 上的 Pull Request 中的任何评论和审阅反馈。维护者将尽力提供建设性的、可操作的反馈,以帮助你的修改准备好合并到 React Native 核心仓库。