2011-11-29

mozilla-inbound

Mozillaのルールとして、WebKitとは違い、レビューが通ったコードはmozilla-centralに手動でチェックインしないといけなくて、なおかつそのチェックインで問題が発生しないかどうかをチェックインした人がウォッチしなければいけないという暗黙のルールがあった。ウォッチするってことは常にtinderbox (tbpl) をチェックしないといけなくて、自動テストの失敗はなんで失敗したかを調べなきゃいけなかった。で、たまにしかチェックインしない人だと、IRCで「なぜ起きるのか教えてくれ!」って叫ぶ声がよくあった光景だった。

で、Firefox 4が終わったくらいからそのルールをやめようとして、cedarを使ってチェックインをウォッチしないルールをehanあたりが作って、それが実運用された。それがmozilla-inbound。mozilla-inboundへのチェックインはツリーの状態(テストの結果)をウォッチしなくてもよくて、テストが失敗してそうな修正は、コビトさん(人間ね)が自動的にバックアウトするルールになった。また、定期的にmozilla-centralとの同期を(手動で)行うので、一般的なNightlyにはテストがちゃんとパスされたものが入り、Nighlyが不安定なことが減ったはず。

また、チェックイン前のテストでは、try serverと呼ばれるものを使うことで事前にテストを実行できる (要Level 1のチェックイン権限。try serverはchromiumにも導入されてるんだってのは最近知ったけど、MozillaかGoogleのどっちが最初にこのアイデア導入したかは知らない)。で、try serverではどのバイナリをビルドするかとか (Win32の場合は、VS2010でビルドするのもできる。現在のFirefoxはVS2005使ってるけどね)、どのテストを実行するかとかを選べる。TryChooserって呼んでるけど。

mozilla-centralへのマージをやってるのが数名 (EdとかMacroとか)で回してるので、祝日とかが多いと、mozilla-centralにまったくコードが入らないことが起きるんだよね。checkin-neededも同じようにDaoとかやってくれる人が決まってるので、彼らがいないと放置プレイになりがち。まぁ、もう少し自動化できるところは自動化しないとね。

2011-11-16

MozCamp Berlin 2011

行ってきた。
キーノートのプレゼンで着ぐるみの制作現場の写真があるのは、どうかと思う。

2011-11-07

バッテリーAPIが実装された

JoyStick APIと並ぶ、そこ?って感じのDevice APIで、battery APIってのがGecko 10 (Firefox 10) に実装された。

動くのは、LinuxとAndroidだけで、それ以外のプラットフォームは後でされるんだけど、使い方は簡単で、現在のバッテリの残量を見たければ、こんな感じで使える。
alert(window.navigator.mozBattery.level);

もちろん、イベントリスナ登録して、
function update() {
}

window.navigator.mozBattery.addEventListener("chargingchange", update)
こうすれば、ACプラグがつながった、抜けたのイベントがとれるんで、chargingプロパティ参照すれば、現在のACプラグの状態をとれる

これが実装されたおかげで、長年の懸念ポイントだった、ACつなげてないのにThunderbirdがインデックスを作りに行くから、バッテリが持たなくて困る問題を直す気になったてか、Thunderbird 11でやらないとね