ant-design/docs/blog/to-be-collaborator.zh-CN.md

166 lines
6.5 KiB
Markdown
Raw Normal View History

---
title: 如何成长为 Collaborator
2023-03-07 12:24:35 +08:00
date: 2022-12-22
author: heiyu4585
---
大家好,我是[黑雨](https://github.com/heiyu4585)。关于 Ant Design相信大家都非常熟悉我在很多后台管理系统项目使用过 Ant Design给我最大的感觉就是好用、好看、简单、稳定。现在 `v5` 版本已经发布,强烈推荐大家试使用,我也有幸开发了 `v5` 版本的 `Tour` 组件和 `App` 组件,以及一些其他维护工作。下面给大家分享一下 Ant Design 的 PR 流程,希望能给有兴趣为社区共建的同学提供一份参考。
## 一. 阅读相关文章熟悉相关概念
[贡献指南](https://ant.design/docs/react/contributing-cn)
[如何优雅地在 github 上贡献代码](https://segmentfault.com/a/1190000000736629)
[成为社区协作成员](https://github.com/ant-design/ant-design/wiki/Collaborators#how-to-apply-for-being-a-collaborator)
[开发者说明](https://github.com/ant-design/ant-design/wiki/Development)
[使用 git 创建 PR 的一些建议](https://github.com/ant-design/ant-design/discussions/37051)
## 二. 拉取 Ant Design 代码到本地
### 1. Fork 项目
- 首先需要 fork 项目,进入[项目页面](https://github.com/ant-design/ant-design),点击右上角的 [Fork 按钮](https://github.com/ant-design/ant-design/fork)
- 你的 github 帐号中会出现 Ant Design 链接是 https://github.com/heiyu4585/ant-design 这个项目
- 在本地电脑上项目地址使用以下命令:得到一个 github 文件夹
```bash
git clone https://github.com/[yourGithubAccount]/ant-design.git
```
注意: `[yourGithubAccount]` 改为自己的 github 用户名
### 2. 添加远端分支地址
- 进入 Ant Design 文件夹,添加 Ant Design 的远程地址
```bash
cd ant-design
git remote add upstream https://github.com/ant-design/ant-design
```
- 拉取最新的远端分支版本
```bash
git pull upstream master
```
现在我们在 fork 来的 master 分支上,这个 master 留作跟踪 upstream 的远程代码
### 3. 在 github 上创建新 fix 分支
![image-20221211130607684](https://user-images.githubusercontent.com/10607168/208016775-623abfe7-fa7f-438d-abc3-be445e52d8c5.png)
### 4. 在本地拉取新分支
```bash
git pull
git checkout fix-branch
```
现在我们可以在分支上更改代码了
## 三. 在[Ant Design 的 issue](https://github.com/ant-design/ant-design/issues)页找到 issue 并分析选择
为了能帮助你开始你的第一次尝试,我们用 [good first issues](https://github.com/ant-design/ant-design/issues?q=is%3Aissue+is%3Aopen+label%3A"good+first+issue") 标记了一些比较容易修复的 bug 和小功能,这些 issue 可以很好地作为你的首次尝试。[help wanted](https://github.com/ant-design/ant-design/issues?q=is%3Aissue+is%3Aopen+label%3A%22help+wanted%22) 是作为开发者比较容易接手的一些问题。
![image-20221216111126983](https://user-images.githubusercontent.com/10607168/208016864-fd72d378-a5db-4c20-9a34-b136d5e7c446.png)
## 四. 开发流程
1. `npm start` 在本地运行 Ant Design 的网站
2. 按照 issue 描述调试、修复问题或者开发新的 feature
## 五. 运行测试用例及规范检查
1. 在添加 issue 相关测试用例同时,确认所有的测试都是通过的 `npm run test`。 小贴士:开发过程中可以用 `npm test -- --watch TestName` 来运行指定的测试。
2. 运行 `npm test -- -u` 来更新 [jest snapshot](https://facebook.github.io/jest/docs/en/snapshot-testing.html#snapshot-testing-with-jest) 并且把这些更新也提交上来(如果有的话)。
3. 确保你的代码通过了 lint 检查 `npm run lint`
## 六. 合并修改
- 一个常见的问题是远程的 upstream (ant-design/master) 有了新的更新,从而会导致我们提交的 Pull Request 时会导致冲突,因此我们可以在提交前先把远程其他开发者的 commit 和我们的 commit 合并。
- 使用以下代码切换到 `master` 分支:
```bash
git checkout master
```
- 使用以下代码拉出远程的最新代码:
```bash
git pull upstream master
```
- 切换回 fix-branch
```bash
git checkout fix-branch
```
-`master``commit `合并到 `fix-branch`,有冲突解决冲突:
```bash
git rebase master
```
- 把更新代码提交到自己的 `fix-branch` 中:
```bash
git push origin fix-branch
```
## 七. 提交 Pull Request
你可以在你的 github 代码仓库页面切换到 branches 页面点击 fix-branch 分支后点击 `New pull request` 按钮,添加相关注释后提交. 或者切换到 fix-branch 分支的代码仓库点击 `Compare & pull request` 按钮,添加相关注释后提交.
- [PR 页面](https://github.com/ant-design/ant-design/pulls) 上按照默认格式认真填写提交描述,可以参考已经 merge 的 PR。
- 查看 checks 是否全部通过,如果没有点 `details` 就去查看对应的报错,修复后重新 push。
![image-20221210233540659](https://user-images.githubusercontent.com/10607168/208016178-5edb30af-7191-4ca0-a2d1-17c833f9ed92.png)
## 八. 接受维护者的 review 并修改,合格后等待维护者 merge
![image-20221216104628528](https://user-images.githubusercontent.com/10607168/208016926-f8ec6cf3-a599-481f-9611-d894975ab5f5.png)
## 九. 常见错误
- PR 描述未按要求填写
![image-20221210234139748](https://user-images.githubusercontent.com/10607168/208016993-7b1b6838-5944-4098-85ed-d0ea4567f42f.png)
- 未 rebase 到最新版本
![image-20221210234002553](https://user-images.githubusercontent.com/10607168/208017056-9a209552-29f3-48ab-ad09-90fde458147c.png)
- react 16 test 未通过
![image-20221212091630186](https://user-images.githubusercontent.com/10607168/208017142-c9ee4169-f2d0-4085-bcff-6c859ec54e71.png)
修复方法:
```
npm run install-react-16
npm run test componet/XXX
```
## 十. 成为 Collaborator
当持续维护一段时候后Collaborator 会启动邀请机制,在 [#3222](https://github.com/ant-design/ant-design/issues/3222) 中发起投票。当满足足够票数后,会正式邀请你成为 Collaborator。
![Collaborators](https://user-images.githubusercontent.com/5378891/209089697-4fe3f3b3-ef44-4d63-94c2-d93d082c9951.png)
## 不要怕犯错误,勇敢地去做,开源世界欢迎大家。
![giphy](https://user-images.githubusercontent.com/10607168/208015974-04c3f09b-b5e8-4ef7-af00-0bb5652ec619.gif)
docs: update blog (#41177) * docs: update blog * docs: update docs * docs: update docs * docs: update blog * docs: update docs * docs: update docs * docs: update docs * docs: update docs * docs: update docs * feat: update doc * docs: update docs * Update docs/blog/contributor-development-maintenance-guide.zh-CN.md Co-authored-by: afc163 <afc163@gmail.com> * docs: update docs * feat: update doc * Update docs/blog/contributor-development-maintenance-guide.zh-CN.md Co-authored-by: MadCcc <1075746765@qq.com> * Update docs/blog/contributor-development-maintenance-guide.zh-CN.md Co-authored-by: MadCcc <1075746765@qq.com> * Update docs/blog/contributor-development-maintenance-guide.en-US.md Co-authored-by: MadCcc <1075746765@qq.com> * docs: update docs * docs: update docs * docs: update docs * docs: update docs * docs: update docs * docs: update docs * docs: update docs * Update docs/blog/contributor-development-maintenance-guide.en-US.md Co-authored-by: MadCcc <1075746765@qq.com> * Update docs/blog/contributor-development-maintenance-guide.en-US.md Co-authored-by: MadCcc <1075746765@qq.com> * Update docs/blog/contributor-development-maintenance-guide.en-US.md Co-authored-by: MadCcc <1075746765@qq.com> * Update docs/blog/contributor-development-maintenance-guide.en-US.md Co-authored-by: MadCcc <1075746765@qq.com> * docs: update docs * Update docs/blog/contributor-development-maintenance-guide.en-US.md Co-authored-by: MadCcc <1075746765@qq.com> * Update docs/blog/contributor-development-maintenance-guide.en-US.md Co-authored-by: MadCcc <1075746765@qq.com> * docs: update docs * docs: update docs * Update docs/blog/contributor-development-maintenance-guide.en-US.md Co-authored-by: MadCcc <1075746765@qq.com> * docs: update docs * docs: update docs --------- Co-authored-by: afc163 <afc163@gmail.com> Co-authored-by: MadCcc <1075746765@qq.com>
2023-03-13 19:52:01 +08:00
## 相关资源
了解更多 Ant Design 的开发流程和和注意事项,可以参考:
- [贡献者开发维护指南](/docs/blog/contributor-development-maintenance-guide-cn)