拥抱开源指南

拥抱开源指南

近年来,开源正在变得越来越火,在很多开发者眼中,「开源」也是非常极客的体现。同时参与开源项目也能给职业发展带来巨大的好处。可一些小伙伴却因为不知道参与的方法和途径没能参与,这里就向大家介绍一下作为开发者,可以怎么拥抱开源软件,以及怎么成为大家认可的开源贡献者。

什么是开源软件

开源是源代码可以任意获取的计算机软件,任何人都能查看、修改和分发他们认为合适的代码,但这并不意味着可以使用源代码而没有任何著作权或发行权的约束,我们接触到的开源软件一般都有对应的开源许可证(Open Source License)对软件的使用、复制、修改和再发布等进行限制。许可证即授权条款,开源许可证就是说明这些限制的文件,常见的开源许可证主要有 Apache、MIT、BSD、GPL、LGPL、MPL、SSPL 等。

下面,我们通过一张表来简单了解一下常见宽松开源许可证之间的区别:

第二种寻找方式,由开源基金会维护的运行良好的项目,还可以在对应的开源基金会官 找到。

比如Linux基金会的项目地址:https://www.linuxfoundation.org/projects/

比如ASF的项目页:https://projects.apache.org/projects.html

常见的类型有:

  • Bug 提出一个功能实现的错误
  • Document Issue 提出一项文档改进的建议
  • Feature Request 请求增加或表示你将增加一个产品特性
  • Refactor 发起一项不影响功能的重构
  • Security Vulnerability 告一个安全问题,在问题修复以前,该问题不会公布。

提出一个清晰明了的 issue 往往会让 区的其他成员更愿意响应你的 召,相信我,这会是一个非常享受的过程~

成为项目的贡献者

在参与讨论的基础上,只要能在 GitHub 区中帮助验证一些发布的新功能或者提一些建议或者缺陷,或者修改源码,就能成为该项目的贡献者(Contributor)。

刚参与项目时,可以考虑编写文档,或完善一些模块的单元测试,或者进行一些简单编码工作。比如可以在 GitHub Issues 列表中寻找带有标记且暂未被认领的事情,这往往是 区维护者为了引导贡献者专门创建的issue,很适合作为第一个提交。完成第一个提交后,可以再去看看其他open的issue并解决。

目前开源项目一般采用 Git 来管理源代码,如果你从未使用过代码管理工具的话,可以现在 上寻找教程了解,比如:https://www.liaoxuefeng.com/wiki/896043488029600 。一般的提交流程是:先 fork 对应的项目,在 fork 项目提交代码后,向开源项目发起代码合并请求等待合并。

需要注意的是,任何代码提交后,都不会立刻合并,需要寻找 区维护者 Review 后才会进入主干。

编写好代码的注意事项

Code Review 常见术语

在提交代码与Code Review的过程中,有时会遇到下面这些缩写,了解后参与开源 区更轻松。

缩写 全称 使用场景
I’ll take it. 表示会尝试做这个任务
PR/MR/CR Pull/Merge/Change Request 如果要提交代码给开源项目,就会发起一个合并请求,在不同平台有不同的名字,但都是同一个东西
WIP Work In Progress 表示PR尚未完成,暂时还不需要review
PTAL Please Take A Look 请求项目维护人员进行 code review
TBD To Be Done 提示有一个事情需要完成
TL;DR Too Long; Didn’t Read 太长了,懒得看。也有时在文档中用作概览信息的标题
LGTM/SGTM Looks/Sounds Good To Me 表示review完并觉得可以合并了,即Approve的意思
CC to Carbon Copy to 抄送给

顺便再说几个 GitHub 中实用的小技巧:

  1. 当发现一个 issue 和其他 issue 重复时,可以设置在评论区留下 Duplicate of #1234 来标记与某个issue重复(更多信息)
    Duplicate issue syntax

结语

好啦,大体的情况应该介绍的差不多了,其实参与开源项目并没有想象中的难,成为一个开源项目的Commiter,给职场和技术实力带来的助力将不可估量。另外,如果你还是较为初级的开发者,迫切的想要知道具体的参与步骤,可以看看开头提到的这篇文章:https://mp.weixin.qq.com/s/b1mKPgOm1mnwsBbEBDRvKw 。

我们的 DevLake (https://github.com/apache/incubator-devlake) 和 DevStream (https://github.com/devstream-io/devstream) 也是优秀的开源项目,欢迎你的参与哦~


了解更多最新动态

官 :https://devlake.incubator.apache.org/

GitHub:https://github.com/apache/incubator-devlake/

Slack:通过 Slack 联系我们

文章知识点与官方知识档案匹配,可进一步学习相关知识Java技能树首页概览91563 人正在系统学习中

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2022年6月23日
下一篇 2022年6月23日

相关推荐