有些開發單位,並不想用需要付費的 Issue Tracking 工具,會問問我的意見,哪一套工具比較好用? 我是覺得用哪一套,都 OK 啦! 不過,我還是有用心地協助一些單位 Survey 了一下 Open Source 的 Solution。從 Google 爬文後,比較了幾套,包括 BugZilla, trac, Track+, JIRA(付費), RT(Request Tracker),都不錯用。不過,後來讓我比較感興趣的是這一套: 螳螂(Mantis)

螳螂(Mantis)的首頁畫面

使用這一套工具的原因是感覺它的可塑性與客製化程度挺高的,而且該專案持續開發與維護的積極度還蠻高的,才就昨天(4/4),又剛釋出了 1.07 的穩定版本。重要的是,它可以整合 dokuwiksubversion 。這挺重要的,尤其是 wiki 功能,使得 Issue Tracking 工具又同時可兼任 Portal,具有文件分享與基本留言討論的功能,讓溝通的機制更加地順暢。 蠻適合於中小專案的團隊,中的規模多大呢? 4,50 人以內吧,我的直覺是使用這套工具是綽綽有餘,沒有什麼問題的。不過,先說明一下,這只是個人的喜好罷了,我可無意陷入工具比較之爭,對於工具的使用,個人只有一個原則,好用就好,還有,真的有在用,這才是重要的。

我為什麼會欣賞這一隻螳螂? 官方網站列舉了一大堆的 Mantis Feature List 。幾個比較有意思的功能:

  • 容易安裝(這可重要)。
  • 多國語言支援,當然包括繁體中文介面。
  • 全文檢索與報表功能。
  • 版本控管(CVS and Subversiion) 與 wiki(dokuwiki) 的整合。
  • 權限驗證的支援(Defatlt, HTTP, LDAP, Active Directory service),不過,這塊可能要有相當的客製化技術能力才能整合得起來。
  • 提供 WebService(SOAP) 的溝通介面。
    這可真不錯,網站上還提供了 Eclipse, .Notifier, Ant Task 等 plug-in,當然,你也可以自行寫 .NET or Java 的 plug-in 外掛,彈性很大。

螳螂是一支利用 PHP 寫成的應用程式,基本上,要安裝 PHP 的應用程式,就是準備好三個基礎建設(Infrastructure)的應用伺服程式就對了。哪三個?MySQL, Apache2, PHP。PHP 與 MySQL,我都是採用最新 5.X 版,而 Apache,因為 Subversion 只支援 2.0.X 緣故,注意就不要安裝 2.2.X;至於作業系統,在 Linux or Windows 的平台上,安裝都很順暢,沒有什麼問題的。

安裝上是蠻簡單的,一下子就可以裝好了,稍微注意一下,我安裝的是 1.1.0a2 版本,安裝完後,雖然是支援 utf-8,但是檢視 MySQL 的資料庫,連線校對(collation)卻是被設成 Latin1,安裝完後中文寫入與顯示是沒有問題,但以我先前的經驗,利用 phpmyadmin 備份資料庫系統時,常會出現中文亂碼。所以最好一開始就改成 utf8_general_ci,那就完全沒有問題了! 如何改? 兩種方法,一種是先在資料庫系統建立好 Mantis 的資料庫,設定 utf-8 相關的參數,然後執行 Mantis 的 install script 即可;另一種是等完全安裝好後,備份 Mantis 的 SQL DDL 敘述,然後砍掉資料庫、重建、設定好 utf-8 相關參數。

再來就是安裝及設定與 dokuwiki 的整合。設定的目的只有一個,就是可以透過 Mantis 登入後達成 Single Sign-On,若你覺得 wiki 不需要權限控管,或者 wiki 另有帳號的獨立管理,那也沒有關係,不需要特別強調整合的。整合的步驟好像有些繁瑣,其實也還好,參考這一篇: Integrating DokuWiki with Mantis ,老老實實照這一篇的 how-to 設定就可以完成了。

設定好後,登入 Mantis 的主頁,然後透過 [wiki] 的鍊結,就可以連到 wiki for Mantis 的首頁。DokuWiki 真是小巧玲瓏,語法很容易上手,我是把它當成參考文件的儲存分享與 Issue Tracking 的 Portal,好用的不得了。

DokuWiki 的首頁畫面

我這裡目前還沒有設定與 Subversion 的整合,不過那也不是難事,爾後讓團隊成員可以在螳螂上看到 Subversion 所控管的文件與程式碼,有問題就紀錄下來、有想法或看到不錯的參考文件就寫到 wiki 上,不要把工具當作是一種負擔,也不用特意地去學習它。就是,只要知道,能夠促進團隊之間的溝通與分享,那就是好東西啦。

※ 延伸參考:
 o Mantis 的官方示範操作網站
 o 聊一下「版本控管」與 「Issue Tracking 」的專案開發機制