{"id":38,"date":"2007-04-30T15:21:58","date_gmt":"2007-04-30T22:21:58","guid":{"rendered":"http:\/\/blog.mozilla.org\/axel\/2007\/04\/30\/the-incubator\/"},"modified":"2007-05-26T00:02:53","modified_gmt":"2007-05-26T07:02:53","slug":"the-incubator","status":"publish","type":"post","link":"https:\/\/blog.mozilla.org\/axel\/2007\/04\/30\/the-incubator\/","title":{"rendered":"The incubator"},"content":{"rendered":"<p>When working on new localizations of Firefox and Thunderbird, it&#8217;s pretty tricky to get all the tooling right and to distribute your work for testing. In addition, there&#8217;s no real build environment that tells me how far particular localizations are. That changed, enter the <a href=\"http:\/\/l10n.mozilla.org\/buildbot\/\">incubator<\/a>. Incubator runs in buildbot for the most part, and calls into the Mozilla build system for the real work. I don&#8217;t repack builds, as these are really for early testing, I do generate language packs against the last stable release, though. I&#8217;m looking forward to the app-agnostic branching for 2.0.0.4, here, too, then the language packs should have a real chance to work against Thunderbird, too. For now, check out the <a href=\"http:\/\/l10n.mozilla.org\/~buildmaster\/langpacks\/\">language packs<\/a>. I&#8217;m repackaging the l10n trunk against en-US branch, so we can get lively engineering work on the side of the localizers against a stable and popular target. Thus <em>incubator<\/em>.<\/p>\n<p>The whole thing runs on the l10n server, that is, master, slave and download location. Thanks to Reed Loden for helping me with the set up there.<\/p>\n<p>This is still work in progress, I hope to see our new localizations pound that thing with check-ins to get some testing and experience.<\/p>\n<p><strong>What works:<\/strong><\/p>\n<ul>\n<li>Bonsai poller. I whacked that poor creature into oblivion, I need it to support multiple subsets of repositories on different bonsai servers and branches.<\/li>\n<li>CVS checkout of that same data.<\/li>\n<li>Did I say same data? Yep, I actually have one data structure to create both the change source and the source build steps<\/li>\n<\/ul>\n<p><strong>What works not:<\/strong><\/p>\n<ul>\n<li>Any kind of load balancing or fail over does not work. I do want to stick to the plan to only have the source once per slave, but the concept of &#8220;get the source on all my slaves, and then distribute the repacks on them as they come&#8221; doesn&#8217;t seem to exist in buildbot. Partially, you could get there with scheduler.Dependent, but I guess that would stall the complete build if a slave dies.<\/li>\n<li>Adding a download link to the waterfall display.<\/li>\n<li>Fast update, only check-out what bonsai poller found.<\/li>\n<li>Dependency checking in repackaging. In the real world, one should repackage all locales only for changes to en-US, and for changes in l10n only repackage affected localizations. This is somewhat mid-hanging fruit, I guess I could add a .fileIsImportant check to scheduler.Dependent.<\/li>\n<\/ul>\n<p>As for the Waterfall display, I&#8217;m less sure than before that there is a nice way to display all of our locales. Not sure how bad that is, there seem to be ways to select subsets of the waterfall, for example just the <a href=\"http:\/\/l10n.mozilla.org\/buildbot\/?show=language-pack_browser_sq\">Albanian browser repack<\/a>.<\/p>\n<p>If you happen to be one of the localizers on there, give bonsai 10-20 minutes to pick up your changes. If you&#8217;d like to be on there, and you&#8217;re not, poke me.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>When working on new localizations of Firefox and Thunderbird, it&#8217;s pretty tricky to get all the tooling right and to distribute your work for testing. In addition, there&#8217;s no real build environment that tells me how far particular localizations are. That changed, enter the incubator. Incubator runs in buildbot for the most part, and calls [&hellip;]<\/p>\n","protected":false},"author":17,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[7,5],"tags":[],"_links":{"self":[{"href":"https:\/\/blog.mozilla.org\/axel\/wp-json\/wp\/v2\/posts\/38"}],"collection":[{"href":"https:\/\/blog.mozilla.org\/axel\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.mozilla.org\/axel\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.mozilla.org\/axel\/wp-json\/wp\/v2\/users\/17"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.mozilla.org\/axel\/wp-json\/wp\/v2\/comments?post=38"}],"version-history":[{"count":0,"href":"https:\/\/blog.mozilla.org\/axel\/wp-json\/wp\/v2\/posts\/38\/revisions"}],"wp:attachment":[{"href":"https:\/\/blog.mozilla.org\/axel\/wp-json\/wp\/v2\/media?parent=38"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.mozilla.org\/axel\/wp-json\/wp\/v2\/categories?post=38"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.mozilla.org\/axel\/wp-json\/wp\/v2\/tags?post=38"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}