如何成为开源组件库NutUI的contributor:解决issue并提交PR

2023-12-14 11:46:05

前言

NutUI 是一套京东风格的轻量级移动端组件库。自诞生以来,一直在紧跟技术的发展不断推陈出新,始终保持稳健的发展态势,从一个单一的基础组件库发展到如今服务于数千开发者的多端 UI 组件库。NutUI 的成长离不开团队成员的努力,更离不开广大社区开发者的反馈和共建。

因此本文就以一个新人视角来完成一次issue的解决以及PR的提交,成为NutUI的共建者,为开源社区共享自己的一份力量!
在这里插入图片描述

贡献指南

一、fork项目:

首先打开NutUI-React的GitHub仓库地址,点击fork项目,然后就可以在自己的repositories列表打开刚刚fork的项目。
在这里插入图片描述

二、clone代码:

clone 仓库代码到本地,并同步主仓库的最新代码。

git clone https://github.com/jdf2e/nutui-react
cd nutui-react

查看远程仓库信息:

git remote -v

添加自己仓库的地址:

git remote add myeslf https://github.com/beginnerZhang/nutui-react

在这里插入图片描述

三、运行项目

1.本项目为 pnpm monorepo 仓库,要求使用 pnpm 安装项目依赖。

pnpm install

Monorepo 是一种项目代码管理方式,指单个仓库中管理多个项目,有助于简化代码共享、版本控制、构建和部署等方面的复杂性,并提供更好的可重用性和协作性。

这一步报错的可以使用npm install pnpm -g先把pnpm安装了。

2.运行 Taro demo:这里以微信小程序为例。
注意:启动 taro 版本的 demo,需要 taro 3.6.x

pnpm dev:taro:weapp

这将会在packages/nutui-taro-demo下生成一个dist/weapp文件夹,然后使用微信开发者工具导入此文件夹,效果如下:
在这里插入图片描述

四、解决issue

五、提交PR

1.所有代码改动在提交前都应该通过以下测试:
单元测试:pnpm test
Eslint 检查:pnpm lint
同时在 commit 时,会自动进行 Prettier 格式化以及 Eslint 修复。若 commit 失败,请再次执行上面的命令,检查是否通过了 lint 插件。

2.之后就是代码提交流程了:

git add .
git commit -m "xxx"
git push

其中commit的类型可以是:upd chore docs feat fix test refactor revert style releas
例如:fix(Dialog): 点击蒙层无法关闭

3.然后打开我们的Github仓库,在点击New Pull request:
在这里插入图片描述
然后点击Create pull request,在PR模板中填写相关信息,点击提交。

4.之后就可以在主仓库的Pull requests里看到我们的PR了,PR 会在 Review 通过后被合并到主仓库,然后等待 NutUI-React 发布新版本(每周一次)。

Pull Request 规范

  • 每个 PR 只解决单个问题或者新增单个功能;
  • 当新增组件或修改原有组件时,同步更改对应的单元测试和文档,保证代码的稳定;
  • commit message 请遵循 Angular Style Commit Message Conventions 规范;
  • PR 信息中最好包括修改了哪个组件,解决了哪个问题,并关联 github 上对应的 issue 链接

可能出现的问题

要及时更新我们fork的库,保持与主仓库的同步,如果出现以下问题,可以直接在Github上点击Discard 1 commitUpdate branch来解决。
在这里插入图片描述
本地可能会出现这种问题:Your branch is ahead of 'origin/next' by 9 commits.
解决方法:执行以下命令来将本地分支重置到与远程仓库一致,将强制将本地分支移动到与远程分支 origin/next 相同的提交,丢弃本地分支上的所有不同。

PS D:\work\swipe_test\nutui-react> git reset --hard origin/next
HEAD is now at 5c161846 chore(release): v2.0.20
PS D:\work\swipe_test\nutui-react> git status
On branch next
Your branch is up to date with 'origin/next'.
nothing to commit, working tree clean

相关链接

最后

庞大的开源社区一定有很多值得去学习的东西,开源本身是一场历练和修行。成为 contributor 不是唯一目的,通过阅读代码和修复 bug 也是一种提升,也会认识很多志同道合的朋友。我们希望每一个开源者都能用微笑面对这一路的风景。

NutUI 的持续迭代离不开使用者和开发者的长期反馈和支持,愿大家在开源的道路上步履不停~

参考文献:
NutUI Contributor 共建视频指南(强烈推荐!此视频会一步步引导完成共建)
NutUI 贡献指南1
NutUI贡献指南2
NutUI-React 共建指南
NutUI 邀您共建,Contributor 您好

推荐阅读:
Github进行fork后如何与原仓库同步1
Github进行fork后如何与原仓库同步2

文章来源:https://blog.csdn.net/zag666/article/details/133971355
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。