Contenu connexe Similaire à Mozillaのビルドインフラ (20) Mozillaのビルドインフラ6. Version Control System
• http://git.mozilla.org/
or
https://github.com/mozilla/ for GIT (mirror)
• http://hg.mozilla.org/ for mercurial
• cvs.mozilla.org / cvs-mirror.mozilla.org for CVS
• svn.mozilla.org for subversion
7. VCS history
• mozilla.org設立時はCVS、Firefox 3.5からMercurial
• githubにも現在ミラーが存在 (Mozillaで同期してます)
• B2Gはgithub。B2G上のGeckoはgithubにあるミラーを利
用
• NSPRやNSSは引き続きCVS (GoogleとかRedHatとかが
使ってるし)
• 通常git使って、land時だけmercurial使う人もいる
12. Project Repositories
• fx-team … m-cへのマージ用にFirefox teamが利用
• UX … Firefox teamのテスト実装用
• Alder … 現在はWebRTC用
• Elm … 現在はWindows Metro版用
• Ionmonkey … New Baseline JIT用にJavaScript Teamが
使用
• などなど
14. User Repository
• Level
1権限以上を持つと、hg.mozilla.org/users/<自分
のメアド>に自分専用レポジトリを持つことが可能
• sshでhg.mozilla.orgに入って管理
• https://developer.mozilla.org/en-
US/docs/Creating_Mercurial_User_Repositories
15. Access Permission
• Level 1-3まである
• Level 1 … try server
• Level 2 … Project Repository
• Level 3 … mozilla-central
• Mozillaに入社してもLevel 3もらえない (Level 1だけ)
• ゲットするにはVocheが必要
19. 3rd party source code in m-c
• Firefoxでは他のOSSのライ
ブラリをいろいろ利用
• about:license
• 基本的にはUpstreamへの
修正+*.patchファイルをレ
ポジトリにland
20. Source Code Indexing
• mxr.mozilla.org
• 某ライセンス品をカスタマイズしてる
• mozilla-central
/ mozilla-aurora / mozilla-beta から
Chromiumまでいろいろとインデックス対象
• dxr.mozilla.org
• Mozilla謹製のインデクサ
31. Automations
• Automation buildingに使われるもの
• VMWare ESX
• Amazon AWS (for Linux builders)
• Mac mini
• Automation用のインスタンス数は約1500以上
33. Automations
• Automation Testing (additional)
• Windows 7 (nVIDIAのGPU搭載。HWAテスト)
• nVIDIA Tegra 2 Development board
• Pandaboard (B2G)
• etc
35. Target platforms
• Tier 1 (full support and stable release )
• Windows x86 (MSVC10)
• OSX x86 / x86-64 (clang 3.1)
• Linux (GTK+2) x86 / x86-64 (gcc 4.5)
• Android armv6 / armv7 (NDK r5c)
• B2G armv6 (for Telefonica device) / armv7 (Panda)
36. Target Platforms
• Tier 2 (support automation building)
• Windows x64 (Tier 3に格下げ)
• Tier 3 (by not Mozilla?)
• Linux (non-intel) / Linux Qt
• *BSD (OpenBSDの中の人がメンテ)
• OS/2 (ドイツ方面)
• Solaris (Oracle Chinaの中の人がメンテ)
37. Test Target Platforms
• Windows XP / Windows 7
• OSX 10.6 / 10.7 / 10.8
• Linux (Fedora 12)
• Android 2.2
• B2G (based on ICS)
41. Tree Status
• Open
• 通常の状態。誰もがland可能
• Closed
• ネットワークトラブル等でland不可能の状態
• CLOSED TREEコメントを入れればland可能
• Approval
• 誰かの許可が必要。a=xxxのログが必要
42. Tbpl (TinderBox Push Log)
• Tinderboxの後継版
• http://tbpl.mozilla.org/
• そもそもはテスト失敗を調べ
るためのツールが正式ツー
ルへ
43. Self service build interface
• 自動ビルドをコントロール
• 自動ビルドが始まった場合
に止めることが可能
• 他人のも可
• 強制clobberやPGO build
やNightly buildのキックも
可能
52. New Test failure
• 自分のlandが原因ではないRandom Orangeが発生した場
合は、Bugzillaへバグを登録
• Keywordへintermittent-failureを入れること
• Tbplで自動的に拾ってくれるようになります
54. How to use try server
1のチェックイン権限(10から20個くらいのバグの修
• 要Level
正すればもらえる)
• ssh://hg.mozilla.org/tryへ以下のコメントを修正ともにland
するだけ
try: -b do –p all –u all –t none
• Try Chooser
• http://trychooser.pub.build.mozilla.org/
57. Reftest / CrashTest
• 二つのHTMLを比較して”画像的に”正しいかどうかを判断す
るテスト
• 新しいCSSで書いたもの VS 従来のCSSで書いたものとか
• HTMLやXULのRendering Testで利用
• 何とかKitというRendering Engineにも採用されてる
64. Unit tests
• make check時に動作する単体テスト
• クロスなビルド環境 (Android / B2G) の場合は実行されな
い
• xpcshell-testで書けないときに用いられる(主にC++)
• Javascriptの単体テストにも利用 (make jit-tests)
65. Marionette
• Re-Implement WebDriver for Firefox
• Also, work on chrome permission!
• B2GのWebAPI用
• B2G Emulator (QEMU) 上でのテスト
• Remote (Cross) Target向け
69. 手動テスト?
• 自動ではないQA Teamによるテスト項目も存在する
• リリース前のテストとか
• Android版のUIテスト
• MozTrap
• 自動テストでカバーできないもののため
• https://github.com/mozilla/moztrap
72. Talos
• Performance Test Suite
• TP5
• Start up time (clean profile / dirty profile)
• Dromaeo
• Memory usages
• etc
74. Talos
Improvement! Dromaeo (DOM) increase 2.95% on MacOSX 10.8 Mozilla-Inbound
------------------------------------------------------------------------
Previous: avg 387.749 stddev 4.044 of 30 runs up to revision ab440f162ab8
New : avg 399.169 stddev 1.899 of 5 runs since revision a4c6aedf00de
Change : +11.420 (2.95% / z=2.824)
Graph : http://mzl.la/U77MBy
Changeset range: http://hg.mozilla.org/integration/mozilla-
inbound/pushloghtml?fromchange=ab440f162ab8&tochange=a4c6aedf00de
Changesets: * http://hg.mozilla.org/integration/mozilla-
inbound/rev/a4c6aedf00de
: Bill McCloskey <wmccloskey@mozilla.com> - Backout a6b604916694 (bug
747066) because it's broken
: http://bugzilla.mozilla.org/show_bug.cgi?id=747066
Bugs:
* http://bugzilla.mozilla.org/show_bug.cgi?id=747066 - xpc_UnmarkGrayObject
is slow
75. PERF-O-MATIC
• Graph ServerのWebインターフェイス
• http://graphs.mozilla.org/
• どっかの何とかKitというのにも今年導入されたはず
79. AreWe ?
• JavaScript Performance
• http://www.arewefastyet.com/
• Memshrink
• https://areweslimyet.com/
• Package file size
• http://www.arewesmallyet.com/
• Snappy
• http://arewesnappyyet.com/ (coming)
81. Crash analyzing
• Socorro (Crash reporter)
• https://crash-stats.mozilla.com/
• Firefox 3から導入
• 従来はTalkBackという製品を使用
• Socorroはその解析用サーバー・Webインターフェイスの総
称
83. BreakPad
• 多数のプラットフォームサポート
• Windows / OSX / Linux / Android / Solaris
• arm / PPC / SPARC / x86 / x86-64
• PTRACEが動かないとAndroidでダンプ取れないけどね!
(SHARP製Androidは無理)
• クラッシュ時にminidump形式のファイルを作成
• スタック上のメモリと各スレッドのコンテキストを保持
84. Server
• Automation
build時にmake buildsymbolsで作成された
シンボル情報(ソースラインと関数名)を蓄積
• Symbol Dumperはbreakpadのソースコードにある
• クラッシュデータが送られたときにそれをもとにスタック情報を
生成
• AndroidでJava内でのUnhandled Exceptionの場合は
AppNoteにログ
88. Communications
• We are REMOTE!
• Auckland? London? Mountain View? Paris? San
Francisco? Taipei? Tokyo? Toronto? Vancouver?
• Meetings
• Mailing List
• IRC
• Work Week
89. Meeting
• Weekly Status
• 全体
• Product (Firefox / Android / B2g)
• 製品特化
• Platform (GFX / DOM / GAIA / all / etc)
• Platform Development
92. IRC
• #developers • Mobileバージョン(現在は
Firefox for Androidのみ)
• 全般的な開発むけ 向け
• #introduction • #windev
• Mozillaのコードを触り始め • Windows 版開発者専用
た人向け
• #maildev
• #gfx
• Thunderbird Team用
• GFX / Layout team
• など
• #mobile
93. IRC
• 当然botいます (mozbot/firebot)
• http://ftp.mozilla.org/pub/mozilla.org/webtools/
• firebot:!seen <user name>
firebot: uuid