LibreOffice Bugzilla 貢獻流程
===
### 參考文章
* [如何提交一個好的 Bug?](https://ithelp.ithome.com.tw/articles/10203885)
* [bug 的生命週期](https://ithelp.ithome.com.tw/articles/10203243)
## 大綱
此流程可以個別拆開閱覽,請自行選擇想了解的章節。
但是為了闡述一個完整的流程,文章內容採取重由上而下的章節逐步解釋一個完整的 bug 從被生產出來到他生命來到終點的一個流程
1. 回報錯誤的流程
2. 宣示修正錯誤的聲明
3. 修改錯誤的過程
4. 提交修改終結錯誤
5. 結語
6. 附件:用詞解釋
### (一) 回報 Bug 的流程
Bug 的類型簡單來說
1. 使用者介面錯誤
2. 功能錯誤
這份文件會以功能邏輯錯誤當作範例。
首先,無事不登三寶殿,沒有錯誤哪來的回報(千萬別吃飽沒事幹啊~)
當我在開發 LibreOffice Online 的時候觀察到後台的系統圖表有以下畫面



身為一個正常的工程師,看到網路流量出現負數就發現事情並不單純,趕緊打開 chrome 登入我的 bugzilla 來回報
##### 進入 bugzilla 可以看到下面選單,並點選左上角的 New 按鈕來開始

##### 接著看到以下面畫面,選擇 bug 的發生專案,這邊是 libreoffice online

##### 再來就進到回報的資訊頁面

優質的資訊以幾個原則為重
1. Component & version: 確認無誤
2. Summary: 精要的描述問題(建議25個英文字以內)
3. Description: 詳細描述問題的再現步驟
4. Attachment: 呈現問題的畫面截圖
##### 呈現結果,以下是筆者提交出的 bug [編號 #130798](https://gerrit.libreoffice.org/c/online/+/89494)

### (二) 宣示修正錯誤的聲明
回報完 bug 以後,接下來可以選擇左轉離開,讓維護的開發者來決定他的 bug 生長短,也可以像筆者我路見不平拔 code 相助。
據官方的文章,我們要先將 bug 的狀態從 unconfirm 轉變到 new,把戰場從 QA 拉到 Development 方能以正確的姿態進入程式碼貢獻模式。
好消息是轉換 bug 的權限只需要登入 bugzilla,因此我也沒有等其他的人來確認我回報的 bug 就自行將其改為 New,並在留言處聲明我的工作狀態,請參考下圖的第三則 tommy.wu 留言。

### (三) 修改錯誤的流程
修正錯誤的流程如下
1. 編譯執行最新的 master 版本
2. 開分支來修正錯誤
### (四) 提交修改終結錯誤
請看我們把錯誤提交到 gerrit 的畫面

提交以後會有維護者出來審核提交的程式碼,如下圖的 Michael

### (五) 結語
這邊想告訴大家一個懶人包
1. 參與 bug 回報: 只要加入 LO's Bugzilla 會員
2. 提交程式碼貢獻: 只要加入 LO's Gerrit 會員
3. 審核程式碼貢獻: 只要能夠溝通 in English
前兩個步驟無須假他人之手就能推動進展,只有最後一個步驟需要與專案的維護者協助
### (六) 用詞解釋
* LO: LibreOffice 簡寫
* Bug Report: 錯誤回報
* gerrit: 泛指 LO 的專案管理平台,[LO's gerrit](https://gerrit.libreoffice.org/)
* bugzilla: 泛指 LO 的 bug 管理平台