2015年6月15日

摩茲動手做(四)幫 Firefox OS 修 Bug 的第一步

摩茲動手做系列許久不見,第四集終於來了(三年了!)。本文的作者是交大資工的 Yu Wen Pwu 同學。Yu Wen Pwu 本學期以「幫 Firefox OS 修 Bug」,作為他的大一服務學習課程內容。短短幾個月的時間,已經送了 6 個 Patch,也有三個 Merge 了!

幫 Firefox 修 Bug 不分年齡與經驗,歡迎大家一起來挑戰各式各樣的 Good First Bug。(歡迎大專院校老師們一同來推動,以貢獻自由軟體作為服務學習課程,請聯繫教育部自由軟體推廣中心


Firefox OS 所有的 bug 都是在 Bugzilla@Mozilla 平台上管理的。因此,第一步當然是先到 Bugzilla 認領一個您想修的 bug (建議從簡單的 good first bug 開始)。或者,您也可以在 Bugzilla 上建立一個新的 bug。

接下來,有一些前置作業要完成。請先在 GitHub 上 fork 它所屬的 repository,例如 Firefox OS 的前端 Gaia:mozilla-b2g/gaia。接著請回到您的本地端,執行以下指令:

$  git clone https://github.com/username/gaia.git
$  git remote add upstream https://github.com/mozilla-b2g/gaia.git
$  # check if you have added 'mozilla-b2g/gaia' as 'upstream'
$  git remote -v

每次開始修 bug 之前,請記得從 upstream 抓取更新,使您的本地端 repository 保持在最新狀態。請執行以下指令:

$  git remote update
$  # do not use 'git merge upstream/master'
$  # use the following command instead
$  git rebase upstream/master

然後就可以開始修 bug 囉。為了維持簡潔明瞭的 commit log,您應該將所有變更提交為單一一個 commit。您可以參考以下指令:

$  git add filename
$  # your commit message should be in the following form
$  # Bug id - Description of your patch r=reviewer
$  git commit -m 'your commit message'
$  git push origin master

再次提醒您,如果您提交了超過一個 commit,請務必將其合併為單一一個 commit。您可以參考以下指令:

$  # show the commit history
$  git log
$  # n: the number of commits you want to squash
$  # please replace 'n' with any positive integer
$  git rebase -i HEAD~n
$  # into interactive mode
$  # step i. replace 'pick' with 'squash' except for the first line
$  # step ii. modify commit messages
$  git log
$  # now you should see n commits combined into a single commit

最後,請至 Mozilla 的 GitHub repository 提出 pull request。同樣地,pull request 的標題必需符合 "Bug id - Description of your patch r=reviewer" 的形式。這時系統應該會自動為您在 Bugzilla 上新增一個 attachment,其檔案名稱即為該 pull request 的網址。請在 attachment 上指定 review flag 給相關負責人。

負責人檢查過您提交的程式碼後,請到 Bugzilla 為該 bug 新增一個 keyword "checkin-needed",讓系統自動處理您的 pull request。現在就只要等候您的 pull request 被 merge,然後再前往 Bugzilla 將該 bug 的 status 變更為 RESOLVED FIXED,就完成囉。

如何測試 Firefox OS?

Firefox OS 的架構分為:Gonk > Gecko > Gaia。Gonk 是系統核心,以 Linux Kernel 為基礎。而 Gaia 則是 Firefox OS 的前端,完全採用 HTML、CSS、JavaScript 等網頁程式語言來撰寫。要測試 Firefox OS 最簡單的方法是直接在 Firefox 瀏覽器上模擬。您只要開啟 Firefox,點選右上角的開啟選單 > 開發者 > WebIDE,選擇一個 Runtime (若選單中未出現 Firefox OS,則需先安裝一個 Firefox OS 模擬器),就可以直接執行 Firefox OS 囉。

原文 / 網頁設計微筆記: 12.5 參與 Mozilla Firefox OS 開發的流程
作者 / Yu Wen Pwu
授權 / 創用 CC 姓名標示-非商業性-相同方式分享 4.0 國際 授權條款授權

2 則留言:

  1. Students find Nursing Critical Care Essay Services as being of great assistance since they are able to seek our nursing research paper writing services and nursing essay writing help services on time.

    回覆刪除