这里声明一下,仅仅是学习一下:他们是用哪些工具,来管理自己的项目的?
开源项目多如牛毛,值得分析的项目也很多很多。从哪里入手呢?幸运的是,在开源社区,有一个著名的网站,过去叫oloho,现在改名叫openhub。在他的网站首页,有这么四行字,以表明他们的数据库是多么的全面、丰富:
Indexing 669,008 open source projects Connecting 3,742,793 open source contributors Tracking 679,761 source control repositories Counting 31,158,335,454 lines of code
这么说来,事情就变得比较“简单”了,我需要把openhub的数据,都抓回来。
具体的数据抓取过程,简直不忍详述(我的内心,几乎是崩溃的)。总而言之,我只抓到了289,631个项目。openhub虽然号称自己索引了66万的开源项目,其实这仅仅是他的数据库里的最大ID号!当我顺着这个ID一个一个的去抓的时候,有很多ID,都已经被删除了。
在抓取到的项目数据中,有两个数值,特别值得参考: contributors (参与开发者的数量); users (该软件的用户数量)。相对而言,users的数据,可以认为是一个样本,即该开源项目的所有用户中,愿意并且知道该如何来openhub点击 I use this 的人。因此,即使是排名第一的Firefox,在openhub也只有13158个用户。考虑到Firefox的用户数,已经超过5亿(来源于维基百科英文版),因此,我们相信这个数据仅仅是一个4万分之一的采样结果。
随后,我观察了这28万多个项目的users数据与contributors数据,顿时惊讶的发现,绝大多数项目,都小的可怜,用户也少得可怜。
当我以“select count(*) from projects where contributors>30”查询时,只搜到了 1662个项目... 当我以“select count(*) from projects where users>30”查询时,只搜到了1260个项目... 当我合并以上两个条件查询时,只搜到了335个项目。 再从这335个项目中,排除掉最近一年已经不再有活动的项目,于是只剩下了331个了。
这是331个项目,使用配置库的情况(有些项目,同时使用多种配置库),有两个现象值得注意:
通过这个图,可以看出两个现象:
由于不同的开源项目,代码行数差异巨大,因此我们只能以log(col)对数结果,来做区间划分。可以看到一个非常明显的趋势,当然代码行数超过10万行以后,代码部署在Github上的项目,就开始明显下降,直到为0。
排名前五的工具中,Github:91个项目;Bugzilla:81个项目;JIRA:43个项目;Trac:20个项目;另外还有9个项目,完全是在maillist里“管理”issue的。
一共有39种不同的工具,另外还有6个项目,我们无法了解他究竟是用什么来管理的。
1990年之前创建的项目,其中有一个已经开始使用Github了。但是,这仅仅算是个案。更加明显的趋势是:越是新的项目,越是倾向于采用Github管理自己的issue。
相对而言,其他各种Issue Tracking工具的比例,都在下降。
随着用户数量的增加,我们猜想:issue的数量与复杂度,也会逐渐增加。可以看到这样的趋势:Github的使用率,也在不断下降。
总结:是否使用Github来管理项目的issue,越是新的项目越愿意用;越是大的项目越没法用。
主要还是工作量太大了。。。对这个分析有兴趣的同学,可以与我联系,咱们可以一块来干。
本文永久更新链接地址 : http://www.linuxidc.com/Linux/2015-05/117485.htm