大家好,这里是程序员晚枫,正在all in AI编程实战,全网同名。今天继续来讲开源的内容。

上次给大家分享了一个中阶的操作:从零打造你的专属Python第三方库

文章发布后,又有几位朋友联系我,加入了开源项目的开发.

因为很多人是第一次参与开源项目,所以今天来讲一个初阶的操作:零基础,如何参与开源项目?

主要内容包含:开源合作的步骤、需要的技术知识、如何开始第1个任务、如何运营项目。

一、整体流程

以1000+star的开源项目点我查看微信二维码为例,给它贡献代码,共有以下几步:

  • 在开源平台有一个自己的账号,必须绑定自己的邮箱。
  • 私信给我,你在平台的账号名和邮箱。我的微信:点我查看微信二维码
  • 用git命令,下载代码到本地,这里存在2种情况:
    • 如果你已经是项目的成员(一般加入我的项目,我都会给你权限):那么直接用git clone 命令下载即可。
    • 如果你不是项目成员,请先催我完成上面的第2步。
  • 以develop分支为基础,创建一个新分支,命名规则:feature/xxx,xxx为自定义的分支名,比如:feature/add-ocr-api
  • 修改代码后,提交新分支及其代码到远程仓库
  • 在网页上,创建一个pull request,将你刚才提交的分支feature/add_ocr_api合并到develop分支。
  • 更新功能后,参与开源项目的运营。

下面逐一介绍一下每个步骤的注意点。

如果你不懂技术,也想参与开源项目,可以直接看本文第部分:项目运营。

二、选择开源平台

国内常用的开源平台有GitHub,Gitee,atomgit,GitLab

目前我们用atomgit作为开发平台,代码提交后自动同步到GitHub和Gitee。

所以我们所有的项目,在3个平台都能找到,都有人提交issues或者pr,但是代码只提交/合并atomgit平台的。

用atomgit的原因我也解释一下,主要有2个:

  • 首先是网络问题,这个不用多解释了。再加上我们项目的用户主要也是中文用户,所以选一个国内平台,减少很多沟通成本。
  • 其次是想参与国内的开源浪潮。国内开源越来越受重视,我们作为开源项目也需要一个平台来托举我们,

三、有关开源的技术知识

以下几个知识,参与项目之前大家可以学习一下,其中标⭐的请务必看完再参与:

四、怎么开始第一个任务?

注册完账号,给我账号+邮箱的时候,可以顺便说一下你的技术背景/感兴趣的技术方向/项目 + 你想从参与开源中得到什么。

如果我觉得手里的项目能满足你的目标,我会根据你的技术背景,给你一些项目任务,从易到难的顺序,一方面让你逐渐熟悉项目,一方面也让我通过难度来了解你的技术水平。

  • 任务会通过issue的方式提出,负责人会直接关联你的账号,所以你在后台就能看见。
  • 提交pr的时候,记得选择:关联issue并且合并后自动关闭issue。

如果我觉得我无法满足你的目标,我也会直接告诉你,毕竟开源合作本来就是基于兴趣和信任,沟通起来会坦诚直接。

在开发过程中,总会遇到各种各样的问题,所以有不懂的及时提问,也是很重要的一点。

这里我也提前说一下关于分支的问题,如果看不懂,请把上文git的知识学完了再来看:

  • 不要直接修改main/master分支,也不要直接改develop分支。
    • 正确的做法是:项目clone到本地后,以develop分支为基础,创建一个新分支,命名规则:feature/xxx,xxx为自定义的有意义的分支名,比如:feature/add_ocr_api
  • 建议每次开发之前,都执行一下git fetch命令,看develop分支的代码是否有更新,如有更新,合入自己的开发分支
  • 提交pr后,及时删除当前分支,保持清晰的分支状态

五、关于运营

一个开源项目的成功,除了优秀的开发,也需要优秀的运营,比如:

  • 用户管理:收集需求、确定开发方向、技术答疑
  • 项目推广:酒香也怕巷子深,怎么让更多的人知道项目,用上项目
  • 商业变现:怎么让项目能健康的活下去?如何分配利润给项目的参与者?

而这部分工作,是很多专注于技术的程序员是没有接触过的,如果你有兴趣,我也会慢慢带着你做。甚至如果你不会技术开发,但是想参与开源项目,只负责运营部分也是可以的。

目前我手里有30+开源项目,运营主要是我自己在做。

今年开始招募开源作者共同开发以后,也慢慢有一些朋友可以独立运营一个项目了,比如:@码匠er@YaaaKaaang


大家如果对开源感兴趣,欢迎加入交流群,一起开发学习。

相关阅读

程序员晚枫专注AI编程培训,小白看完他和图灵社区合作的教程《30讲 · AI编程训练营》就能上手做AI项目。

🎓 AI 编程实战课程

想系统学习 AI 编程?程序员晚枫的 AI 编程实战课 帮你从零上手!