怎样参与到全世界优秀的开源项目中?

转载 2018年04月17日 00:00:00

640?wxfrom=5&wx_lazy=1

来源 | Tomcat那些事儿 | 作者 | 侯树成

在如今的软件设计,架构及开发中,开源扮演着越来越重要的角色。

从SSM、ROR 到OpenJDK,Kafka, Tenserflow,甚至就连火遍全球,日行千里的比特币 Bitcoin 也是开源产品。这种开源产品促进了更多的币的出现与链的产生,当然还有习惯到忽视他是开源产品的 Linux。

  • 人们平时访问的各种网站的时候会无形中使用到开源,背后可能在使用Apache、Nginx这类的 Web Server,如果升级到https,那使用的SSL可能也是基于开源的产品;

  •  每一次使用安卓手机的时候,我们都在使用开源产品;

  • 你毫不犹豫的,顺手使用了SSM、ROR 的时候;

  • 为了整理多年的照片,为了按人物归类,使用PaddlePaddle、Tensorflow的时候;

  • 你买了台电脑,上面预装了 Linux;

  • 你在某些App中重要场景下通过眨眼认证「你就是你」的时候... 

可以不夸张的说,开源产品一直影响着人们的「生产与生活」。

十年前,随着Github的发布,使用Git 进行版本管理越来越流行。 同时我们也可以更方便的通过Github参与到开源项目中。

使用开源,同时可以将自己的代码,想法回馈给开源社区...

所以十年间,无数优秀的开源项目通过Github进行项目托管,像 Ruby on Rails (ROR), 像Spring ,许多项目都由SVN迁移到Git。这个过程中,像SourceForge, Google Code了越来越没落了。

当然,交给Github托管 ,这样不仅使用到 Git 的特性,同时对于即使身处不同城市的开发者都可以参与其中。同时方便用户的参与,提交Issue,发起 Pull Request。

这样「众人拾柴火焰高」,众多人贡献的项目,发展的更多,也发展的更好。而且,用户在使用开源产品时,也大都会考虑该产品最近一次

更新是什么时候。对于几年不更新的产品,用起来是会有不小的些顾虑的。

一、什么是开源

说了半天开源产品如何重要,开源怎样影响我们的生活。开源到底是什么?

对于开源,最基础最直接的感受,一定是开放源码,就是可以在任何时候,看到详细的「源代码」,毕竟「源码面前,了无秘密」。

有了源码,就可以了解其内部机制,使用过程中出现问题时,可以随时上手自行分析解决,不必等待官方缓慢的动作。

当然,这只是第一层意义。开源,更重要的意义在于,围绕产品的社区发展,可以将众人的力量回馈给开源产品。众人的参与,提出意见、想法与贡献等这个良性的循环机制。

众多的人都在使用产品,过程中遇到的问题,解决问题的代码,可以再提交回产品中。一些用户在真实的项目使用中,又由于不同的场景,可以提供不同的需求,甚至可以发现在不同环境中出现的各种问题。所以,是开源使得更多的人可以参与到产品开发中,贡献力量。

这种「人人为我,我为人人」的劲头,更大的促进了社区的发展。

比如影响世界的 Linux,也是在Linus 开源后吸引到全世界的高手参与其中。

二、怎样参与开源项目

看了前面的内容,你可能会说对于这些开源的牛X项目,我真是「老虎吃天,不知从哪下口」,不知道从哪参与,我也没法贡献。

其实可以这样考虑:

我们平时开发中要高频使用的框架,组件的功能,如果发现具体的 Bug,就可以 fix 之后提交给官方。说不定你的改动就被合并到代码中,影响世界上千万开发者了。

除了代码,项目文档也是一个很重要的部分,我们接触一个新的产品时,都是从其文档开始「QuickStart」跟进从生手到进阶。

所以,看到文档中的错误内容,或者有些内容官方在每次产品发布后,文档的变更遗漏了,这些都是我们可以参与其中的地方。

前面我们说开源项目对于世界的影响。而且随着 Github的流行,参与到一个开源项目中也变的越来越容易。具体怎么参与呢?

以我前面文章里提到的 Tomcat 管理与监控工具 psi-probe(一款功能强大的Tomcat 管理监控工具)为例。

第一步:fork

首先在  Github上找到要参与的项目,点击右上方的 「Fork」。

640

此时,你会看到像我们常使用的扫描仪一样,当前项目的「高清扫描版」不久就会出现在你的repo中。

640

不久, Fork 成功后,这个项目会显示在你个人的 Repository 中。同时显示从哪Fork出来的。可以方便的进行源的跟踪。

640

Fork 之后,根据使用的情况,可以对其中你认为需要改进的地方提交代码,参与项目。

第二步:修改代码提交

记住,现在的这个项目,是「」的项目。位于你的Repo中。所有的 git 操作,需要先以此这基准,git clone 到本地,进行操作,然后再commit 到「你」的仓库中。

对于代码的修改,可能需要熟悉具体的内部工作原理。也可以像我们前面介绍,对于其文档进行参与贡献。

所有的修改,变更都已经提交到 git ,同时 push 到远程分支时,你的这些修改的代码在 Github上你的仓库里也就都能看到了。

第三步: 创建 Pull request

此时,在你仓库中点击「Pull Request」,会显示对于「你这个项目」,别人发起的 Pull Request。我们现在是想向「源仓库」提交代码,所以再点击右上方绿色的「New pull request」按钮。

640

此时,可以选择要将「你的仓库」哪个分支,提交到「源仓库」的哪个分支上。此时会显示变更的文件内容,提交人等。点击绿色的「Create pull request」按钮,输入信息,完成创建 PR。

640

到此为止,「源仓库」的 Pull request 列表中,会显示我们刚刚发起的PR,状态是 Open,刚开始会进行一次「代码检查」与「持续集成」。

640

等待上述「代码检查」与「持续集成」完成,没有问题时,图标会变成绿色。此时,「源仓库」的维护人,Commiter,就可以将你提交的内容合并到源分支中。

640

但是一般来说,需要我们描述本次提交变更的内容,主要实现什么功能,可以同时再提交一些截图之类的。

第四步(Optional): 增加描述等更详细的信息

640

然后我们根据要求,再在PR中增加详细描述,截图等内容,再次等待 review。

640

640

等待 Commiter review 没问题之后,会将本次内容,合并到源仓库的指定分支中,此时PR中会显示xxx merge commit 到什么分支,同时PR的状态是「Closed」。此时,本次参与已经完成。

640

我们也会出现在该仓库的 「contributors」列表中。是不是很Cool?

总结下,参与一个开源项目的过程:

  1. fork 一个项目

  2. 提交修改与变更

  3. 向源库发起 Pull Request

  4. 等待 Code Review,如果需要,再补充详细的内容

  5. 等待代码合并到源库

  6. 完成提交

找到自己感兴趣,同时有能力参与的项目,开启你的开源旅程吧。

更多Tomcat的文章请扫码关注公众号:

640

点击图片查看更多推荐内容

↓↓↓

640

有经验的程序员应该如何提升自己!

640?

【面试题】2018年最全Java面试通关秘籍第四套!

640?

大话程序猿眼里的高并发!

640?

那些鲜为人知的序列化和反序列化底层实现原理!

640?

如何参与到开源项目中去

编者:开源项目是程序员学习的一个途径,面对那些发展多年的代码,我们到底该如何才能参与其中?     如果你想参与到开源项目中去,却又不知道从何入手,这里提供一些参考方法或许能给你提供一些帮助,哪怕你对...
  • u014800380
  • u014800380
  • 2016-09-23 10:19:02
  • 1274

【Git学习笔记】使用GitHub参与开源项目

如何参与一个开源项目呢?比如人气极高的bootstrap项目,这是一个非常强大的CSS框架,你可以访问它的项目主页https://github.com/twbs/bootstrap,点“Fork”就在...
  • liuchunming033
  • liuchunming033
  • 2014-11-05 17:39:32
  • 750

如何参与一个开源项目

最近很多人在问如何参与一个开源项目。其实个人觉得这是一个非常傻的问题,不过还是回答一下,期望这帮人记得用google搜到这个角落,免去论坛上月经一样的天天看到这种傻问题。 为什么说傻?因为这个问题和...
  • dudefu011
  • dudefu011
  • 2015-07-23 13:42:38
  • 1189

如何参与一个 GitHub 开源项目?

最近一年开源项目特别的热,很多技术大会或论坛都以开源项目作为主题进行探讨,可见这是一种趋势。而Github作为开源项目的著名托管地,可谓无人不知,越来越多的个人和公司纷纷加入到Github的大家族里来...
  • lanxuezaipiao
  • lanxuezaipiao
  • 2014-04-12 20:46:13
  • 11394

如何在Github上发现优秀的开源项目?

如何在Github上发现优秀的开源项目?点击github的 Explore 菜单到“发现”页面 这个 Trending 页面就是最近趋势的意思,就是说这个页面你可以看到最近一些热门的开源项目,这个...
  • qq_37244202
  • qq_37244202
  • 2017-09-02 15:27:05
  • 165

如何参与一个Apache开源项目

本文介绍如何参与Apache项目,从最初的user到contributer做起,目标成为commiter 已参与的Apache Zeppelin为例,说明步骤: Apache下面的每一个项目都有自...
  • WindyQCF
  • WindyQCF
  • 2017-04-06 19:42:22
  • 751

如何参与python的开源项目(上)

最近给apache 下的libcloud 项目提交了几个bug和patch,然后看到了一遍不错的指引,详细包括了编码规范及提交工作流程。 见链接:https://libcloud.readthedo...
  • hexiaodouaipiqiu
  • hexiaodouaipiqiu
  • 2016-11-21 11:36:42
  • 365

如何参与到GitHub开源项目中

最近一年开源项目特别的热,很多技术大会或论坛都以开源项目作为主题进行探讨,可见这是一种趋势。而Github作为开源项目的著名托管地,可谓无人不知,越来越多的个人和公司纷纷加入到Github的大家族里来...
  • limm33
  • limm33
  • 2016-10-13 08:23:33
  • 247

如何在GitHub上协作开发开源项目?

也许很多朋友还不太了解,GitHub可以作为一种非常高效的项目开发协作机制。在任何拥有互联网连接的区域,开发人员都可以随时与全世界自由共享代码成果(更不必提强大的工具支持、提交历史源检查以及便捷的查看...
  • u011765592
  • u011765592
  • 2013-09-02 11:52:01
  • 1167

如何在GitHub上发现优秀的开源项目

如果作为一名程序员,你连GitHub都没有听过或者用过的话,那真是太遗憾了。GitHub的使用可是程序员在职业生涯中的一项必备技能啊,最近在网上搜了一下,发现有好多童鞋都在提问GitHub的使用教程,...
  • shenjie12345678
  • shenjie12345678
  • 2016-10-30 16:07:16
  • 16301
收藏助手
不良信息举报
您举报文章:怎样参与到全世界优秀的开源项目中?
举报原因:
原因补充:

(最多只允许输入30个字)