{"id":145,"date":"2006-12-21T22:02:13","date_gmt":"2006-12-22T02:02:13","guid":{"rendered":"http:\/\/benjamin.smedbergs.us\/blog\/2006-12-21\/tinderclientpy\/"},"modified":"2006-12-21T22:02:13","modified_gmt":"2006-12-22T02:02:13","slug":"tinderclientpy","status":"publish","type":"post","link":"https:\/\/benjamin.smedbergs.us\/blog\/2006-12-21\/tinderclientpy\/","title":{"rendered":"tinderclient.py"},"content":{"rendered":"<p>As <a href=\"http:\/\/benjamin.smedbergs.us\/blog\/2006-12-11\/killableprocesspy\/\">promised<\/a>, I have created a python module which can be used to implement a tinderbox client to report arbitrary. I&#8217;ve also created a driver which can pull and build a Mozilla-like application. <a href=\"http:\/\/svn.smedbergs.us\/tinderclient\/trunk\/\">Sources here<\/a>. I&#8217;ve tested it on Windows and Linux, but I fully expect it would work on Mac as well. It requires Python 2.4 and the <a href=\"http:\/\/svn.smedbergs.us\/python-processes\/trunk\/\">killableprocess module<\/a>.<\/p>\n<p>I know it&#8217;s not especially obvious how to actually run a build. I use the following command line:<\/p>\n<pre>python mozbuild.py --config=\/builds\/tinderclient\/firefox-config.py,\/builds\/tinderclient\/sample-config.py --private-config=\/builds\/bs-passwords.py<\/pre>\n<p>Take a look at the <a href=\"http:\/\/tinderbox.mozilla.org\/showbuilds.cgi?tree=MozillaTest&#038;hours=24&#038;maxdate=1166709505&#038;legend=0\">MozillaTest tinderbox logs from Thursday<\/a> to see the results of my test builds. Please note that anyone is welcome to run a tinderbox that reports to MozillaTest; it&#8217;s a place to test tinderbox scripts! If you want to start reporting to an official tree like <a href=\"http:\/\/tinderbox.mozilla.org\/showbuilds.cgi?tree=MozillaExperimental\">MozillaExperimental<\/a> or <a href=\"http:\/\/tinderbox.mozilla.org\/showbuilds.cgi?tree=SeaMonkey-Ports\">SeaMonkey-Ports<\/a>, please ask permission from build@mozilla.org.<\/p>\n<p>For those keeping track of killableprocess, I&#8217;ve committed some changes:<\/p>\n<ul>\n<li>on *nix, create and kill process groups properly;\n<li>on Windows, allow redirecting the standard handles to files (instead of pipes);\n<li>on Windows, allow passing a dictionary for the environment of the new process to create.\n<\/ul>\n<p>Right now this is a technology experiment. We&#8217;ll probably use it to drive a Tamarin tinderbox. It&#8217;s vaguely possible that Mozilla will switch away from the old-style perl tinderbox client altogether going forward, but that requires replicating a lot of logic, and might not be worth it.<\/p>\n<p>Sometime after the new year, I will be adding a driver script which can perform builds in a loop, perhaps with config updating from CVS the way the current tinderbox scripts do.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>As promised, I have created a python module which can be used to implement a tinderbox client to report arbitrary. I&#8217;ve also created a driver which can pull and build a Mozilla-like application. Sources here. I&#8217;ve tested it on Windows and Linux, but I fully expect it would work on Mac as well. It requires [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2],"tags":[30,37,32,36],"class_list":["post-145","post","type-post","status-publish","format-standard","hentry","category-mozilla","tag-build-system","tag-killableprocess","tag-python","tag-tinderclient"],"_links":{"self":[{"href":"https:\/\/benjamin.smedbergs.us\/blog\/wp-json\/wp\/v2\/posts\/145","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/benjamin.smedbergs.us\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/benjamin.smedbergs.us\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/benjamin.smedbergs.us\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/benjamin.smedbergs.us\/blog\/wp-json\/wp\/v2\/comments?post=145"}],"version-history":[{"count":0,"href":"https:\/\/benjamin.smedbergs.us\/blog\/wp-json\/wp\/v2\/posts\/145\/revisions"}],"wp:attachment":[{"href":"https:\/\/benjamin.smedbergs.us\/blog\/wp-json\/wp\/v2\/media?parent=145"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/benjamin.smedbergs.us\/blog\/wp-json\/wp\/v2\/categories?post=145"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/benjamin.smedbergs.us\/blog\/wp-json\/wp\/v2\/tags?post=145"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}