论如何参与一个开源项目(上):参与的意义和提issue

news/2024/7/10 22:28:37 标签: 开源, github, git, 后端, 前端

文章目录

  • 写在前面的一些话
  • 第零步:为何参与开源项目
  • 第一步:提出问题
  • 别急

写在前面的一些话

说起开源项目,好像人人都懂:不过就是一群人一起写了些东西,并且这些东西是公开的,大家都能看。但要细说,可能大多数的开发者都说不出个所以然,甚至不知道怎么提issue。

所以我就想写这样一篇文章,来聊聊我是如何参与开源项目的,参与开源项目的正确流程是怎样的,以及我们参与开源项目的意义。

本篇文章适合怎样的读者:

  • 有一定GitHub和Git基础,会commit pull push、会解决合并冲突、知道仓库和分支的概念;
  • 有自我提升的意愿。

第零步:为何参与开源项目

本来是只写了从第一步到第五步的,大纲我都拟好了,分别是*****🤣。后来想了想,既然都写了,为何不写全一些呢?于是便有了这第零步。

作为一名程序员,我想大多数朋友应该都和我一样,在编程方面主要还是靠自学,比如看书、看视频或看博文。

但当我们学习到一定程度的时候,总该把自己所学的东西融会贯通一下。这时候我们就会去试着写一些代码,做一做项目。

而聪明的开发人员会意识到那些有长期积累经验的开源项目当中蕴含着大量的知识,可以从优秀开源项目的代码当中学习到相当多的东西。

如果恰好有兴趣且恰好有时间,参与开源项目将会是提升自我的好机会,你的代码将会经过一双双眼睛的审查,你将得到其他程序员的建议,这在无形之中便能提升你的代码质量和规范。

尤其是作为学生,在校能接触到的项目一般都是比较简单的,类似图书管理系统、学生选课系统之类的(可能自己觉得不简单🤣),但在开源社区,你可以接触到各种方向的开源项目,甚至企业级的大型项目。

总之,可以确信的是,参与到一个合适的开源项目中,一定是对你有较大帮助的。

欢迎大家参与我的开源项目校园博客 https://github>github.com/stick-i/scblogs,这是一个基于SpringCloud + Vue2的微服务项目,后端主要由我负责,原来的前端开发者忙着考公去了(果然人生的尽头还是编制),所以现在非常期待各位朋友的加入🧐。

第一步:提出问题

我们在写代码之前,总得想想自己要写些什么东西,总不能上去就是一句 “Hello world” 吧!那我们要参与一个开源项目,是不是也得想想自己该为这个项目贡献一些什么功能?

这时候,我们需要先了解这个项目。就拿我的校园博客来说,我们可以先去项目官网进行使用体验,找到一些bug或者还没有完善地方,再或者找到一些可以新添加的功能,那么这些就是我们要提出的问题了。

  1. 于是乎,我们去给项目提一个issue,并根据社区的提问要求,将自己的想法用issue来告诉项目负责人

image-20220929201458468

  1. 写好标题和内容后,点击右下角Submit new issue,你就能看到自己创建的一个issue了,那么恭喜你,已经为这个社区贡献出了自己的一份力量,尽管这只是一个issue!

image-20221002200856309

  1. 提出问题,其实也可以是寻找问题。有些时候,我们可能无法轻易的找到项目的bug,也没有什么好的建议,这时候,我们也可以直接去查看社区里已经存在的issue。

    下面这些其实都是别人已经提出的问题,可以在里面找一个我们想做的并且还没有被分配的,一般建议新人贡献者找那种带有 good first issue 标签的问题,这类问题更适合提供给新同学作为加入开源项目的第一个贡献,因为它们相对较简单。

image-20220929202555781

  1. 那不管怎么样,我们现在至少创建或者找到了一个合适的issue。现在,我们去这条issue的评论区发送一句话,表示自己想认领并解决这个问题,就像这样:

在这里插入图片描述

  1. 接下来,我们只需要等待社区的管理员回复你。如果他同意了你的issue并且觉得你可以解决这个问题,他会回复你的评论,并且将这个问题分配给你,就像这样:

image-20221002201739203

别急

认真看完上面的内容,相信你已经掌握了如何向开源项目提出一个issue,记住这个issue,它将会是你参与开源贡献开始的标志。

学会的同学可以去练习啦!🧐🧐

这是 论如何参与一个开源项目 系列的第一篇文章,其他的文章可以通过下面的链接访问,练习完的同学可以去看下一篇啦🤣🤣:

【上】参与的意义和如何提issue:https://blog.csdn.net/little_stick_i/article/details/127162039
【中】Fork仓库和编写代码:https://blog.csdn.net/little_stick_i/article/details/127170890
【下】创建PR和代码审查:https://blog.csdn.net/little_stick_i/article/details/127176171


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

相关文章

FB_02.基于tcp通信实现类似su功能的调用

FB_02.基于tcp通信实现类su调用 本节主要内容: 在超级Root权限进程中创建socket server监听连接 基于socket通信实现一个简单的类似su程序的调用功能 本节达到的目的: 系统没有su程序但是也能执行和su差不多的功能效果1.实现原理 在adbd中建立一个socket server。App通过发送…

基于stm32微控制器的绘图机器人设计

目录 第一章 绪论 1 基于 stm32 微控制器的绘图机器人研究设计的目的 1 基于 stm32 微控制器的绘图机器人研究设计的设计功能 1 第二章 系统整体方案设计 2 第三章 硬件设计 4 硬件电路资源使用设计 4 1.1 STM32F103RBT6 片上资源 4 1.2 外围芯片资源 4 机械结构设计 5 通信…

EPICS记录参考--模拟输出记录(ao)

这个记录类型通常用于发送一个模拟输出值到一个输出设备,如果需要,把它从工程单位转成一个整数值。这个记录支持警报和驱动限制,变化率限制,输出值积分,从工程单位线性和断点表转换,以及图形和控制限制。 记…

C++ Reference: Standard C++ Library reference: C Library: cstdlib: system

C官网参考链接&#xff1a;https://cplusplus.com/reference/cstdlib/system/ 函数 <cstdlib> system int system (const char* command); 执行系统命令 调用命令处理器来执行command。 如果command是空指针&#xff0c;则该函数只检查命令处理器是否可用&#xff0c;而…

那些被渐渐遗忘的python知识点

文章目录前言1. 上下文管理器2. 类属性与实例属性3. __call__方法前言 正所谓&#xff1a;时运则存&#xff0c;不用则亡&#xff0c;这些有关python的知识点你还记得多少。 1. 上下文管理器 无论是书籍还是博客&#xff0c;提到with就和读写文件联系在一起&#xff0c;之所以…

四线法与电桥

目录&#xff1a; 一、基本电桥电路 二、开尔文四线检测 三、惠斯通与开尔文电桥 1、电阻桥定义解释 2、电阻桥相关计算 3、开尔文双电桥 4、电阻桥的应用 --------------------------------------------------------------------------------------------------------…

深入浅出 package.json

npm是前端开发人员广泛使用的包管理工具&#xff0c;项目中通过package.json来管理项目中所依赖的npm包的配置。package.json就是一个json文件&#xff0c;除了能够描述项目的包依赖外&#xff0c;允许我们使用“语义化版本规则”指明你项目依赖包的版本&#xff0c;让你的构建…

【1024】程序员福利

首先&#xff0c;祝所有 smartHWFW 的读者 1204 节日快乐&#xff01;&#xff01; 01 送板原则 关注 smartHWFW 公众号把板子留给需要的人 &#xff08;每人仅限一块&#xff09;顺丰到付微信联系我&#xff0c;说明申请的板子型号或编号&#xff0c;先到先得 02 相关板子型…