Apache Harmony 項目是 IBM 中國開發中心上海,近年來參加的一個開源項目。在這個項目中我們使用了開源軟件開發中普遍使用的缺陷跟蹤系統 —— Bugzilla。
Bugzilla 是一個開源的缺陷跟蹤系統(Bug-Tracking System),它可以管理軟件開發中缺陷的提交(new),修復(resolve),關閉(close)等整個生命周期。針對項目的特性,我們將 Bugzilla 做為整個項目開發過程中的管理工具。通過這種獨特的使用方式,積累了一些經驗,希望可以和廣大開發人員一起分享。
Apache Harmony 開源項目的開發流程
Apache Harmony 的提案在 2005 年 5 月被 Apache 軟件基金會(ASF)接受,并且按照 ASF 慣例成為一個孵化(incubator)項目。作為一個開源項目,所有參與的開發者需要遵循一個不同于一般產品開發的開發流程。在 Harmony 項目的主頁上有一個鏈接 Get Involved,點開這個鏈接,您可以看到參與該項目的一些基本規則。
項目由廣大的開發者提供的很多不同的捐獻(contribution)推動,捐獻包括代碼,文檔,反饋意見。該項目的一個主要特征是,希望所有的開發均發生在社區(透明性)。Harmony 項目提供了以下的基礎設施保證了項目的透明性(圖1):
項目開發中產生的任何正式的想法和討論均發表到 harmony 郵件組上。
任何非正式的討論發表到 freenode.net 網絡上的 #harmony IRC channel 頻道。
所有的項目源碼由一個公共的 svn 服務器控制。該服務器進行了嚴格的權限控制,以接受代碼的捐贈。
新功能的提交,包括項目開發中產生的缺陷(bug)均會被提交到 JIRA 系統上,并且隨后提交補丁。后由具有權限的開發者將這些補丁提交到 svn 服務器上。
其他的一些相關的文檔和討論發表在 wiki 系統上。
圖1:Harmony 項目透明的開發流程
項目管理(圖一)" width="570" height="368" />
可以看到,在這個開發流程中,任何關于項目的想法或是討論均發生在項目的郵件組上。項目中所有代碼包括文檔等資產均通過提交補丁的形式,通過 JIRA 系統提交。然后由 committer 將 JIRA 系統中的補丁安裝到 svn 代碼庫中。
在我們的開發團隊中,大部分人扮演的是 Contributor 的角色,負責的主要工作是:
在郵件組上討論需要開發的內容,獲取郵件組上其他開發人員的意見,形成一個設計決定。
根據郵件組上形成的設計決定,開發并提交補丁。
補丁是開發小組的主要產品,而 bugzilla 系統正是面向補丁設計的系統。為了提高代碼的質量,結合 bugzilla 系統提供的功能,開發小組在內部制定了一套自己的開發流程(圖2)。
開發小組內部的開發流程
圖 2 開發小組內部的開發流程