过程改进 FreeBSD 的开发过程

laofo · 发布于 2012年04月02日 · 70 次阅读
4

FFreeBSD 是一个开源的软件开发组织,提供类似于unix的操作系统-FreeBSD。从1993年开始了最初的开发工作,93年11月FreeBSD1.0发布,到今天(2010)已经是FreeBSD9.0了,全球有大约400名活跃开发工程师和几千名爱好者。FreeBSD的特性是稳定和可靠。用户包括 Yahoo!(部分) ,Micosoft 的hotmail平台,NetAPP,Cisco (ironport),juniper等采用FreeBSD不同版本。

组织结构

分为3个层次,最核心的为9名资深成员的团队,负责产品的路线,决定每次产品发布需要的新功能等。

对代码仓库有写权限的大约300名,分为代码提交者,文档提交者,ports提交者。

下面是数千人的开好者。

开发过程管理

代码管理

代码存放在Subversion中,可以访问的仓库包括CVS,Perforce。Subversion中有4.6G代码(自1993年开始)。

有两个分支需要维护,current 分支(新特性,新功能),stable分支(产品发布,安全补丁)。

所有的代码、文档均可以访问。

开发流程

-每次新版本FreeBSD的开发周期需要大约4个月的时间。

-并行开发线有两条;一个是开发活跃的主干trunk,所有的新功能和特性都在trunk开发,另一个是代码稳定的分支branch,正式发布的产品从branch分支上发布。

-在预估产品发布时间前45天,发布工程就开始启动了。发布小组会给开发小组的邮件列表发出一封通知信:“代码冻结前,还有15天时间合并新变更”。在这15天里,执行了MFC的活动,MFC的意思是,从主干上合并测试后的代码到分支上。

-在预估产品发布时间前30天,产品分支进入代码冻结的第一个阶段“代码缓行”,这个阶段大约15天,只有如下类型提交被允许,而且所有提交必须经过发布小组的审批:

--修复缺陷;

--文档更新;

--任何与安全有关的修复;

--设备文件的微小变更,例如增减新的设备编号;

--评估后,认为必要的更新;

--“代码缓行”之后是产品发行了“发布候选”RC版本,这个版本需要广泛的测试,这时分支进入“代码冻结”阶段,这个阶段大约15天。除非严重的代码缺陷和安全修复,任何变更都不允许提交到分支。在正式发布之前,发布团队需要和安全团队、文档团队、ports团队保持联系并一直持续到正式版本发布。

-在经过多个发布候选RC版本后,进入正式发布阶段。 对于一个变更,提交者完成编码后,在社区内展示、评审,把这个变更集成到自己的系统中验证。然后向主干提交,进行一个开发发布。

开发发布是一个持续集成的过程,每天均进行一次完全的检出、编译、制作package的过程。

经过足够测试后,这个变更从主干合并到稳定分之上,这时测试发生的修改,都需要在主干和分支同时提交。

最后从稳定分支发布一个生产版本发布。

采用ports的方式管理安装包的依赖、脚本执行。并通过生成package 完成了发布、部署工作。

发布与部署

FreeBSD是用自己的ports机制来实现从源代码、编译、二进制安装包、配置、删除、卸载的功能。通过ports解决了安装包之间的依赖关系。第三方的安装包的管理。目前维护了2万多个应用程序安装包。可以非常方便地完成安装、升级、配置。

原文:http://www.freebsd.org/doc/en_US.ISO8859-1/books/dev-model/index.html

暂无回复。
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册