什麼是Bugzilla?
Bugzilla是一個臭蟲的資料庫。它讓使用者報告軟體的臭蟲而且把它們轉給合适的開發者。開發者能使用bugzilla保持一
個要做的事情的優先表,還有時間表和跟蹤相關性。
不是所有的"bugs"都是臭蟲。一些資料庫中的内容是作為增強的請求(RFE)。一個RFE是一個嚴重級别字段被設為
"enhancement"的"臭蟲".人們常說"bug",實際上意思是Bugzilla中的記錄,是以RFEs經常被稱作bug。根據客戶的加強
的請求來安排你的工作,Bugzilla會幫助你跟蹤它們而且允許其它人看到你會作些什麼.如果其它人看到了你的計劃,他
們就會避免重複你的工作而且可能幫助你解決或回報給你。
一個臭蟲的解剖
臭蟲和RFEs由許多字段組成。下面有一些介紹。
Component
Mozilla應用由許多不同的部分組成如網絡庫函數,java腳本和版面設計引擎。
Status Whiteboard
用來寫簡短的bug标注
Keyword
用來存儲一些關鍵字。
Target Milestone
由負責這個bug的人來設定
Dependency
如果一個bug在另一個bug修複之後才能被修複,就是相關性。
Attachment
增加一個附件上去會非常有用。測試事件、螢幕顯示和log記錄等可以有助于查明bug以及幫助開發者重新産生它。如果你
修複了bug,要附帶bug的更新檔程式上去。由于它讓他人很容易的找到和測試,是以這是較好的方法來跟蹤更新檔。
一個臭蟲的存活周期
對頭一次被舉報bug作些什麼由是誰報告的決定。新的Bugzilla帳戶由預設建立而并沒被證明-這就是指QA部門需要在把
它轉變成一個"新"bug之前找到并證明它的存在。如果你已經使用Bugzilla一段時間,相信你知道如何建立一個"新
"bug。當一個bug變成"新",開發者可能會研究這個bug,或者接受或者把它轉給别人。
如果這個BUG一周内一直沒被處理過。Bugzilla就會一直用email騷擾它的屬主,直到采取行動。無論何時一個bug被重新
指定或内容變化,它的狀态被設定回"new"。"new"狀态表示這個bug被重新加到一個特殊的開發者的工作中,并不是這個
bug被重新報告了。
那些有權限的人可以修改一個bug的所有的記錄(預設,你隻能修改一些)。每當你修改了一個bug,你最好加一些評論來解
釋你正在做些什麼和你為什麼做。每當你作了些事,如修改了内容、重新配置設定了bug、建立附件、增加了相關性和對某些
人作了備份,應作個标注。每當一些人修改了bug報告或加了一個評論,他們将會被加到CC清單中,bug報告中的改變會顯
示在要發給屬主、寫報告者和CC清單中的人的電子郵件中。
當一個bug被修複它會被标記上RESOLVED并且會有以下的決定。
FIXED
這個bug的修補已經被寫到資料庫中而且被測試過的人标記成FIXED
INVALID
描述的的問題不是一個bug,或不是Mozilla的bug.
WONTFIX
描述的的問題将永遠不會被修複。
LATER
描述的的問題将不會在産品的這個版本中解決
REMIND
描述的的問題可能不會在産品的這個版本中解決,但是也許也會。
DUPLICATE
描述的的問題是一個存在的bug的複件。标記bug為複件需要複件bug的bug号碼而且将會加一個評論和bug号碼到bug複件
的描述字段中去。
WORKSFORME
所有要重新産生這個bug的企圖是無效的。如果有更多的資訊出現,請重新配置設定這個bug,而現在隻把它歸檔。
MOVED
這個bug是對于一個特殊的以Mozilla為基礎的版本,而不影響mozilla.org的代碼。這個bug被轉移到影響Mozilla起源的
釋出者的資料庫中去。
QA查找解決了問題的bugs并且確定已經采取了正确的手段。如果他們同意,這個bug被标記成VERIFIED.在産品出來之前
bugs保持這個狀态,之後被标記成CLOSED。Bugs可以又回來而變成REOPENED。
當改變其他人的bugs時要注意。通常最好是把你打算改變的做個标記,作為一個注釋讓bug的屬主看到這個而自己去修
改。例如,如果你認為一個bug是另一個的重複,在Additional Comments部分作個标注。
如果你對一些人的bugs作了大量有用的注釋,他們可能相信你的判斷力進而要你去自己直接修改它們,但是除非他們願
意,你最好小心而且隻作注釋。
Bugzilla是開放源代碼的軟體。它的源代碼遵循Mozilla Public License.
如果你的機器已經有了MySQL和MySQL-related perl packages,那麼安裝起來是非常直接的.如果還沒有安裝這些基本的
軟體,那麼你需要做的第一件事情就是安裝它們.後面的事情就是建立一個web伺服器來運作cgi腳本.
如果想要bugzilla正确運作,你需要安裝以下軟體:
1.MySQL伺服器和用戶端軟體.
2.Perl(5.004或更高版本).
3.DBI perl 子產品.
4.Data::Dumper perl 子產品.
5.MySQL related perl module collection.
6.TimeDate perl module collection.
7.GD perl 子產品(1.18或更高版本)
8.Chart::Base perl 子產品(0.99或更高版本).
9.你選擇的web伺服器軟體
1.1下載下傳和建立MySQL資料庫.
大部分的linux版本預設都安裝有MySQL資料庫,這裡就不多講了.但是如果你需要mysqld接收大64K長的包,在啟動mysqld
時候加上"-O max_allowed_packet=1M".
1.2Perl(5.004或更高版本)
一樣,不多講了.
1.3DBI perl 子產品
DBI子產品是由其它資料庫相關Perl子產品使用的一般性Perl子產品.下載下傳了這個子產品以後.
1.解包到一個目錄中.
2.輸入以下指令:
perl Makefile.PL
make
make test
make install
對于絕大多數的perl子產品安裝都是這樣,如果沒有錯誤,那麼再往下.
1.4Data::Dumper perl 子產品
這個子產品為Perl提供資料結構一緻性.下載下傳後安裝過程同上.
1.5MySQL related perl module collection
安裝同上,注意隻選MySQL,不選mSQL.
1.6TimeDate perl module collection
安裝同上.
1.7GD perl 子產品(1.18或更高版本)
下載下傳GD子產品的同時别忘了下載下傳gd-1.8.3,解包後把GD包中的path_gd.pl拷備到gd-1.8.3目錄中,并執行perl
path_gd.pl,然後先在gd-1.8.3中編譯
#./configure --enable-jpeg --enable-freetype --enable-xpm
# make
# make install
然後再到GD的目錄中,象以上編譯Perl子產品一樣的過程.
1.8Chart::Base perl 子產品(0.99或更高版本)
下載下傳後DBI子產品編譯過程一樣.
1.9HTTP伺服器程式設定.
把bugzilla的程式解包到一個目錄中,在HTTP伺服器設定中,的srm.conf中加入ScriptAlias /bugzilla
"/home/httpd/bugzilla/",在access.conf中,此bugzilla目錄應該有Options ExecCGI選項.
2.安裝Bugzilla檔案
你應該把bugzilla檔案解包到一個可以讓預設web伺服器的屬主(可能是nobody)可以寫的目錄中.
3.建立MySQL資料庫
Bugzilla經常以使用者"bugs"登入,而且沒有密碼,MySQL的權限維護是一個複雜的事情,我把它們關掉了,如果你也想這麼
做,用下面的指令(其中的HOSTNAME用運作mysql的機器名來代替)
#mysql mysql
DELETE FROM host;
DELETE FROM user;
INSERT INTO host VALUES ('localhost','%','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y');
INSERT INTO host VALUES (HOSTNAME,'%','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y');
INSERT INTO user VALUES
('localhost','root','','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y');
INSERT INTO user VALUES (HOSTNAME,'','','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y');
INSERT INTO user VALUES
(HOSTNAME,'root','','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y');
INSERT INTO user VALUES
('localhost','','','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y');
"Y"的數量和版本有關,3.22.23b的版本沒問題.運作完後,運作mysqladmin reload來重新裝載許可清單.下面你就可以運
行神奇的checksetup.pl腳本,非常感想Holger
Schurig 寫了這個腳本,它會合理的設定權限,并建立"data"目錄,第一次運作時它會建立一個叫"localconfig"的檔案,
你可能要檢查并修改它.重新運作這個腳本它就會真正的工作了.如果沒有成功建立資料庫,你可能要手工建立資料庫,并用
bugzilla目錄下面的mysql目錄下的腳本建立表了.(可能會有一點小問題,相信如果你懂一些SQL語句,會很容易解決的)
如果這些都成功了,那麼你就可以用web浏覽了.你要先注冊(最先的11個使用者為特殊使用者,有改參數,添加項目等功能),輸
入你的e-mail位址,它會調用sendmail(這就是說你需要裝有sendmail,要不然你就要改程式了)把你的密碼發到你的信箱
中,以後你就用這個密碼來登入.還有,這個for mysql的bugzilla可是從redhat下載下傳的,你如果要用,還要自己改一改它的
界面喲,關于mysql的安全你也要考慮喲,這裡我就不講了.
以上測試是在Turbolinux workstation 6.1上完成的。心動不如行動,下面是下載下傳的網址.
Appendix A. Required Software Download Links
All of these sites are current as of February 17, 1999. Hopefully
they'll stay current for a while.
MySQL: http://www.mysql.org
Perl: http://www.perl.org
CPAN: http://www.cpan.org
DBI Perl module: ftp://ftp.cpan.org/pub/perl/CPAN/modules/by-module/DBI/
Data::Dumper module:
ftp://ftp.cpan.org/pub/perl/CPAN/modules/by-module/Data/
MySQL related Perl modules:
ftp://ftp.cpan.org/pub/perl/CPAN/modules/by-module/Mysql/
TimeDate Perl module collection:
ftp://ftp.cpan.org/pub/perl/CPAN/modules/by-module/Date/
GD Perl module: ftp://ftp.cpan.org/pub/perl/CPAN/modules/by-module/GD/
Chart::Base module:
ftp://ftp.cpan.org/pub/perl/CPAN/modules/by-module/Chart/
RedHat Bugzilla:ftp://people.redhat.com/dkl/