zoukankan      html  css  js  c++  java
  • 第一次向开源项目贡献代码的历程

    原文发表在我的博客主页,转载请注明出处。

    前言

    github大神请绕道而行~~~
    这篇文章并没有什么高深的技术,只是自己简单的一个历程,以及对github的体验,相信博客园有很多大牛或者即将成为大牛的人,呼吁大家多多开源,共同进步,开始正文。
    从我的使用角度来看,github主要有两个功能,一个是代码管理,另一个则是协同开发,之前一直用的是前一个功能,将代码写完之后,及时保存,及时提交,我一直用的是windows桌面版,觉得github真心好用、方便而且操作不难,不过前几天github也宕机过。。。
    在去年下半年了做了一些SDN开源控制器ryu的工作,自己修改了ryu拓扑发现的逻辑,书写了源码,关于这个修改的详细介绍可以参见我的博客,这篇文章也得到了中国最大的sdn网络平台,sdnlab的认可和收录。向开源社区贡献的第一个代码便由此展开。

    过程

    贡献代码的起因

    之前做了一些关于ryu的工作,书写了一些应用,在某次需要建立交大网络拓扑的时候,发现了ryu的拓扑发现能力有较大的局限性(最后经过比较,发现虚拟交换机CPqD的性能比OpenvSwitch也有一定差距),所以修改了ryu拓扑发现原理,之后放在了自己的github中,发表了一些博客,但是阅读和代码使用人数十分有限。
    前几天SDN方面的一个牛人,在github上看到了我的工作,提了问题,并鼓励我将这部分代码贡献给ryu,所以激发了我第一次向开源工程贡献代码的想法。

    贡献代码的过程

    整个过程可以按照:书写代码->提交merge请求->编译检错->通过->。。。,因为目前只进行到了通过这一步,后面的待续,当然这整个过程都可以通过命令行来实现,这里主要说的是客户端。
    在1月30号做完了手头的论文相关的工作之后,修改和完善了之前的代码,便开始提交,简述提交的过程:

    • 前文提过,我用的是github Windows上的客户端,如下图,之前已经fork过了ryu项目,并且clone到了本地,所以直接在本地修改代码
    • 修改之后,github客户端的changes会有提示,然后commit,同步到远程
    • 之后在guthub网页,自己的branch下,点击New pull request,进行合并,点击view pull request查看详细过程

    • 之后就会发现持续几分钟的编译过程,主要包括python代码正确性检测,以及最严格的PE8标准,由于之前的代码实在linux和Windows下都有编译的,所以格式有很多问题,包括空格tab键混用,空行白有空格,注释的#后面没有空格,以及类与类之间的空行数这些问题,来回折腾了好几遍,终于得到了如下图所示的编译通过。
    • 在检查通过之后,在发博客前不久看了下github网站上自己commit的状态,发现了一个问题,如下图,即“This branch has conflicts that must be resolved”。

      为解决这个问题找了些资料,最终发现是因为ryu的upstream(也就是ryu的最初创建者)commit了一些代码(不论是别人的pull requeest,还是merge等),证据如下图,可以看出osrg,也就是ryu的最初创建维护者,进行了新的merge,而且和自己修改的文件产生了冲突。

      解决办法:git fetch或者git clone获取最新版本,然后在客户端直接同步之后就会发现,已经自动进行merger的编译了,以下是最终结果:

    等待审核

    目前编译通过,等待进一步的进展

    总结

    开源让开发变得简单,开源让我们不再重复造轮子,开源大法好

  • 相关阅读:
    16. 3Sum Closest
    17. Letter Combinations of a Phone Number
    20. Valid Parentheses
    77. Combinations
    80. Remove Duplicates from Sorted Array II
    82. Remove Duplicates from Sorted List II
    88. Merge Sorted Array
    257. Binary Tree Paths
    225. Implement Stack using Queues
    113. Path Sum II
  • 原文地址:https://www.cnblogs.com/cotyb/p/5173434.html
Copyright © 2011-2022 走看看