如何打开 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 上的终端应用程序或 Windows 上的 PowerShell 访问 shell。
一个新的 react-native
目录将被创建,其中包含核心 React Native 仓库的内容。此目录实际上是 React Native git 仓库的克隆。它设置了两个远程仓库
origin
指向上游 https://github.com/facebook/react-native 仓库fork
指向你自己的 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:打开 repo 根文件夹(包含
.idea
配置目录)。 - Xcode:打开
packages/rn-tester/RNTesterPods.xcworkspace
。
3. 运行你的更改
包 rn-tester 可用于运行和验证你的更改。你可以在 RNTester readme 中了解更多信息。
4. 测试你的更改
确保你的更改是正确的,并且没有引入任何测试失败。你可以在 运行和编写测试 中了解更多信息。
5. 代码检查
我们理解,要熟悉并在核心 React Native 仓库中使用的每种语言中遵循的风格可能需要一段时间。开发者不应担心小的细节,因此在可能的情况下,我们使用工具来自动化重写代码以遵循约定的过程。
例如,我们使用 Prettier 来格式化我们的 JavaScript 代码。这节省了你的时间和精力,因为你可以让 Prettier 通过其编辑器集成或手动运行 yarn run prettier
来自动修复任何格式问题。
我们还使用 linter 来捕获你的代码中可能存在的样式问题。你可以通过运行 yarn run lint
来检查你的代码样式状态。
要了解有关编码约定的更多信息,请参阅 编码风格指南。
6. 查看你的更改
许多流行的编辑器都以某种方式与源代码控制集成。你还可以使用命令行上的 git status
和 git diff
来跟踪已更改的内容。
第三章:提议你的更改
1. 提交你的更改
确保使用 git
将你的更改添加到版本控制中
git add <filename>
git commit -m <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 仓库中。