貢獻 Gecko 的步驟(不知道簡不簡單 xdd,內含真實案例)

47 views
Skip to first unread message

Kang-Hao (Kenny) Lu

unread,
Oct 27, 2011, 9:02:49 PM10/27/11
to 火狐俱樂部, Orinx Chen
八月底的時候柏強轉了我在 W3C 中文興趣小組發的「貢獻 HTML 規範的步驟(非
常簡單,內含真實案例)」。上個禮拜三(記者會那天)清晨的時候,我繳交了我
對 Gecko(Firefox 渲染引擎)的第一個補丁(後來想想看其實是人生的第一個補
丁),然後再隔天得到了 r+, r=bz,所以仿照那篇我自己的文章,來寫一個
Gecko 的版本。

首先講解一下:
r+ 是指通過 review(怎麼翻?審核?)的補丁,之後 land 之後就會成為
Mozilla 整個大程式碼庫的一部分。r? 就是要求審核,r- 是審核不通過。
r=bz 是指審核的人是 bz,基本上是在 IRC 上的代號。

== 步驟(參考[1]) ==
1. 找一個想解決的問題,上次我回 Toby 信的那篇的那篇給了幾個「第一次貢獻
Mozilla 的推薦 bug」相關的連結。
2.(可選)如果這個問題不是從 Bugzilla 上找來的,去回報這個 bug。
3. 努力看程式碼/寫程式碼直到在自己電腦上可以跑了。
4. 廣泛測試
5. 在該 bug 上提交補丁
6. 找審核的人
7. 根據審核的人講的話改補丁
8. 請有程式碼庫權限的人 commit

[1] https://developer.mozilla.org/En/Developer_Guide/How_to_Submit_a_Patch

== 真實案例 ==
1. 在翻譯 + 註解 CSS2.1 怎麼處理 'display: table-*' 的章節[2]的時候,發
現到程式碼裡面有一個邏輯明顯不合規範。有機會我再在中文興趣小組的郵件群講
好了,老實說這個問題恐怕正常人一生都不會碰到,不過 反正不合規範也不跟 IE
兼容所以修掉也無訪。

(翻譯 + 註解計畫是中文興趣小組 HTML5 規範翻譯計畫的一個延伸,基本上就是
把規範裡的一些部份直接用超連結連到代碼,這是希望未來對瀏覽器開發(Gecko
或 WebKit)有興趣的人可以直接看規範找到對應的的程式碼,快速進入可以開發
的階段,算是一個一起累積看代碼經驗的計畫。雖然說這是一個延伸,不過我本
來一開始目標就是這個。目前做 HTML5 規範翻譯的人只有我在做這件事,不過我
有想要積極吸取對做註解也有興趣的人。)

[2]
http://www.w3.org/html/ig/zh/wiki/CSS2/impl#.E7.84.A1.E5.90.8D.E8.A1.A8.E6.A0.BC.E7.89.A9.E4.BB.B6

2. 因為是自己看代碼找出來的錯誤,所以就自己去報 bug[3],代號是 695538。
我覺得一般來說這比較不太正常一點...我想從已有的問題下去解應該比較像是
「解決問題」,畢竟規範也很可能是錯的。

(真的真的有興趣的人可以去玩我報的那個 bug 裡面的測試資料在不同瀏覽器的
不同,可能會被嚇到喔 xdd)

[3] https://bugzilla.mozilla.org/show_bug.cgi?id=695538

3. 在做規範註解的時候的確花了很多時間看代碼,寫代碼反而花的時間非常少,
才十行左右而已(加五行的註解)。其實到目前為止我的 C++ 經驗不到 3000
行,所以一般來說我不覺得程式語言是特別大的問題(也可能是我還沒做大修改的
關係),看大型專案代碼的技巧倒是很重要,用 gdb 很有幫助。希望以後
Mozilla 有技術交流的郵件群的時候可以多交流一下。

我在自己的電腦上改了之後,編譯一次過關、開啟 Firefox 看到自己做得測試資
料過關的時候實在是 high 翻天了,但是再走兩步之後就當機了 xdd。後來改了一
下當機的地方,基本上還是那十行。

4. 早有耳聞 Gecko 有一種叫做 reftest[4] 的測試 CSS 的方法,他的原理是比
較兩個不同的 HTML,若渲染的結果的像素是一樣的就過關,以測試 CSS 的不同功
能。知道是知道,跑起來還是蠻好玩的,他會開啟一個很奇怪的 Firefox 然後裡
面就有一個視窗不斷讀取各個測試資料,所以會一直閃。我在裡面看到了幾次看起
來像是中文的測資,以後有機會應該仔細看看那些裡面有沒有奇怪的內容 xddd

[4] https://developer.mozilla.org/en/Creating_reftest-based_unit_tests

5. 用 bugzilla 繳交補丁,我一開始是用 hg diff 的結果,後來被指導了一下,
請看下面。

6. 因為 CSS 工作組的郵件群中,bz 在 2009 年的時候一直計較這個十分無聊的
章節。所以我知道這部份的審核找他就對了,而且我還蠻崇拜他的,恰恰好 xdd

7. bz 把我的代碼從 10 行壓縮到 2 行,我一開始也有這樣想,但是覺得那樣好
像慢了一點,寧可增加代碼的大小也不想拖累速度,不過他覺得 2 行的邏輯比較
清楚,我基本上對 C++ 也不是很熟,反正我沒什麼意見就聽了他的話了。

後來註解的英文錯有被挑掉,總之這裡重複了「更改、上傳、審核」了一次他就
說:「這裡我有兩個註解上的建議,不過你用原來的也可以,改了之後就 r+。要
不要寫 reftest?」基本上要求我聽他一個,另一個不聽,不過反正他也說都可
以,按照[1]的說法我改好註解之後我就自己給自己 r+ 了(這裡好像有點小問
題,不過不太重要)。

然後他注意到我的補丁後面有一個(First Patch)的字樣,跟我講說如果還不會
mq 就去學一下,我一開始還以為 mq=hg,後來才知道 mq 是 Mecurial
Queue[5],總之 MDN 寫的蠻好的,學起來沒什麼問題。補丁後來就是用 mq 做的。

後來從我寫的測試資料裡抽了一個出來做 reftest。

[5] https://developer.mozilla.org/en/Mercurial_Queues

8. 我在 Keyword 加了個 checkin-needed,後來隔天專門 land 補丁的人就 land
了。

(這個過程有點小插曲,因為 bz 已經說給我 r+ 了又問我要不要寫 reftest,我
就以為我寫 reftest 不需要再審核了。事實上是需要的,而且這個 reftest 我真
的寫錯了「class="table"」寫成「cless="table"」 xddd 真丟臉)

== 心得 ==
整個補丁提交的過程只花了兩天以內,基本上還蠻愉快的,而且 bz 這種高人還有
注意到我是(First Patch)並給了親切指點,有點開心。

幾個朋友應該知道我對瀏覽器標準的實作上很有怨念,雖然有參與過幾個 bug 的
討論,也幫忙寫過測試資料,但是實際上只是我的第一個補丁而已。平常還是嘴泡
太多了,罪孽罪孽,之後翻譯 + 註解規範的過程中發現了手癢想改的狀況會繼續
努力的。

話說只有兩行的貢獻能不能拿 T-shirt 啊?不過不管怎麼樣如果大家到 Firefox
10 還繼續用 Firefox 的話就會執行到我的程式碼啦,有點爽 xdd

希望以後 Mozilla 也能指點社群成員走過這些步驟啦,有點像是我在 HTML5 中文
興趣小組指點一下別人走過標準制定的過程那樣。期待 Mozilla 早一點有用中文
討論技術的郵件群。

HTML5 規範翻譯仍然繼續歡迎各位參加,歡迎私下聯絡或是加入 QQ 群
151145242(歡迎圍觀)。我們... 還算歡樂吧,我有時後會不小心講太多真心話
xddd。

如果對瀏覽器實作有興趣的話也歡迎加入 IRC irc.mozilla.org
#mozilla-taiwan 吧,不過人比較少,而且我應該還沒有到可以指導別人的程度,
不過我想 thinker 應該可以,大家快去打擾他要求他指點指點吧!


Kenny

Bob Chao

unread,
Oct 27, 2011, 9:07:22 PM10/27/11
to moztw-...@googlegroups.com, Orinx Chen
這篇應該可以上 Mozilla Links ? 或許是節錄,然後引到 Google Groups 來看那類的...

2011/10/28 Kang-Hao (Kenny) Lu <kenn...@csail.mit.edu>

--
您已訂閱「Google 網上論壇」的「moztw-general: 摩茲將軍」群組,因此我們特別傳送這封郵件通知您。
如要在此群組張貼留言,請傳送電子郵件至 moztw-...@googlegroups.com
如要取消訂閱此群組,請傳送電子郵件至 moztw-genera...@googlegroups.com
如需更多選項,請造訪此群組:http://groups.google.com/group/moztw-general?hl=zh-TW




--
Po-chiang Chao  (:BobChao)
Mozillian and Creative Commoner, Taiwan
http://twitter.com/bobchao

Kang-Hao (Kenny) Lu

unread,
Oct 27, 2011, 9:28:21 PM10/27/11
to 火狐俱樂部, Bob Chao
(11/10/28 9:07), Bob Chao wrote:
> 這篇應該可以上 Mozilla Links ? 或許是節錄,然後引到 Google Groups 來看那類的...

我都 OK。

Irvin Chen

unread,
Oct 27, 2011, 9:45:42 PM10/27/11
to moztw-...@googlegroups.com, moztw-...@googlegroups.com, Orinx Chen
寫這麼完整就全文上啊,然後要不要乾脆趁這個機會就把技術群組開下去?

Sent from mobile

Bob Chao

unread,
Oct 27, 2011, 9:58:06 PM10/27/11
to moztw-...@googlegroups.com, Orinx Chen
要全文上的話最好是編輯過。這篇寫起來用信件的心理來閱讀 ok,進 HTML 需要排版,有加點圖會更好。

~Bob

2011/10/28 Irvin Chen <irvi...@gmail.com>

Kang-Hao (Kenny) Lu

unread,
Oct 27, 2011, 10:13:23 PM10/27/11
to 火狐俱樂部
要怎麼改指點一下我改沒問題,圖片的話就不要叫我畫了,因為沒這個能力 xddd

>>> 如果對瀏覽器實作有興趣的話也歡迎加入 IRC <http://irc.mozilla.org>irc.mozilla.org


>>> #mozilla-taiwan 吧,不過人比較少,而且我應該還沒有到可以指導別人的程度,
>>> 不過我想 thinker 應該可以,大家快去打擾他要求他指點指點吧!
>>>
>>>
>>> Kenny
>>>
>>> --
>>> 您已訂閱「Google 網上論壇」的「moztw-general: 摩茲將軍」群組,因此我們特別傳送這封郵件通知您。
>>> 如要在此群組張貼留言,請傳送電子郵件至 <moztw-...@googlegroups.com>

>>> moztw-...@googlegroups.com
>>> 如要取消訂閱此群組,請傳送電子郵件至 <moztw-general%2Bunsu...@googlegroups.com>


>>> moztw-genera...@googlegroups.com
>>> 如需更多選項,請造訪此群組: <http://groups.google.com/group/moztw-general?hl=zh-TW>
>>> http://groups.google.com/group/moztw-general?hl=zh-TW
>>>
>>>
>>
>> --
>> Po-chiang Chao (:BobChao)
>> Mozillian and Creative Commoner, Taiwan

>> <http://blog.bobchao.net/>http://twitter.com/bobchao

Peter Chen

unread,
Oct 27, 2011, 10:18:53 PM10/27/11
to moztw-...@googlegroups.com
第一個 r+ 的 Bug,賀!

應該不用畫圖,就是看你的內容抓 screenshot 下來?


Peter

Bob Chao

unread,
Oct 27, 2011, 10:21:25 PM10/27/11
to moztw-...@googlegroups.com
圖片應該就是抓圖而已,
我明天早上改一個版本給你參考看看意思,
主要是

1. 加上簡單 summary 在最前面
2. 套 HTML (例如條列、標題、連結、加強語氣等等)
3. 考量一下有沒有哪些詞對入門者太難 (不是說這篇有,我只是註記一下要詳細看)

或者你自己要先動手也蠻好的

~Bob
http://twitter.com/bobchao

Kang-Hao (Kenny) Lu

unread,
Oct 27, 2011, 10:42:46 PM10/27/11
to Bob Chao, 火狐俱樂部
(11/10/28 10:21), Bob Chao wrote:
> 圖片應該就是抓圖而已,
> 我明天早上改一個版本給你參考看看意思,

如果可以的話想麻煩你,今天我想拼另一份規範翻譯+註解的宣傳稿出來。

> 3. 考量一下有沒有哪些詞對入門者太難 (不是說這篇有,我只是註記一下要詳細看)

我想我沒解釋的裡面最難的應該是 hg 跟 CSS2.1 'display: table-*'

附上一張 Bugzilla 的照片。


Kenny

bugzilla-first-commit.png

irvi...@gmail.com

unread,
Oct 27, 2011, 10:48:03 PM10/27/11
to moztw-...@googlegroups.com
這篇就丟給進階用戶看,應該不用特別去想入門者的問題,在最前面註明一下就好啦。
要不就是kenny丟自家的blog然後進plants也好。
Irvin Chen。http://irvin.sto.tw


Bob Chao

unread,
Oct 27, 2011, 10:56:34 PM10/27/11
to moztw-...@googlegroups.com
我是覺得還是有必要看一下,
即便是進階使用者也有進階到火星級跟還留在月亮的。
其實這篇原本的用意也是入門,多計較比少計較好。

要解釋的倒也不是技術名詞,我比較想重新確認一下跟流程相關的詞彙。

Kang-Hao (Kenny) Lu

unread,
Oct 27, 2011, 10:57:35 PM10/27/11
to Irvin Chen, 火狐俱樂部
(終於發生不小心寄錯到中文興趣小組的事件了 xdd)


(11/10/28 10:48), irvi...@gmail.com wrote:
> 要不就是kenny丟自家的blog然後進plants也好。

我沒有 blog,目前也不太想要有,如果有人的 blog 要借我丟我也無訪啦 xdd 我
想丟中文興趣小組的郵件群不太好,畢竟這是 Mozilla 的東西。

Irvin

unread,
Mar 9, 2012, 12:24:36 PM3/9/12
to moztw-...@googlegroups.com
如果有沒看到的朋友,忘了說一下這篇已經發到 Mozilla Links 了:
http://mozlinks-zh.blogspot.com/2012/02/firefox_25.html

結案:)

--
@ irvinfly: community liaison
moztw.org (http://moztw.org) Mozilla Taiwan community
Sent with Sparrow (http://www.sparrowmailapp.com/?sig)


On 2011年10月28日Friday at 上午10:56, Bob Chao wrote:

> 我是覺得還是有必要看一下,
> 即便是進階使用者也有進階到火星級跟還留在月亮的。
> 其實這篇原本的用意也是入門,多計較比少計較好。
>
> 要解釋的倒也不是技術名詞,我比較想重新確認一下跟流程相關的詞彙。
>

> 2011/10/28 irvi...@gmail.com (mailto:irvi...@gmail.com) <irvi...@gmail.com (mailto:irvi...@gmail.com)>


> > 這篇就丟給進階用戶看,應該不用特別去想入門者的問題,在最前面註明一下就好啦。
> > 要不就是kenny丟自家的blog然後進plants也好。
> >
> > Bob Chao <bob...@gmail.com (mailto:bob...@gmail.com)> 於 2011年10月28日上午10:21 寫道:
> >
> > > 圖片應該就是抓圖而已,
> > > 我明天早上改一個版本給你參考看看意思,
> > > 主要是
> > >
> > > 1. 加上簡單 summary 在最前面
> > > 2. 套 HTML (例如條列、標題、連結、加強語氣等等)
> > > 3. 考量一下有沒有哪些詞對入門者太難 (不是說這篇有,我只是註記一下要詳細看)
> > >
> > > 或者你自己要先動手也蠻好的
> > >
> > > ~Bob
> > >
> > >

> > > 2011/10/28 Kang-Hao (Kenny) Lu <kenn...@csail.mit.edu (mailto:kenn...@csail.mit.edu)>


> > > > 要怎麼改指點一下我改沒問題,圖片的話就不要叫我畫了,因為沒這個能力 xddd
> > > >
> > > > (11/10/28 9:58), Bob Chao wrote:
> > > > > 要全文上的話最好是編輯過。這篇寫起來用信件的心理來閱讀 ok,進 HTML 需要排版,有加點圖會更好。
> > > > >
> > > > > ~Bob
> > > > >

> > > > > 2011/10/28 Irvin Chen <irvi...@gmail.com (mailto:irvi...@gmail.com)>


> > > > >
> > > > > > 寫這麼完整就全文上啊,然後要不要乾脆趁這個機會就把技術群組開下去?
> > > > > >
> > > > > > Sent from mobile
> > > > > >
> > > > > > Bob Chao <bob...@gmail.com (mailto:bob...@gmail.com)> 於 2011/10/28 上午9:07 寫道:
> > > > > >
> > > > > > 這篇應該可以上 Mozilla Links ? 或許是節錄,然後引到 Google Groups 來看那類的...
> > > > > >

> > > > > > 2011/10/28 Kang-Hao (Kenny) Lu < <kenn...@csail.mit.edu (mailto:kenn...@csail.mit.edu)>
> > > > > > kenn...@csail.mit.edu (mailto:kenn...@csail.mit.edu)>


> > > > > >
> > > > > > > 八月底的時候柏強轉了我在 W3C 中文興趣小組發的「貢獻 HTML 規範的步驟(非
> > > > > > > 常簡單,內含真實案例)」。上個禮拜三(記者會那天)清晨的時候,我繳交了我
> > > > > > > 對 Gecko(Firefox 渲染引擎)的第一個補丁(後來想想看其實是人生的第一個補
> > > > > > > 丁),然後再隔天得到了 r+, r=bz,所以仿照那篇我自己的文章,來寫一個
> > > > > > > Gecko 的版本。
> > > > > > >
> > > > > > > 首先講解一下:
> > > > > > > r+ 是指通過 review(怎麼翻?審核?)的補丁,之後 land 之後就會成為
> > > > > > > Mozilla 整個大程式碼庫的一部分。r? 就是要求審核,r- 是審核不通過。
> > > > > > > r=bz 是指審核的人是 bz,基本上是在 IRC 上的代號。
> > > > > > >
> > > > > > > == 步驟(參考[1]) ==
> > > > > > > 1. 找一個想解決的問題,上次我回 Toby 信的那篇的那篇給了幾個「第一次貢獻
> > > > > > > Mozilla 的推薦 bug」相關的連結。
> > > > > > > 2.(可選)如果這個問題不是從 Bugzilla 上找來的,去回報這個 bug。

> > > > > > > 3. 努力看程式碼??寫程式碼直到在自己電腦上可以跑了。

> > > > > > > 如果對瀏覽器實作有興趣的話也歡迎加入 IRC <http://irc.mozilla.org>irc.mozilla.org (http://irc.mozilla.org) 的


> > > > > > > #mozilla-taiwan 吧,不過人比較少,而且我應該還沒有到可以指導別人的程度,
> > > > > > > 不過我想 thinker 應該可以,大家快去打擾他要求他指點指點吧!
> > > > > > >
> > > > > > >
> > > > > > > Kenny
> > > > > > >
> > > > > > > --
> > > > > > > 您已訂閱「Google 網上論壇」的「moztw-general: 摩茲將軍」群組,因此我們特別傳送這封郵件通知您。

> > > > > > > 如要在此群組張貼留言,請傳送電子郵件至 <moztw-...@googlegroups.com (mailto:moztw-...@googlegroups.com)>
> > > > > > > moztw-...@googlegroups.com (mailto:moztw-...@googlegroups.com)。
> > > > > > > 如要取消訂閱此群組,請傳送電子郵件至 <moztw-general%2Bunsu...@googlegroups.com (mailto:moztw-general%252Buns...@googlegroups.com)>
> > > > > > > moztw-genera...@googlegroups.com (mailto:moztw-general%2Bunsu...@googlegroups.com)。


> > > > > > > 如需更多選項,請造訪此群組: <http://groups.google.com/group/moztw-general?hl=zh-TW>
> > > > > > > http://groups.google.com/group/moztw-general?hl=zh-TW
> > > > > >
> > > > > >
> > > > > > --
> > > > > > Po-chiang Chao (:BobChao)
> > > > > > Mozillian and Creative Commoner, Taiwan
> > > > > > <http://blog.bobchao.net/>http://twitter.com/bobchao
> > > > > >
> > > > > > --
> > > > > > 您已訂閱「Google 網上論壇」的「moztw-general: 摩茲將軍」群組,因此我們特別傳送這封郵件通知您。

> > > > > > 如要在此群組張貼留言,請傳送電子郵件至 moztw-...@googlegroups.com (mailto:moztw-...@googlegroups.com)。
> > > > > > 如要取消訂閱此群組,請傳送電子郵件至 moztw-genera...@googlegroups.com (mailto:moztw-general%2Bunsu...@googlegroups.com)。


> > > > > > 如需更多選項,請造訪此群組:http://groups.google.com/group/moztw-general?hl=zh-TW
> > > > > >
> > > > > > --
> > > > > > 您已訂閱「Google 網上論壇」的「moztw-general: 摩茲將軍」群組,因此我們特別傳送這封郵件通知您。

> > > > > > 如要在此群組張貼留言,請傳送電子郵件至 moztw-...@googlegroups.com (mailto:moztw-...@googlegroups.com)。
> > > > > > 如要取消訂閱此群組,請傳送電子郵件至 moztw-genera...@googlegroups.com (mailto:moztw-general%2Bunsu...@googlegroups.com)。


> > > > > > 如需更多選項,請造訪此群組:http://groups.google.com/group/moztw-general?hl=zh-TW
> > > > >
> > > >
> > > >
> > > > --
> > > > 您已訂閱「Google 網上論壇」的「moztw-general: 摩茲將軍」群組,因此我們特別傳送這封郵件通知您。

> > > > 如要在此群組張貼留言,請傳送電子郵件至 moztw-...@googlegroups.com (mailto:moztw-...@googlegroups.com)。
> > > > 如要取消訂閱此群組,請傳送電子郵件至 moztw-genera...@googlegroups.com (mailto:moztw-general%2Bunsu...@googlegroups.com)。


> > > > 如需更多選項,請造訪此群組:http://groups.google.com/group/moztw-general?hl=zh-TW
> > >
> > >
> > >
> > >
> > > --
> > > Po-chiang Chao (:BobChao)
> > > Mozillian and Creative Commoner, Taiwan

> > > http://twitter.com/bobchao (http://blog.bobchao.net/)


> > > --
> > > 您已訂閱「Google 網上論壇」的「moztw-general: 摩茲將軍」群組,因此我們特別傳送這封郵件通知您。

> > > 如要在此群組張貼留言,請傳送電子郵件至 moztw-...@googlegroups.com (mailto:moztw-...@googlegroups.com)。
> > > 如要取消訂閱此群組,請傳送電子郵件至 moztw-genera...@googlegroups.com (mailto:moztw-general%2Bunsu...@googlegroups.com)。


> > > 如需更多選項,請造訪此群組:http://groups.google.com/group/moztw-general?hl=zh-TW
> >
> >
> >
> >
> > --
> > Irvin Chen。http://irvin.sto.tw
> >
> >
> >
> > --
> > 您已訂閱「Google 網上論壇」的「moztw-general: 摩茲將軍」群組,因此我們特別傳送這封郵件通知您。

> > 如要在此群組張貼留言,請傳送電子郵件至 moztw-...@googlegroups.com (mailto:moztw-...@googlegroups.com)。
> > 如要取消訂閱此群組,請傳送電子郵件至 moztw-genera...@googlegroups.com (mailto:moztw-general%2Bunsu...@googlegroups.com)。


> > 如需更多選項,請造訪此群組:http://groups.google.com/group/moztw-general?hl=zh-TW
>
>
>
>
> --
> Po-chiang Chao (:BobChao)
> Mozillian and Creative Commoner, Taiwan

> http://twitter.com/bobchao (http://blog.bobchao.net/)


> --
> 您已訂閱「Google 網上論壇」的「moztw-general: 摩茲將軍」群組,因此我們特別傳送這封郵件通知您。

> 如要在此群組張貼留言,請傳送電子郵件至 moztw-...@googlegroups.com (mailto:moztw-...@googlegroups.com)。
> 如要取消訂閱此群組,請傳送電子郵件至 moztw-genera...@googlegroups.com (mailto:moztw-genera...@googlegroups.com)。
> 如需更多選項,請造訪此群組:http://groups.google.com/group/moztw-general?hl=zh-TW

Reply all
Reply to author
Forward
0 new messages