欢迎来到天天文库
浏览记录
ID:9034310
大小:29.50 KB
页数:0页
时间:2018-04-15
《开源社区的管理模式及开源软件管理》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、开源社区到底是怎样形成的?开源项目是怎么管理的? 在这篇文章中,我想分享一下我在参与AS7开发过程中用到的管理工具及协作流程,并谈一些对开源社区的理解。 AS7的开发流程主要涉及这样一些核心工具: github–从AS7开始,几乎JBoss的所有组件的代码库都转移到github上面。 Jenkins–Jenkins原名Hudson,是一个CI(ContinuousIntegration)工具。AS7使用它来进行代码的自动化持续测试。 JIRA–Jira用于根踪项目Bug,记录开发任务等。 听起来和普遍的项目管理流程没什么太大区别:几乎所有的项目都会有一个代
2、码仓库,有一个Bug跟踪系统。(当然,可能有的项目并没有集成测试环境,也不写单元测试,质控基本靠人工-这是属于管理水平较低的项目中的情况。) 那么,当一个社区项目成规模,成熟化以后,却可以用看起来和别人没什么不一样的管理工具将项目管理得很好,这里面有什么秘密呢?我觉得差距主要体现在流程细节,工具的使用水平,测试的自动化程度这三个部分。 就JBoss的社区来讲,我想分享一些具体经验。首先我们要知道JBoss社区的Bug管理系统位于: https://issues.jboss.org/secure/Dashboard.jspa 如果你有社区账号,可以登录进去,就可
3、以看到这里面管着多少项目。以下是部分项目的截图: 可以看到整个JBoss社区的项目规模是非常庞大的,这里面的很多项目既做为组件形成JBoss核心产品JBossAS7,又可以独立使用并与其它社区项目相结合,比如Hibernate,就是JBoss社区的产品之一。 这些项目的社区里面的开发人员,大部分没有交集,各自在自己的项目中进行开发。也有少数的成员同时给好几个项目贡献代码,这样的开发人员一般是RedHat员工(RedHat也会看社区里面的代码的贡献量;贡献比较大的非RedHat员工,往往会被高薪挖来成为全职)。 可能对开源社区的运作不太了解的人,会认为社区是“平的
4、”,大家人人可以自由提交代码,有大量的人贡献代码,然后一个好的项目就诞生、成长起来了。这可能是对社区模式的最大误读了。 实际情况恰恰相反,社区的人员组成结构更像是金字塔。真正组成社区的核心开发人员,一般也就那么3、5个人,这些人往往拥有非常强的编码能力,非常丰富的经验,他们基本上可以在项目中贡献80%~90%的代码,并且项目设计由这些人完成,他们可能同时是标准制定者和代码编写者。 以JBoss项目RESTEasy为例: http://www.jboss.org/resteasy 这个项目的社区领导BillBurke身兼多重身份:首先他是RedHat员工;然后他
5、是JCP标委会成员,参与包括EJB,JAX-RS等多个J2EE标准的制定;同时,JAX-RS标准的框架实现:RESTEasy的核心部分几乎全部由他一人撰写,同时他参与多个社区的编码工作。而BillBurke本人也是JBoss社区的创始人之一,在商业上非常成功,做为一名技术人,他的富有程度并不会输给RedHat核心管理层。 再来看RESTEasy的团队核心成员: https://community.jboss.org/wiki/ResteasyContributors 几乎都是RedHat员工,享受公司很好的待遇,从事社区专门的工作。除了JBoss这种由RedHa
6、t直接支持的“商业味”比较浓的社区之外,我们再看下一些由开源基金会支持的“纯正血统”的开源社区。比如Apache社区的一些项目,拿HTTPD为例: http://httpd.apache.org/ 左边有GetInvolved链接,分三个部分:MailingLists,BugReports,DeveloperInfo。 可以看到,代码开发并不是参与社区开发的全部内容。首先我们可以订阅它的邮件列表,对社区中日常工作有一个大概了解,然后可以发现问题后提交Bug给社区去解决,最后是DeveloperInfo,这里面可以找到代码库: http://svn.apache
7、.org/viewvc/httpd/httpd/trunk/ 仔细看下贡献者,发现人数并不太多。除了Apache基金会自己的核心成员,还有不少来自RedHat,IBM等各家参与开发的公司的员工贡献。在RedHat的SecurityTeam中,我的不少同事同时也是为HTTPD贡献代码的开发人员。 因此,我们要明确这样一个概念,社区的平等,并不意味着社区是"平"的,我参与过的所有社区几乎都是金字塔型:核心团队规模保持小而精,贡献绝大部分代码,他们往往就职于商业公司,或者在研究机构或开源组织中从事专业工作-凭着技术狂热和大量业余时间来参与社区开发,并形
此文档下载收益归作者所有