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

news/2024/7/10 1:55:42 标签: 开源, issue, NutUI, React, Vue, contributor, 组件库

前言

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_44">四、解决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


http://www.niftyadmin.cn/n/5112999.html

相关文章

Spring Cloud Alibaba Seata 实现分布式事物

Seata 是一款开源的分布式事务解决方案,致力于提供高性能和简单易用的分布式事务服务。Seata 将为用户提供了 AT、TCC、SAGA 和 XA 事务模式,为用户打造一站式的分布式解决方案 Seata 官网:https://seata.io/zh-cn/ Spring Cloud Alibaba 官…

信息系统项目管理师教程 第四版【1-共24章整体脑图整理】

信息系统项目管理师教程 第四版 电子版链接 链接:https://pan.baidu.com/s/1cicvAH519G-j2IBjE69JCQhttps://link.zhihu.com/?targethttps%3A//pan.baidu.com/s/1cicvAH519G-j2IBjE69JCQ 提取码:1qaz 如果失效可以用下面这个, 链接&…

Docker开箱即用,开发码农加分项部署技术拿下!

目录 Docker概述 效果呈现 镜像 & 镜像仓库 & 容器 镜像 DockerHub 配置国内源加速 容器 简单的命令解读 Docker基础 常用命令 案例演示 数据卷 什么是数据卷 数据卷命令 演示环节 匿名数据卷 案例演示 自定义挂载位置 案例演示 自定义镜像 镜像结构 Dockerfile …

【C++】继承 ⑦ ( 继承中的对象模型分析 | 继承中的构造函数和析构函数 )

文章目录 一、继承中的对象模型分析1、继承代码示例2、基类与派生类内存模型3、问题引入 - 派生类对象构造函数和析构函数调用4、完整代码示例 - 派生类对象内存模型 二、继承中的构造函数和析构函数1、子类构造函数与析构函数调用顺序2、子类构造函数参数列表3、代码示例 - 继…

kotling构造函数

Kotlin-继承与构造函数 - 简书 (jianshu.com) Kotlin语言中的继承与构造函数(详解)_kotlin 继承 构造函数_young螺母的博客-CSDN博客

OpenCV+QT实现的数字图像处理算法合集

源码下载地址: 基于OpenCV和QT的图像处理源码 图像预处理 灰度处理 灰度直方图 灰度均衡 梯度锐化 Laplace锐化 边缘检测 Roberts Sobel Laplace Prewitt canny Krisch 噪声 椒盐噪声 高斯噪声 滤波 均值滤波 中值滤波 双边滤波 形态学滤波 高斯滤波 图像变…

​​​​​​​2022年上半年 软件设计师 上午试卷(1-32)

以下关于冯诺依曼计算机的叙述中,不正确的是 (1) 。 (1) A. 程序指令和数据都采用二进制表示 B. 程序指令总是存储在主存中,而数据则存储在高速缓存中 C. 程序的功能都由中央处理器(CPU&…

在Ubuntu上安装和挂载NFS

在Ubuntu上安装和挂载NFS可以按照以下步骤进行: 安装NFS客户端工具:在Ubuntu上,可以使用以下命令安装NFS客户端工具: shell复制代码 sudo apt-get install nfs-common 创建挂载点:在本地Ubuntu计算机上,…