Bug 541958: add additioanl branch to buildbot
authorBrent Baker <brbaker@adobe.com>
Wed, 03 Feb 2010 08:37:20 -0500
changeset 3717 26f65a0348c9d5581a0c818e1fdaf9958b6770bf
parent 3716 f6733c95b27f81e717a228124c12d061519a5342
child 3718 37e6a906f681d6ea51c835ac00b1afd02da8a97a
push id2022
push userbrbaker@adobe.com
push dateWed, 03 Feb 2010 13:37:35 +0000
bugs541958
Bug 541958: add additioanl branch to buildbot - modify buildbot steps to pass in the /branch/ environment variable: tamarin-redux|tamairn-argo|sandbox - Change how deep and performance runs are triggered. Now has an external queue that controls how/when builds are triggered. This matches how the phase1 builders work (compile,smoke,test) - Add deep and performance for the argo branch - remove winmo-frunit run in the deep builder (r=cpeyer)
build/buildbot/master/argo.py
build/buildbot/master/commonsteps.py
build/buildbot/master/custom/buildbot_ext/scheduler.py
build/buildbot/master/custom/buildbot_ext/status/client.py
build/buildbot/master/master.cfg
build/buildbot/master/public_html/announce.html
build/buildbot/master/sandbox.py
build/buildbot/master/tamarinredux.py
--- a/build/buildbot/master/argo.py
+++ b/build/buildbot/master/argo.py
@@ -43,23 +43,24 @@ from buildbot.steps.shell import *
 from custom.buildbot_ext.steps.shellAddons import *
 from buildbot.steps.trigger import Trigger
 
 from commonsteps import *
 
 class argo:
     
     HG_URL = "http://asteam.macromedia.com/hg/tamarin-redux-argo/"
+    BRANCH = "tamarin-argo"
     
     ####### SCHEDULERS
     from buildbot.scheduler import *
     # custom.buildbot_ext.scheduler import MUST happen after importing buildbot.scheduler
     from custom.buildbot_ext.scheduler import *
 
-    compile = Scheduler(name="compile-argo", branch="tamarin-redux-argo", treeStableTimer=30, fileIsImportant=startCompile,
+    compile = Scheduler(name="compile-argo", branch=BRANCH, treeStableTimer=30, fileIsImportant=startCompile,
                      builderNames=["windows-compile-argo", "windows64-compile-argo",
                                    "mac-intel-10.4-compile-argo", "mac-intel-10.5-compile-argo", "mac64-intel-compile-argo",
                                    "mac-ppc-10.4a-compile-argo", "mac-ppc-10.4b-compile-argo", 
                                    "mac-ppc-10.5a-compile-argo", "mac-ppc-10.5b-compile-argo", 
                                    "mac64-ppc-compile-argo",
                                    "linux-compile-argo", "linux64-compile-argo",
                                    "winmobile-emulator-compile-argo",
                                    "solaris-sparc-compile-argo"])
@@ -111,58 +112,56 @@ class argo:
                                   ["mac-ppc-10.5b-test-argo", "mac-ppc-10.5b-smoke-argo"],
                                   ["mac64-ppc-test-argo", "mac64-ppc-smoke-argo"],
                                   ["linux-test-argo", "linux-smoke-argo"],
                                   ["linux64-test-argo", "linux64-smoke-argo"],
                                   ["winmobile-emulator-test-argo", "winmobile-emulator-smoke-argo"],
                                   ["solaris-sparc-test-argo", "solaris-sparc-smoke-argo"],
                                  ])
 
-    """
-    performance = PhaseTwoScheduler(name="performance-argo", branch="tamarin-redux-argo", treeStableTimer=30, 
-                    fileIsImportant=startPerformanceRun, priority=1,
+    performance = PhaseTwoScheduler(name="performance-argo", branch="%s-performance" % BRANCH, treeStableTimer=30, 
+                    fileIsImportant=startPerformanceRun, priority=1, changeDir="changes/perf/processed",
                     builderNames=["windows-performance-argo",
                                    "mac-performance-argo", "mac64-performance-argo",
                                    "mac-ppc-performance-argo",
                                    "linux-performance-argo",
                                    "winmobile-performance-argo"],
                     builderDependencies=[
                                   ["windows-performance-argo", "windows-test-argo"], 
                                   ["mac-performance-argo", "mac-intel-10.5-test-argo"],
                                   ["mac64-performance-argo", "mac64-intel-test-argo"],
                                   ["mac-ppc-performance-argo", "mac-ppc-10.5a-test-argo"],
                                   ["linux-performance-argo", "linux-test-argo"],
                                   ["winmobile-performance-argo", "winmobile-emulator-test-argo"]
                                  ])
     
-    deep = PhaseTwoScheduler(name="deep-argo", branch="tamarin-redux-argo", treeStableTimer=30, fileIsImportant=startCompile,
-                        priority=1, builderNames=[
+    deep = PhaseTwoScheduler(name="deep-argo", branch="%s-deep" % BRANCH, treeStableTimer=30, 
+                    fileIsImportant=startCompile, priority=1, changeDir="changes/deep/processed",
+                    builderNames=[
                                     "windows-deep-argo",
                                     "windows-p3-deep-argo",
                                     "windows-frr-argo",
                                     "mac-ppc-deep-argo",
                                     "solaris-sparc-deep-argo",
                                     "windows64-deep-argo",
                                     "linux-deep-argo",
                                     "winmobile-emulator-deep-argo",
                                  ],
                     builderDependencies=[
                                   ["linux-deep-argo", "linux-test-argo"],
                                   ["windows-deep-argo", "windows-test-argo"],
                                   ["windows-p3-deep-argo", "windows-test-argo"],
                                   ["windows-frr-argo", "windows-test-argo"], 
                                   ["mac-ppc-deep-argo", "mac-ppc-10.5a-test-argo"], 
                                   ["solaris-sparc-deep-argo", "solaris-sparc-test-argo"], 
-                                  #["windows64-deep-argo", "windows64-test-argo"], 
+                                  ["windows64-deep-argo", "windows64-test-argo"], 
                                   ["winmobile-emulator-deep-argo", "winmobile-emulator-test-argo"],
                                  ])
-    """
 
-
-    schedulers = [compile, smoke, test]
+    schedulers = [compile, smoke, test, performance, deep]
     
     
 
     ################################################################################
     ################################################################################
     ####                                                                        ####
     ####                          COMPILE BUILDERS                              ####
     ####                                                                        ####
@@ -183,26 +182,27 @@ class argo:
     windows_compile_factory.addStep(compile_generic(name="Release-wordcode", shellname="avmshell_wordcode", args="--enable-shell --enable-wordcode-interp", upload="false"))
     windows_compile_factory.addStep(compile_generic(name="Debug", shellname="avmshell_d", args="--enable-shell --enable-debug", upload="false"))
     windows_compile_factory.addStep(compile_generic(name="ReleaseDebugger", shellname="avmshell_s", args="--enable-shell --enable-debugger", upload="false"))
     windows_compile_factory.addStep(compile_generic(name="DebugDebugger", shellname="avmshell_sd", args="--enable-shell --enable-debug --enable-debugger", upload="false"))
     windows_compile_factory.addStep(compile_generic(name="Release_vprof", shellname="avmshell-vprof", args="--enable-shell --enable-perfm", upload="false"))
     windows_compile_factory.addStep(compile_generic(name="Selftest", shellname="avmshell_test", args="--enable-shell --enable-selftest", upload="false"))
     windows_compile_factory.addStep(BuildShellCommand(
                 command=['../all/file-check.py', '../../../../../repo'],
+                env={'branch': WithProperties('%s','branch')},
                 description='running file-check against source...',
                 descriptionDone='finished file-check.',
                 name="FileCheck",
                 workdir="../repo/build/buildbot/slaves/scripts")
     )
     windows_compile_factory.addStep(compile_buildcheck)
     windows_compile_factory.addStep(util_upload_asteam)
-    windows_compile_factory.addStep(util_upload_mozilla)
     windows_compile_factory.addStep(BuildShellCommand(
                 command=['./build-release-sizereport.sh',WithProperties('%s','revision')],
+                env={'branch': WithProperties('%s','branch')},
                 description='starting win release-sizereport build...',
                 descriptionDone='finished win release-sizereport build.',
                 name='Build_Release_sizereport',
                 workdir="../repo/build/buildbot/slaves/scripts")
     )
 
     windows_compile_builder = {
                 'name': "windows-compile-argo",
@@ -225,17 +225,16 @@ class argo:
     windows_64_compile_factory.addStep(compile_builtin)
     windows_64_compile_factory.addStep(compile_generic(name="Release", shellname="avmshell_64", args="--enable-shell --target=x86_64-win", upload="false"))
     windows_64_compile_factory.addStep(compile_generic(name="Release-wordcode", shellname="avmshell_wordcode_64", args="--enable-shell --enable-wordcode-interp --target=x86_64-win", upload="false"))
     windows_64_compile_factory.addStep(compile_generic(name="Debug", shellname="avmshell_d_64", args="--enable-shell --enable-debug --target=x86_64-win ", upload="false"))
     windows_64_compile_factory.addStep(compile_generic(name="ReleaseDebugger", shellname="avmshell_s_64", args="--enable-shell --enable-debugger --target=x86_64-win ", upload="false"))
     windows_64_compile_factory.addStep(compile_generic(name="DebugDebugger", shellname="avmshell_sd_64", args="--enable-shell --enable-debug --enable-debugger --target=x86_64-win ", upload="false"))
     windows_64_compile_factory.addStep(compile_buildcheck_local)
     windows_64_compile_factory.addStep(util_upload_asteam)
-    windows_64_compile_factory.addStep(util_upload_mozilla)
 
     windows_64_compile_builder = {
                 'name': "windows64-compile-argo",
                 'slavename': "asteamwin3",
                 'factory': windows_64_compile_factory,
                 'builddir': './argo-windows64-compile',
     }
 
@@ -259,17 +258,16 @@ class argo:
     mac_intel_104_compile_factory.addStep(compile_generic(name="Release_PPC", shellname="avmshell_104_ppc", args="--enable-shell --target=ppc-darwin", upload="false"))
     mac_intel_104_compile_factory.addStep(compile_generic(name="Release-wordcode_PPC", shellname="avmshell_wordcode_104_ppc", args="--enable-shell --enable-wordcode-interp --target=ppc-darwin", upload="false"))
     mac_intel_104_compile_factory.addStep(compile_generic(name="Debug_PPC", shellname="avmshell_d_104_ppc", args="--enable-shell --enable-debug --target=ppc-darwin", upload="false"))
     mac_intel_104_compile_factory.addStep(compile_generic(name="ReleaseDebugger_PPC", shellname="avmshell_s_104_ppc", args="--enable-shell --enable-debugger --target=ppc-darwin", upload="false"))
     mac_intel_104_compile_factory.addStep(compile_generic(name="DebugDebugger_PPC", shellname="avmshell_sd_104_ppc", args="--enable-shell --enable-debug --enable-debugger --target=ppc-darwin", upload="false"))
     mac_intel_104_compile_factory.addStep(compile_generic(name="Selftest_PPC", shellname="avmshell_test_104_ppc", args="--enable-shell --enable-selftest --target=ppc-darwin", upload="false"))
     mac_intel_104_compile_factory.addStep(compile_buildcheck_local)
     mac_intel_104_compile_factory.addStep(util_upload_asteam_local)
-    mac_intel_104_compile_factory.addStep(util_upload_mozilla_local)
 
     mac_intel_104_compile_builder = {
                 'name': "mac-intel-10.4-compile-argo",
                 'slavename': "asteammac4",
                 'factory': mac_intel_104_compile_factory,
                 'builddir': './argo-mac-intel-10_4-compile',
     }
 
@@ -294,17 +292,16 @@ class argo:
     mac_intel_105_compile_factory.addStep(compile_generic(name="Release_PPC", shellname="avmshell_ppc", args="--enable-shell --target=ppc-darwin", upload="false"))
     mac_intel_105_compile_factory.addStep(compile_generic(name="Release-wordcode_PPC", shellname="avmshell_wordcode_ppc", args="--enable-shell --enable-wordcode-interp --target=ppc-darwin", upload="false"))
     mac_intel_105_compile_factory.addStep(compile_generic(name="Debug_PPC", shellname="avmshell_d_ppc", args="--enable-shell --enable-debug --target=ppc-darwin", upload="false"))
     mac_intel_105_compile_factory.addStep(compile_generic(name="ReleaseDebugger_PPC", shellname="avmshell_s_ppc", args="--enable-shell --enable-debugger --target=ppc-darwin", upload="false"))
     mac_intel_105_compile_factory.addStep(compile_generic(name="DebugDebugger_PPC", shellname="avmshell_sd_ppc", args="--enable-shell --enable-debug --enable-debugger --target=ppc-darwin", upload="false"))
     mac_intel_105_compile_factory.addStep(compile_generic(name="Selftest_PPC", shellname="avmshell_test_ppc", args="--enable-shell --enable-selftest --target=ppc-darwin", upload="false"))
     mac_intel_105_compile_factory.addStep(compile_buildcheck_local)
     mac_intel_105_compile_factory.addStep(util_upload_asteam_local)
-    mac_intel_105_compile_factory.addStep(util_upload_mozilla_local)
 
     mac_intel_105_compile_builder = {
                 'name': "mac-intel-10.5-compile-argo",
                 'slavename': "asteammac1",
                 'factory': mac_intel_105_compile_factory,
                 'builddir': './argo-mac-intel-10_5-compile',
     }
 
@@ -325,17 +322,16 @@ class argo:
     mac_intel_64_compile_factory.addStep(compile_generic(name="DebugDebugger", shellname="avmshell_sd_64", args="--enable-shell --enable-debug --enable-debugger --target=x86_64-darwin", upload="false"))
     mac_intel_64_compile_factory.addStep(compile_generic(name="Release_PPC", shellname="avmshell_64_ppc", args="--enable-shell --target=ppc64-darwin", upload="false"))
     mac_intel_64_compile_factory.addStep(compile_generic(name="Release-wordcode_PPC", shellname="avmshell_wordcode_64_ppc", args="--enable-shell --enable-wordcode-interp --target=ppc64-darwin", upload="false"))
     mac_intel_64_compile_factory.addStep(compile_generic(name="Debug_PPC", shellname="avmshell_d_64_ppc", args="--enable-shell --enable-debug --target=ppc64-darwin", upload="false"))
     mac_intel_64_compile_factory.addStep(compile_generic(name="ReleaseDebugger_PPC", shellname="avmshell_s_64_ppc", args="--enable-shell --enable-debugger --target=ppc64-darwin", upload="false"))
     mac_intel_64_compile_factory.addStep(compile_generic(name="DebugDebugger_PPC", shellname="avmshell_sd_64_ppc", args="--enable-shell --enable-debug --enable-debugger --target=ppc64-darwin", upload="false"))
     mac_intel_64_compile_factory.addStep(compile_buildcheck_local)
     mac_intel_64_compile_factory.addStep(util_upload_asteam_local)
-    mac_intel_64_compile_factory.addStep(util_upload_mozilla_local)
 
     mac_intel_64_compile_builder = {
                 'name': "mac64-intel-compile-argo",
                 'slavename': "asteammac1-64bit",
                 'factory': mac_intel_64_compile_factory,
                 'builddir': './argo-mac64-intel-compile',
     }
 
@@ -439,24 +435,24 @@ class argo:
     linux_compile_factory.addStep(compile_generic(name="Release-wordcode", shellname="avmshell_wordcode", args="--enable-shell --enable-wordcode-interp", upload="false"))
     linux_compile_factory.addStep(compile_generic(name="Debug", shellname="avmshell_d", args="--enable-shell --enable-debug", upload="false"))
     linux_compile_factory.addStep(compile_generic(name="ReleaseDebugger", shellname="avmshell_s", args="--enable-shell --enable-debugger", upload="false"))
     linux_compile_factory.addStep(compile_generic(name="DebugDebugger", shellname="avmshell_sd", args="--enable-shell --enable-debug --enable-debugger", upload="false"))
     linux_compile_factory.addStep(compile_generic(name="Release_vprof", shellname="avmshell-vprof", args="--enable-shell --enable-perfm", upload="false"))
     linux_compile_factory.addStep(compile_generic(name="Selftest", shellname="avmshell_test", args="--enable-shell --enable-selftest", upload="false"))
     linux_compile_factory.addStep(BuildShellCommand(
                 command=['./build-release-cov.sh', WithProperties('%s','revision')],
+                env={'branch': WithProperties('%s','branch')},
                 description='starting linux code coverage release build...',
                 descriptionDone='finished linux code coverage release build.',
                 name="Build_Release_cov",
                 workdir="../repo/build/buildbot/slaves/scripts")
     )
     linux_compile_factory.addStep(compile_buildcheck_local)
     linux_compile_factory.addStep(util_upload_asteam_local)
-    linux_compile_factory.addStep(util_upload_mozilla)
 
     linux_compile_builder = {
                 'name': "linux-compile-argo",
                 'slavename': "asteamlin1",
                 'factory': linux_compile_factory,
                 'builddir': './argo-linux-compile',
     }
 
@@ -474,17 +470,16 @@ class argo:
     linux_64_compile_factory.addStep(compile_generic(name="Release-wordcode", shellname="avmshell_wordcode_64", args="--enable-shell --enable-wordcode-interp", upload="false"))
     linux_64_compile_factory.addStep(compile_generic(name="Debug", shellname="avmshell_d_64", args="--enable-shell --enable-debug", upload="false"))
     linux_64_compile_factory.addStep(compile_generic(name="ReleaseDebugger", shellname="avmshell_s_64", args="--enable-shell --enable-debugger", upload="false"))
     linux_64_compile_factory.addStep(compile_generic(name="DebugDebugger", shellname="avmshell_sd_64", args="--enable-shell --enable-debug --enable-debugger", upload="false"))
     linux_64_compile_factory.addStep(compile_generic(name="Release_vprof", shellname="avmshell-vprof_64", args="--enable-shell --enable-perfm", upload="false"))
     linux_64_compile_factory.addStep(compile_testmedia)
     linux_64_compile_factory.addStep(compile_buildcheck_local)
     linux_64_compile_factory.addStep(util_upload_asteam_local)
-    linux_64_compile_factory.addStep(util_upload_mozilla_local)
 
     linux_64_compile_builder = {
                 'name': "linux64-compile-argo",
                 'slavename': "asteamlin5",
                 'factory': linux_64_compile_factory,
                 'builddir': './argo-linux64-compile',
     }
 
@@ -500,19 +495,19 @@ class argo:
     winmobile_emulator_compile_factory.addStep(bb_slaveupdate(slave="winmobile-arm"))
     winmobile_emulator_compile_factory.addStep(compile_builtin)
     winmobile_emulator_compile_factory.addStep(compile_generic(name="ReleaseARM", shellname="avmshell_arm", args="--enable-shell --target=arm-windows", upload="false"))
     winmobile_emulator_compile_factory.addStep(compile_generic(name="Release-wordcode-ARM", shellname="avmshell_wordcode_arm", args="--enable-shell --enable-wordcode-interp --target=arm-windows", upload="false"))
     winmobile_emulator_compile_factory.addStep(compile_generic(name="Release-fpu-ARM", shellname="avmshell_fpu_arm", args="--enable-shell --enable-arm-fpu --target=arm-windows", upload="false"))
     winmobile_emulator_compile_factory.addStep(compile_generic(name="DebugARM", shellname="avmshell_arm_d", args="--enable-shell --enable-debug --target=arm-windows", upload="false"))
     winmobile_emulator_compile_factory.addStep(compile_buildcheck_local)
     winmobile_emulator_compile_factory.addStep(util_upload_asteam_local)
-    winmobile_emulator_compile_factory.addStep(util_upload_mozilla_local)
     winmobile_emulator_compile_factory.addStep(BuildShellCommand(
                 command=['./build-release-mobile-pocketpc-arm-sizereport.sh', WithProperties('%s','revision')],
+                env={'branch': WithProperties('%s','branch')},
                 description='starting to run sizereport...',
                 descriptionDone='finished sizereport.',
                 name="Build_Release_sizereport",
                 workdir="../repo/build/buildbot/slaves/scripts")
     )
 
     winmobile_emulator_compile_builder = {
                 'name': "winmobile-emulator-compile-argo",
@@ -534,17 +529,16 @@ class argo:
     solaris_sparc_compile_factory.addStep(compile_generic(name="Release", shellname="avmshell", args="--enable-shell", upload="false"))
     solaris_sparc_compile_factory.addStep(compile_generic(name="Release-wordcode", shellname="avmshell_wordcode", args="--enable-shell --enable-wordcode-interp", upload="false"))
     solaris_sparc_compile_factory.addStep(compile_generic(name="Debug", shellname="avmshell_d", args="--enable-shell --enable-debug", upload="false"))
     solaris_sparc_compile_factory.addStep(compile_generic(name="ReleaseDebugger", shellname="avmshell_s", args="--enable-shell --enable-debugger", upload="false"))
     solaris_sparc_compile_factory.addStep(compile_generic(name="DebugDebugger", shellname="avmshell_sd", args="--enable-shell --enable-debug --enable-debugger", upload="false"))
     solaris_sparc_compile_factory.addStep(compile_generic(name="Selftest", shellname="avmshell_test", args="--enable-shell --enable-selftest", upload="false"))
     solaris_sparc_compile_factory.addStep(compile_buildcheck_local)
     solaris_sparc_compile_factory.addStep(util_upload_asteam)
-    solaris_sparc_compile_factory.addStep(util_upload_mozilla)
 
     solaris_sparc_compile_builder = {
                 'name': "solaris-sparc-compile-argo",
                 'slavename': "asteamsol4",
                 'factory': solaris_sparc_compile_factory,
                 'builddir': './argo-solaris-sparc-compile',
     }
 
@@ -1016,16 +1010,17 @@ class argo:
     linux_test_factory.addStep(test_generic(name="Release-wordcode-interp", shellname="avmshell_wordcode", vmargs="-Dinterp", config="", scriptargs=""))
     linux_test_factory.addStep(test_generic(name="Release-jit", shellname="avmshell", vmargs="-Ojit", config="", scriptargs=""))
     linux_test_factory.addStep(test_generic(name="ReleaseDebugger", shellname="avmshell_s", vmargs="", config="", scriptargs=""))
     linux_test_factory.addStep(test_generic(name="Debug", shellname="avmshell_d", vmargs="", config="", scriptargs=""))
     linux_test_factory.addStep(test_generic(name="DebugDebugger", shellname="avmshell_sd", vmargs="", config="", scriptargs=""))
     linux_test_factory.addStep(test_differential)
     linux_test_factory.addStep(TestSuiteShellCommand(
                 command=['./run-tests-release-cov.sh', WithProperties('%s','revision')],
+                env={'branch': WithProperties('%s','branch')},
                 description='starting to run release code coverage vmtests...',
                 descriptionDone='finished release code coverage vmtests.',
                 name="Testsuite_Release-cov",
                 workdir="../repo/build/buildbot/slaves/scripts")
     )
     linux_test_factory.addStep(util_process_clean)
 
     linux_test_builder = {
@@ -1094,17 +1089,17 @@ class argo:
     solaris_sparc_test_builder = {
                 'name': "solaris-sparc-test-argo",
                 'slavename': "asteamsol4",
                 'factory': solaris_sparc_test_factory,
                 'builddir': './argo-solaris-sparc-test',
     }
 
 
-    """
+
     ################################################################################
     ################################################################################
     ####                                                                        ####
     ####                     PERFORMANCE BUILDERS                               ####
     ####                                                                        ####
     ################################################################################
     ################################################################################
 
@@ -1122,20 +1117,20 @@ class argo:
     windows_performance_factory.addStep(perf_release)
     windows_performance_factory.addStep(perf_release_interp)
     windows_performance_factory.addStep(perf_release_jit)
     windows_performance_factory.addStep(perf_release_vprof)
     windows_performance_factory.addStep(util_process_clean)
     windows_performance_factory.addStep(bb_lockrelease)
 
     windows_performance_builder = {
-                'name': "windows-performance",
+                'name': "windows-performance-argo",
                 'slavename': "asteamwin1",
                 'factory': windows_performance_factory,
-                'builddir': './windows-performance',
+                'builddir': './argo-windows-performance',
     }
 
 
     #####################################
     #### builder for mac-performance ####
     #####################################
     mac_performance_factory = factory.BuildFactory()
     mac_performance_factory.addStep(sync_clean)
@@ -1147,20 +1142,20 @@ class argo:
     mac_performance_factory.addStep(perf_release)
     mac_performance_factory.addStep(perf_release_interp)
     mac_performance_factory.addStep(perf_release_jit)
     mac_performance_factory.addStep(perf_release_vprof)
     mac_performance_factory.addStep(util_process_clean)
     mac_performance_factory.addStep(bb_lockrelease)
 
     mac_performance_builder = {
-                'name': "mac-performance",
+                'name': "mac-performance-argo",
                 'slavename': "asteammac2",
                 'factory': mac_performance_factory,
-                'builddir': './mac-performance',
+                'builddir': './argo-mac-performance',
     }
 
 
     #######################################
     #### builder for mac64-performance ####
     #######################################
     mac_64_performance_factory = factory.BuildFactory()
     mac_64_performance_factory.addStep(sync_clean)
@@ -1171,20 +1166,20 @@ class argo:
     mac_64_performance_factory.addStep(perf_prepare)
     mac_64_performance_factory.addStep(perf_release)
     mac_64_performance_factory.addStep(perf_release_interp)
     mac_64_performance_factory.addStep(perf_release_jit)
     mac_64_performance_factory.addStep(util_process_clean)
     mac_64_performance_factory.addStep(bb_lockrelease)
 
     mac_64_performance_builder = {
-                'name': "mac64-performance",
+                'name': "mac64-performance-argo",
                 'slavename': "asteammac7",
                 'factory': mac_64_performance_factory,
-                'builddir': './mac64-performance',
+                'builddir': './argo-mac64-performance',
     }
 
 
     #########################################
     #### builder for mac-ppc-performance ####
     #########################################
     mac_ppc_performance_factory = factory.BuildFactory()
     mac_ppc_performance_factory.addStep(sync_clean)
@@ -1195,20 +1190,20 @@ class argo:
     mac_ppc_performance_factory.addStep(perf_prepare)
     mac_ppc_performance_factory.addStep(perf_release)
     mac_ppc_performance_factory.addStep(perf_release_interp)
     mac_ppc_performance_factory.addStep(perf_release_jit)
     mac_ppc_performance_factory.addStep(util_process_clean)
     mac_ppc_performance_factory.addStep(bb_lockrelease)
 
     mac_ppc_performance_builder = {
-                'name': "mac-ppc-performance",
+                'name': "mac-ppc-performance-argo",
                 'slavename': "asteammac3",
                 'factory': mac_ppc_performance_factory,
-                'builddir': './mac-ppc-performance',
+                'builddir': './argo-mac-ppc-performance',
     }
 
 
     #######################################
     #### builder for linux-performance ####
     #######################################
     linux_performance_factory = factory.BuildFactory()
     linux_performance_factory.addStep(sync_clean)
@@ -1220,20 +1215,20 @@ class argo:
     linux_performance_factory.addStep(perf_release)
     linux_performance_factory.addStep(perf_release_interp)
     linux_performance_factory.addStep(perf_release_jit)
     linux_performance_factory.addStep(perf_release_vprof)
     linux_performance_factory.addStep(util_process_clean)
     linux_performance_factory.addStep(bb_lockrelease)
 
     linux_performance_builder = {
-                'name': "linux-performance",
+                'name': "linux-performance-argo",
                 'slavename': "asteamlin4",
                 'factory': linux_performance_factory,
-                'builddir': './linux-performance',
+                'builddir': './argo-linux-performance',
     }
 
 
     ###########################################
     #### builder for winmobile-performance ####
     ###########################################
     winmobile_performance_factory = factory.BuildFactory()
     winmobile_performance_factory.addStep(sync_clean)
@@ -1243,20 +1238,20 @@ class argo:
     winmobile_performance_factory.addStep(bb_lockacquire)
     winmobile_performance_factory.addStep(perf_prepare)
     winmobile_performance_factory.addStep(perf_release_arm)
     winmobile_performance_factory.addStep(perf_release_arm_interp)
     winmobile_performance_factory.addStep(perf_release_arm_jit)
     winmobile_performance_factory.addStep(bb_lockrelease)
 
     winmobile_performance_builder = {
-                'name': "winmobile-performance",
+                'name': "winmobile-performance-argo",
                 'slavename': "asteamwin5",
                 'factory': winmobile_performance_factory,
-                'builddir': './winmobile-performance',
+                'builddir': './argo-winmobile-performance',
     }
 
     ################################################################################
     ################################################################################
     ####                                                                        ####
     ####                       DEEP TEST BUILDERS                               ####
     ####                                                                        ####
     ################################################################################
@@ -1277,20 +1272,20 @@ class argo:
     windows_deep_factory.addStep(test_misc)
     windows_deep_factory.addStep(compile_generic(name="Release-api", shellname="avmshell_api", args="--enable-shell --enable-api-versioning", upload="true"))
     windows_deep_factory.addStep(test_generic(name="Release-api", shellname="avmshell_api", vmargs="", config="", scriptargs="versioning/"))
     windows_deep_factory.addStep(test_generic(name="Release-Dgreedy", shellname="avmshell", vmargs="-Dgreedy", config="", scriptargs="--timeout=180 --random"))
     windows_deep_factory.addStep(test_generic(name="Release_Verify", shellname="avmshell_sd", vmargs="", config="", scriptargs="--verify --timeout=300 --random"))
     windows_deep_factory.addStep(util_process_clean)
 
     windows_deep_builder = {
-                'name': "windows-deep",
+                'name': "windows-deep-argo",
                 'slavename': "asteamwin10",
                 'factory': windows_deep_factory,
-                'builddir': './windows-deep',
+                'builddir': './argo-windows-deep',
     }
 
     ##################################
     #### builder for windows-p3-deep ####
     ##################################
     windows_p3_deep_factory = factory.BuildFactory()
     windows_p3_deep_factory.addStep(sync_clean)
     windows_p3_deep_factory.addStep(sync_clone(url=HG_URL))
@@ -1306,56 +1301,51 @@ class argo:
     windows_p3_deep_factory.addStep(test_generic(name="Release-jit", shellname="avmshell", vmargs="-Ojit", config="", scriptargs=""))
     windows_p3_deep_factory.addStep(test_generic(name="ReleaseDebugger", shellname="avmshell_s", vmargs="", config="", scriptargs=""))
     windows_p3_deep_factory.addStep(test_generic(name="Debug", shellname="avmshell_d", vmargs="", config="", scriptargs=""))
     windows_p3_deep_factory.addStep(test_generic(name="DebugDebugger", shellname="avmshell_sd", vmargs="", config="", scriptargs=""))
     #windows_p3_deep_factory.addStep(test_differential)
     windows_p3_deep_factory.addStep(util_process_clean)
 
     windows_p3_deep_builder = {
-                'name': "windows-p3-deep",
+                'name': "windows-p3-deep-argo",
                 'slavename': "asteamwin13",
                 'factory': windows_p3_deep_factory,
-                'builddir': './windows-p3-deep',
+                'builddir': './argo-windows-p3-deep',
     }
 
 
     ##################################
     #### builder for windows-frr ####
     ##################################
     windows_frr_factory = factory.BuildFactory()
     windows_frr_factory.addStep(BuildShellCommand(
                 command=['./build-frr.sh', WithProperties('%s','revision')],
+                env={'branch': WithProperties('%s','branch')},
                 description='building frr...',
                 descriptionDone='finished building frr.',
                 name="BuildFRR",
                 workdir="../scripts",
                 timeout=3600)
     )
     windows_frr_factory.addStep(BuildShellCommand(
                 command=['./run-frunit.sh', WithProperties('%s','revision')],
+                env={'branch': WithProperties('%s','branch')},
                 description='running frunit...',
                 descriptionDone='finished running frunit.',
                 name="RunFrunit",
                 workdir="../scripts",
                 timeout=3600)
     )
-    windows_frr_factory.addStep(BuildShellCommand(
-                command=['./run-winmo-frunit.sh', WithProperties('%s','revision')],
-                description='running winmo frunit...',
-                descriptionDone='finished running winmo frunit.',
-                name="RunWinmoFrunit",
-                workdir="../scripts",
-                timeout=3600)
-    )
+
     windows_frr_builder = {
-                'name': "windows-frr",
+                'name': "windows-frr-argo",
                 'slavename': "asteamwin12",
                 'factory': windows_frr_factory,
-                'builddir': './windows-frr',
+                'builddir': './argo-windows-frr',
     }
 
     ##################################
     #### builder for mac-ppc-deep ####
     ##################################
     mac_ppc_deep_factory = factory.BuildFactory()
     mac_ppc_deep_factory.addStep(sync_clean)
     mac_ppc_deep_factory.addStep(sync_clone(url=HG_URL))
@@ -1369,20 +1359,20 @@ class argo:
     mac_ppc_deep_factory.addStep(deep_release_esc)
     mac_ppc_deep_factory.addStep(test_misc)
     mac_ppc_deep_factory.addStep(compile_generic(name="Release-api", shellname="avmshell_api", args="--enable-shell --enable-api-versioning", upload="true"))
     mac_ppc_deep_factory.addStep(test_generic(name="Release-api", shellname="avmshell_api", vmargs="", config="", scriptargs="versioning/"))
     mac_ppc_deep_factory.addStep(test_generic(name="Release-Dgreedy", shellname="avmshell_ppc", vmargs="-Dgreedy", config="", scriptargs="--timeout=180 --random"))
     mac_ppc_deep_factory.addStep(test_generic(name="Release_Verify", shellname="avmshell_sd_ppc", vmargs="", config="", scriptargs="--verify --timeout=300 --random"))
     mac_ppc_deep_factory.addStep(util_process_clean)
     mac_ppc_deep_builder = {
-                'name': "mac-ppc-deep",
+                'name': "mac-ppc-deep-argo",
                 'slavename': "asteammac10",
                 'factory': mac_ppc_deep_factory,
-                'builddir': './mac-ppc-deep',
+                'builddir': './argo-mac-ppc-deep',
     }
 
     ########################################
     #### builder for solaris-sparc-deep ####
     ########################################
     solaris_sparc_deep_factory = factory.BuildFactory()
     solaris_sparc_deep_factory.addStep(sync_clean)
     solaris_sparc_deep_factory.addStep(sync_clone(url=HG_URL))
@@ -1394,53 +1384,54 @@ class argo:
     #solaris_deep_factory.addStep(deep_release_esc)
     solaris_sparc_deep_factory.addStep(test_misc)
     solaris_sparc_deep_factory.addStep(compile_generic(name="Release-api", shellname="avmshell_api", args="--enable-shell --enable-api-versioning", upload="true"))
     solaris_sparc_deep_factory.addStep(test_generic(name="Release-api", shellname="avmshell_api", vmargs="", config="", scriptargs="versioning/"))
     solaris_sparc_deep_factory.addStep(test_generic(name="Release-Dgreedy", shellname="avmshell", vmargs="-Dgreedy", config="", scriptargs="--timeout=180 --random"))
     solaris_sparc_deep_factory.addStep(test_generic(name="Release_Verify", shellname="avmshell_sd", vmargs="", config="", scriptargs="--verify --timeout=300 --random"))
     solaris_sparc_deep_factory.addStep(util_process_clean)
     solaris_sparc_deep_builder = {
-                'name': "solaris-sparc-deep",
+                'name': "solaris-sparc-deep-argo",
                 'slavename': "asteamsol1",
                 'factory': solaris_sparc_deep_factory,
-                'builddir': './solaris-sparc-deep',
+                'builddir': './argo-solaris-sparc-deep',
     }
 
     ##################################
     #### builder for windows64-deep ####
     ##################################
     windows_64_deep_factory = factory.BuildFactory()
     windows_64_deep_factory.addStep(sync_clean)
     windows_64_deep_factory.addStep(sync_clone(url=HG_URL))
     windows_64_deep_factory.addStep(sync_update)
     windows_64_deep_factory.addStep(bb_slaveupdate(slave="windows64-deep"))
     windows_64_deep_factory.addStep(download_testmedia)
-    windows_64_deep_factory.addStep(test_generic(name="Debug", shellname="avmshell_d", vmargs="", config="x64-win-tvm-debug-deep", scriptargs=""))
-    windows_64_deep_factory.addStep(test_generic(name="DebugDebugger", shellname="avmshell_sd", vmargs="", config="x64-win-tvm-debugdebugger-deep", scriptargs=""))
+    windows_64_deep_factory.addStep(test_generic(name="Debug", shellname="avmshell_d_64", vmargs="", config="x64-win-tvm-debug-deep", scriptargs=""))
+    windows_64_deep_factory.addStep(test_generic(name="DebugDebugger", shellname="avmshell_sd_64", vmargs="", config="x64-win-tvm-debugdebugger-deep", scriptargs=""))
     windows_64_deep_factory.addStep(deep_release_esc)
     windows_64_deep_factory.addStep(test_generic(name="ReleaseDebugger-Dverifyall", shellname="avmshell_s_64", vmargs="-Dverifyall", config="", scriptargs=""))
     windows_64_deep_factory.addStep(test_generic(name="DebugDebugger-Dverifyall", shellname="avmshell_sd_64", vmargs="-Dverifyall", config="", scriptargs=""))
     windows_64_deep_factory.addStep( TestSuiteShellCommand(
                 command=['../all/run-acceptance-avmdiff-3264.sh', WithProperties('%s','revision')],
+                env={'branch': WithProperties('%s','branch')},
                 description='starting to run 32-64 differential vmtests...',
                 descriptionDone='finished 32-64 differential vmtests.',
                 name="Testsuite_Differential3264",
                 workdir="../repo/build/buildbot/slaves/scripts"
                 )
     )
     windows_64_deep_factory.addStep(test_misc)
     windows_64_deep_factory.addStep(test_generic(name="Release-Dgreedy", shellname="avmshell_64", vmargs="-Dgreedy", config="", scriptargs="--timeout=180 --random"))
     windows_64_deep_factory.addStep(test_generic(name="Release_Verify", shellname="avmshell_sd_64", vmargs="", config="", scriptargs="--verify --timeout=300 --random"))
     windows_64_deep_factory.addStep(util_process_clean)
     windows_64_deep_builder = {
-                'name': "windows64-deep",
+                'name': "windows64-deep-argo",
                 'slavename': "asteamwin11",
                 'factory': windows_64_deep_factory,
-                'builddir': './windows64-deep',
+                'builddir': './argo-windows64-deep',
     }
 
     ##################################
     #### builder for winmobile-emulator-deep ####
     ##################################
     winmobile_emulator_deep_factory = factory.BuildFactory()
     winmobile_emulator_deep_factory.addStep(sync_clean)
     winmobile_emulator_deep_factory.addStep(sync_clone(url=HG_URL))
@@ -1448,20 +1439,20 @@ class argo:
     winmobile_emulator_deep_factory.addStep(bb_slaveupdate(slave="winmobile-arm-deep"))
     winmobile_emulator_deep_factory.addStep(download_testmedia)
     winmobile_emulator_deep_factory.addStep(test_emulator_release_mobile_local)
     winmobile_emulator_deep_factory.addStep(test_emulator_release_interp_mobile_local)
     winmobile_emulator_deep_factory.addStep(test_emulator_release_interp_wordcode_mobile_local)
     winmobile_emulator_deep_factory.addStep(test_emulator_release_jit_mobile_local)
     winmobile_emulator_deep_factory.addStep(util_process_clean)
     winmobile_emulator_deep_builder = {
-                'name': "winmobile-emulator-deep",
+                'name': "winmobile-emulator-deep-argo",
                 'slavename': "asteamwin20",
                 'factory': winmobile_emulator_deep_factory,
-                'builddir': './winmobile-emulator-deep',
+                'builddir': './argo-winmobile-emulator-deep',
     }
 
     ##################################
     #### builder for linux-deep   ####
     ##################################
     linux_deep_factory = factory.BuildFactory()
     linux_deep_factory.addStep(sync_clean)
     linux_deep_factory.addStep(sync_clone(url=HG_URL))
@@ -1477,22 +1468,22 @@ class argo:
     linux_deep_factory.addStep(test_generic(name="Release-system-malloc", shellname="avmshell_sysmalloc", vmargs="", config="x86-lnx-tvm-release-use-system-malloc", scriptargs=""))
     linux_deep_factory.addStep(test_misc)
     linux_deep_factory.addStep(compile_generic(name="Release-api", shellname="avmshell_api", args="--enable-shell --enable-api-versioning", upload="true"))
     linux_deep_factory.addStep(test_generic(name="Release-api", shellname="avmshell_api", vmargs="", config="", scriptargs="versioning/"))
     linux_deep_factory.addStep(test_generic(name="Release-Dgreedy", shellname="avmshell", vmargs="-Dgreedy", config="", scriptargs="--timeout=180 --random"))
     linux_deep_factory.addStep(test_generic(name="Release_Verify", shellname="avmshell_sd", vmargs="", config="", scriptargs="--verify --timeout=300 --random"))
     linux_deep_factory.addStep(util_process_clean)
     linux_deep_builder = {
-                'name': "linux-deep",
+                'name': "linux-deep-argo",
                 'slavename': "asteamlin9",
                 'factory': linux_deep_factory,
-                'builddir': './linux-deep',
+                'builddir': './argo-linux-deep',
     }
-    """    
+
     
     builders = [
                 windows_compile_builder,
                 windows_64_compile_builder,
                 mac_intel_104_compile_builder,
                 mac_intel_105_compile_builder,
                 mac_intel_64_compile_builder,
                 mac_ppc_104a_compile_builder,
@@ -1530,11 +1521,27 @@ class argo:
                 mac_ppc_105a_test_builder,
                 mac_ppc_105b_test_builder,
                 mac_ppc_64_test_builder,
                 linux_test_builder,
                 linux_64_test_builder,
                 winmobile_emulator_test_builder,
                 solaris_sparc_test_builder,
 
+                windows_performance_builder,
+                mac_performance_builder,
+                mac_64_performance_builder,
+                mac_ppc_performance_builder,
+                linux_performance_builder,
+                winmobile_performance_builder,
+
+                windows_deep_builder,
+                windows_p3_deep_builder,
+                mac_ppc_deep_builder,
+                windows_64_deep_builder,
+                solaris_sparc_deep_builder,
+                winmobile_emulator_deep_builder,
+                linux_deep_builder,
+                windows_frr_builder
+
                 ]
 
 
--- a/build/buildbot/master/commonsteps.py
+++ b/build/buildbot/master/commonsteps.py
@@ -78,45 +78,49 @@ def startCompile(change):
 ############################
 
 def compile_generic(name, shellname, args, upload):
     # factory.addStep(compile_generic(name="Release", shellname="avmshell", args="--enable-shell", upload="false"))
     # upload: if true build will be uploaded to asteam, this is normaly done in the upload buildstep
     #         but is here for shells that are compiled in deep-testing
     return BuildShellCommand(
             command=['../all/compile-generic.sh', WithProperties('%s','revision'), '%s' % args, '%s' % shellname, '%s' % upload],
+            env={'branch': WithProperties('%s','branch')},
             description='starting %s build...' % name,
             descriptionDone='finished %s build' % name,
             name="Build_%s" % name,
             workdir="../repo/build/buildbot/slaves/scripts"
             )
 
 
 def test_generic(name, shellname, vmargs, config, scriptargs):
     # factory.addStep(test_generic("Release", "avmshell", "", "", ""))
     return TestSuiteShellCommand(
             command=['../all/run-acceptance-generic.sh', WithProperties('%s','revision'), '%s' % shellname, '%s' % vmargs, '%s' % config, '%s' % scriptargs],
+            env={'branch': WithProperties('%s','branch')},
             description='starting to run %s vmtests...' % name,
             descriptionDone='finished %s vmtests' % name,
             name="Testsuite_%s" % name,
             workdir="../repo/build/buildbot/slaves/scripts"
             )
     
 
 sync_clean = ShellCommand(
             command=["rm", "-Rf", "repo"],
+            env={'branch': WithProperties('%s','branch')},
             description='Remove the old repository...',
             descriptionDone='Finished Removing the old repository',
             name='Source_Clean',
             workdir="../",
             haltOnFailure="True")
 
 def sync_clone(url):
     return ShellCommand(
             command=["hg", "clone", url, "repo"],
+            env={'branch': WithProperties('%s','branch')},
             description='Cloning the source repository...',
             descriptionDone='Finished cloning the source repository',
             name='Source_Clone',
             workdir="../",
             haltOnFailure="True")
 
 
 sync_clone_sandbox = SandboxClone(
@@ -125,291 +129,329 @@ sync_clone_sandbox = SandboxClone(
             description='Cloning the source repository...',
             descriptionDone='Finished cloning the source repository',
             name='Source_Clone',
             workdir="../",
             haltOnFailure="True")
 
 sync_update = ShellCommand(
             command=["hg", "update", "--clean",  "--rev", WithProperties('%s','revision')],
+            env={'branch': WithProperties('%s','branch')},
             description='Updating the source repository...',
             descriptionDone='Finished updating the source repository',
             name='Source_Update',
             workdir="../repo",
             haltOnFailure="True")
 
 def bb_slaveupdate(slave):
     return ShellCommand(
             command=['cp','-R','repo/build/buildbot/slaves/%s/scripts' % slave, 'repo/build/buildbot/slaves/scripts'],
+            env={'branch': WithProperties('%s','branch')},
             workdir='../',
             description='Updating SLAVE buildscripts',
             name='BB_SLAVEUpdate',
             haltOnFailure="True"
             )
 
 bb_lockacquire = BuildShellCommand(
             command=['../all/lock-acquire.sh', WithProperties('%s','revision')],
+            env={'branch': WithProperties('%s','branch')},
             description='Acquiring machine lock...',
             descriptionDone='Acquired machine lock...',
             name="LockAcquire",
             workdir="../repo/build/buildbot/slaves/scripts")
 
 bb_lockrelease = BuildShellCommand(
             command=['../all/lock-release.sh', WithProperties('%s','revision')],
+            env={'branch': WithProperties('%s','branch')},
             description='Releasing machine lock...',
             descriptionDone='Released machine lock...',
             name="LockRelease",
             workdir="../repo/build/buildbot/slaves/scripts")
 
 compile_builtin = BuildShellCommand(
             command=['../all/build-builtinabc.sh', WithProperties('%s','revision')],
+            env={'branch': WithProperties('%s','branch')},
             description='starting to build builtin.abc..',
             descriptionDone='builtin.abc build',
             name="Compile_builtin.abc",
             workdir="../repo/build/buildbot/slaves/scripts")
 
 compile_buildcheck = BuildShellCheckCommand(
             command=['../all/build-check.sh', WithProperties('%s','revision')],
+            env={'branch': WithProperties('%s','branch')},
             description='starting build check...',
             descriptionDone='build check completed',
             name='Build_Check',
             workdir="../repo/build/buildbot/slaves/scripts")
 
 ## Local version runs a local script and not the common
 compile_buildcheck_local = BuildShellCheckCommand(
             command=['./build-check.sh', WithProperties('%s','revision')],
+            env={'branch': WithProperties('%s','branch')},
             description='starting build check...',
             descriptionDone='build check completed',
             name='Build_Check',
             workdir="../repo/build/buildbot/slaves/scripts")
 
 compile_testmedia = BuildShellCommand(
             command=['../all/build-acceptance-tests.sh', WithProperties('%s','revision')],
+            env={'branch': WithProperties('%s','branch')},
             description='starting to build test abcs...',
             descriptionDone='vm test abcs built.',
             name="Compile_AS_testcases",
             workdir="../repo/build/buildbot/slaves/scripts")
 
 download_testmedia = BuildShellCommand(
             command=['../all/download-acceptance-tests.sh', WithProperties('%s','revision')],
+            env={'branch': WithProperties('%s','branch')},
             description='starting to downloads test abcs...',
             descriptionDone='vm test abcs downloaded.',
             name="Download_AS_testcases",
             workdir="../repo/build/buildbot/slaves/scripts",
             haltOnFailure="True" )
 
 test_smoke = TestSuiteShellCommand(
             command=['../all/run-smoketests.sh', WithProperties('%s','revision')],
+            env={'branch': WithProperties('%s','branch')},
             description='starting to run smoke tests...',
             descriptionDone='finished smoke tests.',
             name="SmokeTest",
             workdir="../repo/build/buildbot/slaves/scripts")
 
 test_emulator_smoke_mobile = TestSuiteShellCommand(
             command=['../all/run-smoketests-arm-emulator.sh', WithProperties('%s','revision')],
+            env={'branch': WithProperties('%s','branch')},
             description='starting to run smoke tests...',
             descriptionDone='finished smoke tests.',
             name="SmokeTest",
             workdir="../repo/build/buildbot/slaves/scripts")
 
 test_emulator_release_mobile = TestSuiteShellCommand(
             command=['../all/run-acceptance-release-arm-emulator.sh', WithProperties('%s','revision')],
+            env={'branch': WithProperties('%s','branch')},
             description='starting to run release vmtests...',
             descriptionDone='finished release vmtests.',
             name="Testsuite_Release",
             workdir="../repo/build/buildbot/slaves/scripts")
 
 test_emulator_release_mobile_local = TestSuiteShellCommand(
             command=['./run-acceptance-release-arm-emulator.sh', WithProperties('%s','revision')],
+            env={'branch': WithProperties('%s','branch')},
             description='starting to run release vmtests...',
             descriptionDone='finished release vmtests.',
             name="Testsuite_Release",
             workdir="../repo/build/buildbot/slaves/scripts")
 
 test_emulator_release_interp_mobile = TestSuiteShellCommand(
             command=['../all/run-acceptance-release-interp-arm-emulator.sh', WithProperties('%s','revision')],
+            env={'branch': WithProperties('%s','branch')},
             description='starting to run -interp release vmtests...',
             descriptionDone='finished -interp release vmtests.',
             name="Testsuite_Release-interp",
             workdir="../repo/build/buildbot/slaves/scripts")
 
 test_emulator_release_interp_mobile_local = TestSuiteShellCommand(
             command=['./run-acceptance-release-interp-arm-emulator.sh', WithProperties('%s','revision')],
+            env={'branch': WithProperties('%s','branch')},
             description='starting to run -interp release vmtests...',
             descriptionDone='finished -interp release vmtests.',
             name="Testsuite_Release-interp",
             workdir="../repo/build/buildbot/slaves/scripts")
 
 test_emulator_release_interp_wordcode_mobile = TestSuiteShellCommand(
             command=['../all/run-acceptance-release-interp-wc-arm-emulator.sh', WithProperties('%s','revision')],
+            env={'branch': WithProperties('%s','branch')},
             description='starting to run -interp release-wordcode vmtests...',
             descriptionDone='finished -interp release-wordcode vmtests.',
             name="Testsuite_Release-wordcode-interp",
             workdir="../repo/build/buildbot/slaves/scripts")
 
 test_emulator_release_interp_wordcode_mobile_local = TestSuiteShellCommand(
             command=['./run-acceptance-release-interp-wc-arm-emulator.sh', WithProperties('%s','revision')],
+            env={'branch': WithProperties('%s','branch')},
             description='starting to run -interp release-wordcode vmtests...',
             descriptionDone='finished -interp release-wordcode vmtests.',
             name="Testsuite_Release-wordcode-interp",
             workdir="../repo/build/buildbot/slaves/scripts")
 
 test_emulator_release_jit_mobile = TestSuiteShellCommand(
             command=['../all/run-acceptance-release-jit-arm-emulator.sh', WithProperties('%s','revision')],
+            env={'branch': WithProperties('%s','branch')},
             description='starting vm tests with force jit release...',
             descriptionDone='finished vm tests with force jit release.',
             name="Testsuite_Release-jit",
             workdir="../repo/build/buildbot/slaves/scripts")
 
 test_emulator_release_jit_mobile_local = TestSuiteShellCommand(
             command=['./run-acceptance-release-jit-arm-emulator.sh', WithProperties('%s','revision')],
+            env={'branch': WithProperties('%s','branch')},
             description='starting vm tests with force jit release...',
             descriptionDone='finished vm tests with force jit release.',
             name="Testsuite_Release-jit",
             workdir="../repo/build/buildbot/slaves/scripts")
 
 test_selftest = TestSuiteShellCommand(
             command=['../all/run-selftest.sh', WithProperties('%s','revision')],
+            env={'branch': WithProperties('%s','branch')},
             description='starting selftest release...',
             descriptionDone='finished selftest release.',
             name="Testsuite_Selftest",
             workdir="../repo/build/buildbot/slaves/scripts")
 
 test_commandline = TestSuiteShellCommand(
             command=['../all/run-commandline-tests.sh', WithProperties('%s','revision')],
+            env={'branch': WithProperties('%s','branch')},
             description='starting commandline tests...',
             descriptionDone='finished commandline tests.',
             name="Testsuite_Commandline",
             workdir="../repo/build/buildbot/slaves/scripts")
 
 test_differential = TestSuiteShellCommand(
             command=['../all/run-acceptance-avmdiff.sh', WithProperties('%s','revision')],
+            env={'branch': WithProperties('%s','branch')},
             description='starting vm acceptance differential testing...',
             descriptionDone='finished vm acceptance differential testing.',
             name="Testsuite_Differential",
             workdir="../repo/build/buildbot/slaves/scripts")
 
 test_misc = TestSuiteShellCommand(
             command=['../all/run-misc-tests.sh', WithProperties('%s','revision')],
+            env={'branch': WithProperties('%s','branch')},
             description='starting to run misc tests...',
             descriptionDone='finished misc tests.',
             name="MiscTest",
             workdir="../repo/build/buildbot/slaves/scripts")
 
 util_upload_asteam = BuildShellCheckCommand(
             command=['../all/upload-asteam.sh', WithProperties('%s','revision')],
+            env={'branch': WithProperties('%s','branch')},
             description='Upload bits to ASTEAM...',
             descriptionDone='Upload to ASTEAM completed',
             name='Upload_ASTEAM',
             workdir="../repo/build/buildbot/slaves/scripts")
 
 ## Local version runs a local script and not the common
 util_upload_asteam_local = BuildShellCheckCommand(
             command=['./upload-asteam.sh', WithProperties('%s','revision')],
+            env={'branch': WithProperties('%s','branch')},
             description='Upload bits to ASTEAM...',
             descriptionDone='Upload to ASTEAM completed',
             name='Upload_ASTEAM',
             workdir="../repo/build/buildbot/slaves/scripts")
 
 util_upload_mozilla = BuildShellCheckCommand(
             command=['../all/upload-mozilla.sh', WithProperties('%s','revision')],
+            env={'branch': WithProperties('%s','branch')},
             description='Upload bits to MOZILLA...',
             descriptionDone='Upload to MOZILLA completed',
             name='Upload_MOZILLA',
             workdir="../repo/build/buildbot/slaves/scripts")
 
 ## Local version runs a local script and not the common
 util_upload_mozilla_local = BuildShellCheckCommand(
             command=['./upload-mozilla.sh', WithProperties('%s','revision')],
+            env={'branch': WithProperties('%s','branch')},
             description='Upload bits to MOZILLA...',
             descriptionDone='Upload to MOZILLA completed',
             name='Upload_MOZILLA',
             workdir="../repo/build/buildbot/slaves/scripts")
 
 util_process_clean = BuildShellCommand(
             command=['../all/util-process-clean.sh', WithProperties('%s','revision')],
+            env={'branch': WithProperties('%s','branch')},
             description='Zombie hunting...',
             descriptionDone='Zombie hunt completed',
             name='Util_ZombieKiller',
             workdir="../repo/build/buildbot/slaves/scripts",
             alwaysRun="True" )
 
 perf_prepare = BuildShellCommand(
             command=['./prepare.sh', WithProperties('%s','revision')],
+            env={'branch': WithProperties('%s','branch')},
             description='Preparing for performance run...',
             descriptionDone='Preparation complete...',
             name="Preparation",
             timeout=3600,
             workdir="../repo/build/buildbot/slaves/scripts")
 
 perf_release = PerfShellCommand(
             command=['../all/run-performance-release.sh', WithProperties('%s','revision')],
+            env={'branch': WithProperties('%s','branch')},
             description='starting release performance tests...',
             descriptionDone='finished release performance tests.',
             name='Release',
             timeout=3600,
             workdir="../repo/build/buildbot/slaves/scripts")
 
 perf_release_arm = PerfShellCommand(
             command=['../all/run-performance-release-arm.sh', WithProperties('%s','revision')],
+            env={'branch': WithProperties('%s','branch')},
             description='starting release performance tests...',
             descriptionDone='finished release performance tests.',
             name='Release',
             timeout=3600,
             workdir="../repo/build/buildbot/slaves/scripts")
 
 perf_release_interp = PerfShellCommand(
             command=['../all/run-performance-release-interp.sh', WithProperties('%s','revision')],
+            env={'branch': WithProperties('%s','branch')},
             description='starting release-interp performance tests...',
             descriptionDone='finished release-interp performance tests.',
             name='ReleaseInterp',
             timeout=3600,
             workdir="../repo/build/buildbot/slaves/scripts")
 
 perf_release_arm_interp = PerfShellCommand(
             command=['../all/run-performance-release-arm-interp.sh', WithProperties('%s','revision')],
+            env={'branch': WithProperties('%s','branch')},
             description='starting release-interp performance tests...',
             descriptionDone='finished release-interp performance tests.',
             name='ReleaseInterp',
             timeout=3600,
             workdir="../repo/build/buildbot/slaves/scripts")
 
 perf_release_jit = PerfShellCommand(
             command=['../all/run-performance-release-jit.sh', WithProperties('%s','revision')],
+            env={'branch': WithProperties('%s','branch')},
             description='starting release-jit performance tests...',
             descriptionDone='finished release-jit performance tests.',
             name='ReleaseJIT',
             timeout=3600,
             workdir="../repo/build/buildbot/slaves/scripts")
 
 perf_release_arm_jit = PerfShellCommand(
             command=['../all/run-performance-release-arm-jit.sh', WithProperties('%s','revision')],
+            env={'branch': WithProperties('%s','branch')},
             description='starting release-jit performance tests...',
             descriptionDone='finished release-jit performance tests.',
             name='ReleaseJIT',
             timeout=3600,
             workdir="../repo/build/buildbot/slaves/scripts")
 
 perf_release_vprof = PerfShellCommand(
             command=['../all/run-performance-release-vprof.sh', WithProperties('%s','revision')],
+            env={'branch': WithProperties('%s','branch')},
             description='starting release-vprof performance tests...',
             descriptionDone='finished release-vprof performance tests.',
             name='Release-vprof',
             timeout=3600,
             workdir="../repo/build/buildbot/slaves/scripts")
 
 
 deep_codecoverage = BuildShellCommand(
             command=['./run-code-coverage.sh', WithProperties('%s','revision')],
+            env={'branch': WithProperties('%s','branch')},
             description='starting code coverage...',
             descriptionDone='finished code coverage',
             name='CodeCoverage',
             timeout=3600,
             workdir="../repo/build/buildbot/slaves/scripts")
 
 deep_release_esc = BuildShellCommand(
             command=['../all/run-release-esc.sh', WithProperties('%s','revision')],
+            env={'branch': WithProperties('%s','branch')},
             description='starting release-esc tests...',
             descriptionDone='finished release-esc tests.',
             name='Release-esc',
             workdir="../repo/build/buildbot/slaves/scripts")
-            
-
+            
+
--- a/build/buildbot/master/custom/buildbot_ext/scheduler.py
+++ b/build/buildbot/master/custom/buildbot_ext/scheduler.py
@@ -79,16 +79,71 @@ class Scheduler(scheduler.Scheduler):
                 buildset_builderNames.append(builder_name)
 
         # create a BuildSet, submit it to the BuildMaster
         bs = buildset.BuildSet(buildset_builderNames,
                                SourceStamp(changes=changes),
                                properties=self.properties)
         self.submitBuildSet(bs)
 
+class PhaseTwoScheduler(Scheduler):
+    changeDir = ""
+    def __init__(self, name, branch, treeStableTimer, builderNames,
+             fileIsImportant=None, properties={}, categories=None, builderDependencies=[], changeDir=".", priority=1):
+
+        Scheduler.__init__(self, name, branch, treeStableTimer, builderNames, 
+            fileIsImportant, properties, categories)
+        # - each builder must have a dependent that is in the upstream builder
+        # - multiple builders can be dependent on the same upstream builder
+        self.builderDependencies = builderDependencies
+        self.changeDir = changeDir
+        self.priority = priority
+
+    def fireTimer(self):
+        # clear out our state
+        self.timer = None
+        self.nextBuildTime = None
+        changes = self.unimportantChanges + self.importantChanges
+        self.importantChanges = []
+        self.unimportantChanges = []
+
+        buildset_builderNames = []
+        # There may be multiple build requests, only process the very last one (latest)
+        change = changes[-1]
+        # Only add builders that are:
+        #    1) dependent builder is listed in the change request, this means that the upstream builder was online
+        #    2) builder is online
+        f = open("%s/change-%s.%s" % (self.changeDir, change.revision, self.priority))
+        phase1Builders = []
+        for line in f.readlines():
+            if line.startswith("builders:"):
+                phase1Builders = line[line.find(":")+1:].strip().split()
+                break
+            
+        # builders is a list of builders that built the request in Phase1
+        for p1Builder in phase1Builders:
+            # Get the depenent builder
+            for dependent in self.builderDependencies:
+                if p1Builder == dependent[1]:
+                    p2Builder = dependent[0]
+                    break
+            
+            # See if the builder is online
+            # Get a builder from the BotMaster:
+            builder = self.parent.botmaster.builders.get(p2Builder)
+            # Add the builder to the set if it is idle (not building and not offline)
+            if builder.builder_status.getState()[0] == 'idle':
+                buildset_builderNames.append(p2Builder)
+
+        # create a BuildSet, submit it to the BuildMaster
+        bs = buildset.BuildSet(buildset_builderNames,
+                               SourceStamp(changes=changes),
+                               properties=self.properties)
+        self.submitBuildSet(bs)
+
 class AnyBranchScheduler(scheduler.AnyBranchScheduler):
     '''The buildbot.scheduler.AnyBranchScheduler is subclassed to use our modified
        Scheduler (above) with the buildsets additions'''
     schedulerFactory = Scheduler
     
 
 class BuilderDependent(scheduler.Dependent):
     """This scheduler runs some set of 'downstream' builds when the
--- a/build/buildbot/master/custom/buildbot_ext/status/client.py
+++ b/build/buildbot/master/custom/buildbot_ext/status/client.py
@@ -16,21 +16,22 @@ from buildbot.status.client import Statu
 
 # TODO: BuilderGroup should be moved out of aggregate... someday
 from aggregateMailNotifier import BuilderGroup as BG
 
 class BuilderGroup(BG):
     def __init__(self):
         BG.__init__(self)
         self.failures = False
-        
+        self.onlineslaves = []
         
     def reset(self):
         BG.reset(self)
         self.failures = False
+        self.onlineslaves = []
 
 class StatusClientPerspective(SCP):
     passBuilderGroups = []
     
     def setPassBuilderGroups(self, passBuilderGroups):
         self.passBuilderGroups = passBuilderGroups
     
     def getSourceStampDict(self, build):
@@ -226,8 +227,101 @@ class PBListener(base.StatusReceiverMult
         assert interface == pb.IPerspective
         p = StatusClientPerspective(self.status)
         p.setPassBuilderGroups(self.passBuilderGroups)
             
         
         p.attached(mind) # perhaps .callLater(0) ?
         return (pb.IPerspective, p,
                 lambda p=p,mind=mind: p.detached(mind))
+
+
+class PhaseOneListener(base.StatusReceiverMultiService):
+    compare_attrs = ["denotesPassSchedulerGroups", "changeDir", "priority"]
+    
+    def __init__(self, denotesPassSchedulerGroups=None, changeDir=None, priority=1):
+        base.StatusReceiverMultiService.__init__(self)
+        self.passBuilderGroups = []
+        if denotesPassSchedulerGroups:
+            self.setupDenotesPassSchedulerGroup(denotesPassSchedulerGroups)
+        self.changeDir = changeDir
+        self.priority = priority
+        
+    def setupDenotesPassSchedulerGroup(self, schedulerGroups):
+        for schedulerGroup in schedulerGroups:
+            group = BuilderGroup()
+            if isinstance(schedulerGroup, list):    
+                for scheduler in schedulerGroup:
+                    group.addBuilderNames(scheduler.listBuilderNames())
+            else:
+                group.addBuilderNames(schedulerGroup.listBuilderNames())
+            self.passBuilderGroups.append(group)
+            
+    def setServiceParent(self, parent):
+        """
+        @type  parent: L{buildbot.master.BuildMaster}
+        """
+        base.StatusReceiverMultiService.setServiceParent(self, parent)
+        self.setup()
+
+    def setup(self):
+        self.status = self.parent.getStatus()
+        self.status.subscribe(self)
+    
+    def builderAdded(self, name, builder):
+        return self
+
+    def setPassBuilderGroups(self, passBuilderGroups):
+        self.passBuilderGroups = passBuilderGroups
+
+    def buildFinished(self, name, build, results):
+        
+        # TODO: most of this code is copied from aggregateMailNotifier ... need to consolidate code
+        if self.passBuilderGroups:
+            currentBuilder = build.getBuilder()
+            currentBuilderName = currentBuilder.getName()
+            revision = build.getSourceStamp().revision
+            
+            for builderGroup in self.passBuilderGroups:
+                if builderGroup.containsBuilder(currentBuilderName):
+                    builderGroup.onlineslaves.append(currentBuilderName)
+                    # if this is the first run, set the currentBuild when first called
+                    if builderGroup.currentBuild == 0:
+                        builderGroup.currentBuild = revision
+                    if builderGroup.currentBuild == revision:
+                        if results != 0:
+                            builderGroup.failures = True
+                        # Are there any builders left?
+                        for builder in builderGroup.builderNames:
+                            # The current builder will always have a building state,
+                            # so do not check state if current builder
+                            if builder != currentBuilderName:
+                                state = self.status.getBuilder(builder).getState()[0]
+                                if state == "building":     # if any are building we can return
+                                    return
+                        # Nothing is building - should we send out a pass notification?
+                        if not builderGroup.failures:
+                            # All builders passed, trigger a request
+                            self._writeBuildRequest(build, builderGroup.onlineslaves)
+                        builderGroup.reset()
+                        return
+                    else:   # builderGroup.currentBuild != revision
+                        # new revision - reset BuilderGroup just in case
+                        builderGroup.reset()
+                        builderGroup.currentBuild = revision
+                    break
+                        
+    def _writeBuildRequest(self, build, onlineslaves):
+
+        for change in build.getSourceStamp().changes:
+            out  = "changeset:   %s\n" % (change.revision)
+            out += "user:        %s\n" % (change.who)
+            out += "date:        %s\n" % (change.getTime())
+            out += "files:       %s\n" % (' '.join(change.files))
+            out += "builders:    %s\n" % (' '.join(onlineslaves))
+            out += "description:\n%s\n" % (change.comments)
+            
+            filename = "change-%s.%s" % (change.revision,self.priority)
+            changefile = open("%s/%s" % (self.changeDir,filename), "w")
+            changefile.write(out)
+            changefile.close()
+
+        
--- a/build/buildbot/master/master.cfg
+++ b/build/buildbot/master/master.cfg
@@ -123,84 +123,97 @@ c['schedulers'].extend(sandbox.scheduler
 
 ####### STATUS TARGETS
 c['status'] = []
 
 from buildbot.status import html
 c['status'].append(html.WebStatus(WEBPORT_PUB, allowForce=False))
 c['status'].append(html.WebStatus(http_port="tcp:%s:interface=%s" % (WEBPORT_INT, MASTER_IP), allowForce=True))
 
+
 from custom.buildbot_ext.status import custommail
-c['status'].append(custommail.CustomMail(branch="tamarin-redux-argo",
+c['status'].append(custommail.CustomMail(branch=argo.BRANCH,
             fromaddr="buildbot@adobe.com",
             extraRecipients=["VMBuildbotNotifications@adobe.com"], 
             relayhost='inner-relay-1.corp.adobe.com',
             mode='failing',
             sendToInterestedUsers=True,
             lookup="",
             schedulerGroups = [argo.compile, argo.smoke, argo.test],
             schedulerGroupsSendFirst = 1
             ))
             
 # Also call the custommail MailNotifier when builds pass (mode=all)
 # This is done so that any buildsteps were failing but are now passing get cleared
 # in the buildinfo.pck file.  There should be NO receipients for this (unless someone wants all build emails)
 # With no extraRecipients defined, and sendToInterestedUsers=False, this doesn't actually send
 # any mail to anybody.
 # TODO: Move this out of the mail code and into its own module
-c['status'].append(custommail.CustomMail(branch="tamarin-redux-argo",
+c['status'].append(custommail.CustomMail(branch=argo.BRANCH,
             fromaddr="buildbot@adobe.com",
             extraRecipients=[], 
             relayhost='inner-relay-1.corp.adobe.com',
             mode='all',
             sendToInterestedUsers=False,
             lookup=""))
 
 
 
 
-c['status'].append(custommail.CustomMail(branch="tamarin-redux",
+c['status'].append(custommail.CustomMail(branch=tamarinredux.BRANCH,
             fromaddr="buildbot@adobe.com",
             extraRecipients=["VMBuildbotNotifications@adobe.com"], 
             relayhost='inner-relay-1.corp.adobe.com',
             mode='failing',
             sendToInterestedUsers=True,
             lookup="",
             schedulerGroups = [tamarinredux.compile, tamarinredux.smoke, tamarinredux.test, tamarinredux.performance, tamarinredux.deep],
             schedulerGroupsSendFirst = 1
             ))
             
 # Also call the custommail MailNotifier when builds pass (mode=all)
 # This is done so that any buildsteps were failing but are now passing get cleared
 # in the buildinfo.pck file.  There should be NO receipients for this (unless someone wants all build emails)
 # With no extraRecipients defined, and sendToInterestedUsers=False, this doesn't actually send
 # any mail to anybody.
 # TODO: Move this out of the mail code and into its own module
-c['status'].append(custommail.CustomMail(branch="tamarin-redux",
+c['status'].append(custommail.CustomMail(branch=tamarinredux.BRANCH,
             fromaddr="buildbot@adobe.com",
             extraRecipients=[], 
             relayhost='inner-relay-1.corp.adobe.com',
             mode='all',
             sendToInterestedUsers=False,
             lookup=""))
 
 
 # For sandbox builds only notify user
-c['status'].append(custommail.CustomMail(branch="sandbox",
+c['status'].append(custommail.CustomMail(branch=sandbox.BRANCH,
             fromaddr="buildbot@adobe.com",
             relayhost='inner-relay-1.corp.adobe.com',
             mode='failing',
             sendToInterestedUsers=True,
             lookup="",
             schedulerGroups = [sandbox.compile, sandbox.smoke, sandbox.test],
             schedulerGroupsSendFirst = 1
             ))
 
 
 # PBListener is used for the jabberbot client
 from custom.buildbot_ext.status.client import PBListener
 c['status'].append(PBListener(8755,'asteam','asteam', [tamarinredux.deep]))
 
+
+# PBListener is used for the jabberbot client
+from custom.buildbot_ext.status.client import PhaseOneListener
+
+# Setup a listener that will generate change requests for the DEEP phase
+c['status'].append(PhaseOneListener([argo.test], changeDir="changes/deep/pending", priority=1))
+c['status'].append(PhaseOneListener([tamarinredux.test], changeDir="changes/deep/pending", priority=2))
+
+# Setup a listener that will generate change requests for the PERFORMANCE phase
+c['status'].append(PhaseOneListener([argo.test], changeDir="changes/perf/pending", priority=1))
+c['status'].append(PhaseOneListener([tamarinredux.test], changeDir="changes/perf/pending", priority=2))
+
 ####### PROJECT IDENTITY
 c['projectName'] = "Tamarin"
 c['projectURL'] = "http://www.mozilla.org/projects/tamarin/"
 c['buildbotURL'] = "http://tamarin-builds.mozilla.org/tamarin-redux/"
 
--- a/build/buildbot/master/public_html/announce.html
+++ b/build/buildbot/master/public_html/announce.html
@@ -41,22 +41,21 @@
 <center>
     <table width="100%" valign="top" bgcolor="#efefef" style="border-top-left-radius: 10px; -webkit-border-top-left-radius: 40px;  -webkit-border-top-right-radius: 40px;  -webkit-border-bottom-left-radius: 40px;  -webkit-border-bottom-right-radius: 40px; ">
         <tr>
             <td width="23%">
 <!--                <iframe src="left.html"/> -->
 
                 <table valign="top" width="100%">
                     <tr><td style="text-align: right;"><b>7d
-                    summary:</b></td><td><a href="analytics/status.html">interactive applet</a></td></tr>
+                    summary:</b></td><td><a target="_blank" href="analytics/status.html">interactive applet</a></td></tr>
                     <tr>
                     <td colspan="2" align="center">
-                        <a target="_blank"
-                    href="analytics/buildbotstatus.png"
-                    class="highslide" onclick="hs.expand(this);">
+                        <a href="analytics/buildbotstatus.png"
+                    class="highslide" onclick="return hs.expand(this);">
                         <img src="analytics/buildbotstatus-tn.png"/>
                         </a></td>
                     </tr>
                     <tr>
                         <td style="text-align: right;">
                             <b>Builds:</b>
                         </td>
                         <td>
@@ -108,16 +107,18 @@
                         var smoke = "builder=windows-smoke&builder=windows64-smoke&builder=mac-intel-10.4-smoke&builder=mac-intel-10.5-smoke&builder=mac64-intel-smoke&builder=mac-ppc-10.4a-smoke&builder=mac-ppc-10.4b-smoke&builder=mac-ppc-10.5a-smoke&builder=mac-ppc-10.5b-smoke&builder=mac64-ppc-smoke&builder=linux-smoke&builder=linux64-smoke&builder=winmobile-emulator-smoke&builder=solaris-sparc-smoke"
                         var test = "builder=windows-test&builder=windows64-test&builder=mac-intel-10.4-test&builder=mac-intel-10.5-test&builder=mac64-intel-test&builder=mac-ppc-10.4a-test&builder=mac-ppc-10.4b-test&builder=mac-ppc-10.5a-test&builder=mac-ppc-10.5b-test&builder=mac64-ppc-test&builder=linux-test&builder=linux64-test&builder=winmobile-emulator-test&builder=solaris-sparc-test"
                         var performance = "builder=windows-performance&builder=mac-performance&builder=mac64-performance&builder=mac-ppc-performance&builder=linux-performance&builder=winmobile-performance"
                         var deep = "builder=windows-deep&builder=windows-p3-deep&builder=mac-ppc-deep&builder=windows64-deep&builder=solaris-sparc-deep&builder=winmobile-emulator-deep&builder=linux-deep&builder=windows-frr"
 
                         var compile_argo = "builder=windows-compile-argo&builder=windows64-compile-argo&builder=mac-intel-10.4-compile-argo&builder=mac-intel-10.5-compile-argo&builder=mac64-intel-compile-argo&builder=mac-ppc-10.4a-compile-argo&builder=mac-ppc-10.4b-compile-argo&builder=mac-ppc-10.5a-compile-argo&builder=mac-ppc-10.5b-compile-argo&builder=mac64-ppc-compile-argo&builder=linux-compile-argo&builder=linux64-compile-argo&builder=winmobile-emulator-compile-argo&builder=solaris-sparc-compile-argo"
                         var smoke_argo = "builder=windows-smoke-argo&builder=windows64-smoke-argo&builder=mac-intel-10.4-smoke-argo&builder=mac-intel-10.5-smoke-argo&builder=mac64-intel-smoke-argo&builder=mac-ppc-10.4a-smoke-argo&builder=mac-ppc-10.4b-smoke-argo&builder=mac-ppc-10.5a-smoke-argo&builder=mac-ppc-10.5b-smoke-argo&builder=mac64-ppc-smoke-argo&builder=linux-smoke-argo&builder=linux64-smoke-argo&builder=winmobile-emulator-smoke-argo&builder=solaris-sparc-smoke-argo"
                         var test_argo = "builder=windows-test-argo&builder=windows64-test-argo&builder=mac-intel-10.4-test-argo&builder=mac-intel-10.5-test-argo&builder=mac64-intel-test-argo&builder=mac-ppc-10.4a-test-argo&builder=mac-ppc-10.4b-test-argo&builder=mac-ppc-10.5a-test-argo&builder=mac-ppc-10.5b-test-argo&builder=mac64-ppc-test-argo&builder=linux-test-argo&builder=linux64-test-argo&builder=winmobile-emulator-test-argo&builder=solaris-sparc-test-argo"
+                        var performance_argo = "builder=windows-performance-argo&builder=mac-performance-argo&builder=mac64-performance-argo&builder=mac-ppc-performance-argo&builder=linux-performance-argo&builder=winmobile-performance-argo"
+                        var deep_argo = "builder=windows-deep-argo&builder=windows-p3-deep-argo&builder=mac-ppc-deep-argo&builder=windows64-deep-argo&builder=solaris-sparc-deep-argo&builder=winmobile-emulator-deep-argo&builder=linux-deep-argo&builder=windows-frr-argo"
 
                         var compile_sandbox = "builder=windows-compile-sandbox&builder=windows64-compile-sandbox&builder=mac-intel-10.4-compile-sandbox&builder=mac-intel-10.5-compile-sandbox&builder=mac64-intel-compile-sandbox&builder=mac-ppc-10.4a-compile-sandbox&builder=mac-ppc-10.4b-compile-sandbox&builder=mac-ppc-10.5a-compile-sandbox&builder=mac-ppc-10.5b-compile-sandbox&builder=mac64-ppc-compile-sandbox&builder=linux-compile-sandbox&builder=linux64-compile-sandbox&builder=winmobile-emulator-compile-sandbox&builder=solaris-sparc-compile-sandbox"
                         var smoke_sandbox = "builder=windows-smoke-sandbox&builder=windows64-smoke-sandbox&builder=mac-intel-10.4-smoke-sandbox&builder=mac-intel-10.5-smoke-sandbox&builder=mac64-intel-smoke-sandbox&builder=mac-ppc-10.4a-smoke-sandbox&builder=mac-ppc-10.4b-smoke-sandbox&builder=mac-ppc-10.5a-smoke-sandbox&builder=mac-ppc-10.5b-smoke-sandbox&builder=mac64-ppc-smoke-sandbox&builder=linux-smoke-sandbox&builder=linux64-smoke-sandbox&builder=winmobile-emulator-smoke-sandbox&builder=solaris-sparc-smoke-sandbox"
                         var test_sandbox = "builder=windows-test-sandbox&builder=windows64-test-sandbox&builder=mac-intel-10.4-test-sandbox&builder=mac-intel-10.5-test-sandbox&builder=mac64-intel-test-sandbox&builder=mac-ppc-10.4a-test-sandbox&builder=mac-ppc-10.4b-test-sandbox&builder=mac-ppc-10.5a-test-sandbox&builder=mac-ppc-10.5b-test-sandbox&builder=mac64-ppc-test-sandbox&builder=linux-test-sandbox&builder=linux64-test-sandbox&builder=winmobile-emulator-test-sandbox&builder=solaris-sparc-test-sandbox"
 
                         var bar = "./horizontal_one_box_per_builder"
                         var waterfall = "./waterfall"
                         var status_url = "http://tamarin-builds.mozilla.org/build_trigger/isactive.cfm?builder="
@@ -143,16 +144,20 @@
                         DisplayBar(performance, "Performance", "performance");
                         DisplayBar(deep, "Deep-Test", "deep");
                         
                         DisplayHeader("Argo Build Phase 1");
                         DisplayBar(compile_argo, "Compile", "compile-argo");
                         DisplayBar(smoke_argo, "Smoke", "smoke-argo");
                         DisplayBar(test_argo, "Test", "test-argo");
                         
+                        DisplayHeader("Argo Build Phase 2");
+                        DisplayBar(performance_argo, "Performance", "performance-argo");
+                        DisplayBar(deep_argo, "Deep-Test", "deep-argo");
+                        
                         DisplayHeader("Sandbox Build");
                         DisplayBar(compile_sandbox, "Sandbox&nbsp;Compile", "compile-sandbox");
                         DisplayBar(smoke_sandbox, "Sandbox&nbsp;Smoke", "smoke-sandbox");
                         DisplayBar(test_sandbox, "Sandbox&nbsp;Test", "test-sandbox");
                         
                     </script>
                     
                 </table>
--- a/build/buildbot/master/sandbox.py
+++ b/build/buildbot/master/sandbox.py
@@ -41,23 +41,26 @@ from buildbot.process import factory
 from buildbot.steps.source import Mercurial
 from buildbot.steps.shell import *
 from custom.buildbot_ext.steps.shellAddons import *
 from buildbot.steps.trigger import Trigger
 
 from commonsteps import *
 
 class sandbox:
+    
+    BRANCH = "sandbox"
+    
     ####### SCHEDULERS
     from buildbot.scheduler import *
     # custom.buildbot_ext.scheduler import MUST happen after importing buildbot.scheduler
     from custom.buildbot_ext.scheduler import *
     
     #### SANDBOX
-    compile = Scheduler(name="compile-sandbox", branch="sandbox", treeStableTimer=30,
+    compile = Scheduler(name="compile-sandbox", branch=BRANCH, treeStableTimer=30,
                      builderNames=["windows-compile-sandbox", "windows64-compile-sandbox",
                                    "mac-intel-10.4-compile-sandbox", "mac-intel-10.5-compile-sandbox", "mac64-intel-compile-sandbox",
                                    "mac-ppc-10.4a-compile-sandbox", "mac-ppc-10.4b-compile-sandbox", 
                                    "mac-ppc-10.5a-compile-sandbox", "mac-ppc-10.5b-compile-sandbox", 
                                    "mac64-ppc-compile-sandbox",
                                    "linux-compile-sandbox", "linux64-compile-sandbox",
                                    "winmobile-emulator-compile-sandbox",
                                    "solaris-sparc-compile-sandbox",
@@ -139,30 +142,24 @@ class sandbox:
     sb_windows_compile_factory.addStep(compile_generic(name="Release-wordcode", shellname="avmshell_wordcode", args="--enable-shell --enable-wordcode-interp", upload="false"))
     sb_windows_compile_factory.addStep(compile_generic(name="Debug", shellname="avmshell_d", args="--enable-shell --enable-debug", upload="false"))
     sb_windows_compile_factory.addStep(compile_generic(name="ReleaseDebugger", shellname="avmshell_s", args="--enable-shell --enable-debugger", upload="false"))
     sb_windows_compile_factory.addStep(compile_generic(name="DebugDebugger", shellname="avmshell_sd", args="--enable-shell --enable-debug --enable-debugger", upload="false"))
     sb_windows_compile_factory.addStep(compile_generic(name="Release_vprof", shellname="avmshell-vprof", args="--enable-shell --enable-perfm", upload="false"))
     sb_windows_compile_factory.addStep(compile_generic(name="Selftest", shellname="avmshell_test", args="--enable-shell --enable-selftest", upload="false"))
     sb_windows_compile_factory.addStep(BuildShellCommand(
                 command=['../all/file-check.py', '../../../../../repo'],
+                env={'branch': WithProperties('%s','branch')},
                 description='running file-check against source...',
                 descriptionDone='finished file-check.',
                 name="FileCheck",
                 workdir="../repo/build/buildbot/slaves/scripts")
     )
     sb_windows_compile_factory.addStep(compile_buildcheck)
     sb_windows_compile_factory.addStep(util_upload_asteam)
-    #sb_windows_compile_factory.addStep(BuildShellCommand(
-    #            command=['./build-release-sizereport.sh',WithProperties('%s','revision')],
-    #            description='starting win release-sizereport build...',
-    #            descriptionDone='finished win release-sizereport build.',
-    #            name='Build_Release_sizereport',
-    #            workdir="../repo/build/buildbot/slaves/scripts")
-    #)
 
 
     sb_windows_compile_builder = {
                 'name': "windows-compile-sandbox",
                 'slavename': "asteamwin2",
                 'factory': sb_windows_compile_factory,
                 'builddir': './sandbox-windows-compile',
     }
@@ -389,16 +386,17 @@ class sandbox:
     sb_linux_compile_factory.addStep(compile_generic(name="Release-wordcode", shellname="avmshell_wordcode", args="--enable-shell --enable-wordcode-interp", upload="false"))
     sb_linux_compile_factory.addStep(compile_generic(name="Debug", shellname="avmshell_d", args="--enable-shell --enable-debug", upload="false"))
     sb_linux_compile_factory.addStep(compile_generic(name="ReleaseDebugger", shellname="avmshell_s", args="--enable-shell --enable-debugger", upload="false"))
     sb_linux_compile_factory.addStep(compile_generic(name="DebugDebugger", shellname="avmshell_sd", args="--enable-shell --enable-debug --enable-debugger", upload="false"))
     sb_linux_compile_factory.addStep(compile_generic(name="Release_vprof", shellname="avmshell-vprof", args="--enable-shell --enable-perfm", upload="false"))
     sb_linux_compile_factory.addStep(compile_generic(name="Selftest", shellname="avmshell_test", args="--enable-shell --enable-selftest", upload="false"))
     sb_linux_compile_factory.addStep(BuildShellCommand(
                 command=['./build-release-cov.sh', WithProperties('%s','revision')],
+                env={'branch': WithProperties('%s','branch')},
                 description='starting linux code coverage release build...',
                 descriptionDone='finished linux code coverage release build.',
                 name="Build_Release_cov",
                 workdir="../repo/build/buildbot/slaves/scripts")
     )
     sb_linux_compile_factory.addStep(compile_buildcheck_local)
     sb_linux_compile_factory.addStep(util_upload_asteam_local)
 
@@ -447,23 +445,16 @@ class sandbox:
     sb_winmobile_emulator_compile_factory.addStep(bb_slaveupdate(slave="winmobile-arm"))
     sb_winmobile_emulator_compile_factory.addStep(compile_builtin)
     sb_winmobile_emulator_compile_factory.addStep(compile_generic(name="ReleaseARM", shellname="avmshell_arm", args="--enable-shell --target=arm-windows", upload="false"))
     sb_winmobile_emulator_compile_factory.addStep(compile_generic(name="Release-wordcode-ARM", shellname="avmshell_wordcode_arm", args="--enable-shell --enable-wordcode-interp --target=arm-windows", upload="false"))
     sb_winmobile_emulator_compile_factory.addStep(compile_generic(name="Release-fpu-ARM", shellname="avmshell_fpu_arm", args="--enable-shell --enable-arm-fpu --target=arm-windows", upload="false"))
     sb_winmobile_emulator_compile_factory.addStep(compile_generic(name="DebugARM", shellname="avmshell_arm_d", args="--enable-shell --enable-debug --target=arm-windows", upload="false"))
     sb_winmobile_emulator_compile_factory.addStep(compile_buildcheck_local)
     sb_winmobile_emulator_compile_factory.addStep(util_upload_asteam_local)
-    #sb_winmobile_emulator_compile_factory.addStep(BuildShellCommand(
-    #            command=['./build-release-mobile-pocketpc-arm-sizereport.sh', WithProperties('%s','revision')],
-    #            description='starting to run sizereport...',
-    #            descriptionDone='finished sizereport.',
-    #            name="Build_Release_sizereport",
-    #            workdir="../repo/build/buildbot/slaves/scripts")
-    #)
 
     sb_winmobile_emulator_compile_builder = {
                 'name': "winmobile-emulator-compile-sandbox",
                 'slavename': "asteamwin19",
                 'factory': sb_winmobile_emulator_compile_factory,
                 'builddir': './sandbox-winmobile-emulator-compile',
     }
 
@@ -957,16 +948,17 @@ class sandbox:
     sb_linux_test_factory.addStep(test_generic(name="Release-wordcode-interp", shellname="avmshell_wordcode", vmargs="-Dinterp", config="", scriptargs=""))
     sb_linux_test_factory.addStep(test_generic(name="Release-jit", shellname="avmshell", vmargs="-Ojit", config="", scriptargs=""))
     sb_linux_test_factory.addStep(test_generic(name="ReleaseDebugger", shellname="avmshell_s", vmargs="", config="", scriptargs=""))
     sb_linux_test_factory.addStep(test_generic(name="Debug", shellname="avmshell_d", vmargs="", config="", scriptargs=""))
     sb_linux_test_factory.addStep(test_generic(name="DebugDebugger", shellname="avmshell_sd", vmargs="", config="", scriptargs=""))
     sb_linux_test_factory.addStep(test_differential)
     sb_linux_test_factory.addStep(TestSuiteShellCommand(
                 command=['./run-tests-release-cov.sh', WithProperties('%s','revision')],
+                env={'branch': WithProperties('%s','branch')},
                 description='starting to run release code coverage vmtests...',
                 descriptionDone='finished release code coverage vmtests.',
                 name="Testsuite_Release-cov",
                 workdir="../repo/build/buildbot/slaves/scripts")
     )
     sb_linux_test_factory.addStep(util_process_clean)
 
     sb_linux_test_builder = {
--- a/build/buildbot/master/tamarinredux.py
+++ b/build/buildbot/master/tamarinredux.py
@@ -43,23 +43,24 @@ from buildbot.steps.shell import *
 from custom.buildbot_ext.steps.shellAddons import *
 from buildbot.steps.trigger import Trigger
 
 from commonsteps import *
 
 class tamarinredux:
     
     HG_URL = "http://asteam.macromedia.com/hg/tamarin-redux/"
+    BRANCH = "tamarin-redux"
     
     ####### SCHEDULERS
     from buildbot.scheduler import *
     # custom.buildbot_ext.scheduler import MUST happen after importing buildbot.scheduler
     from custom.buildbot_ext.scheduler import *
 
-    compile = Scheduler(name="compile", branch="tamarin-redux", treeStableTimer=30, fileIsImportant=startCompile,
+    compile = Scheduler(name="compile", branch=BRANCH, treeStableTimer=30, fileIsImportant=startCompile,
                      builderNames=["windows-compile", "windows64-compile",
                                    "mac-intel-10.4-compile", "mac-intel-10.5-compile", "mac64-intel-compile",
                                    "mac-ppc-10.4a-compile", "mac-ppc-10.4b-compile", 
                                    "mac-ppc-10.5a-compile", "mac-ppc-10.5b-compile", 
                                    "mac64-ppc-compile",
                                    "linux-compile", "linux64-compile",
                                    "winmobile-emulator-compile",
                                    "solaris-sparc-compile"])
@@ -111,32 +112,34 @@ class tamarinredux:
                                   ["mac-ppc-10.5b-test", "mac-ppc-10.5b-smoke"],
                                   ["mac64-ppc-test", "mac64-ppc-smoke"],
                                   ["linux-test", "linux-smoke"],
                                   ["linux64-test", "linux64-smoke"],
                                   ["winmobile-emulator-test", "winmobile-emulator-smoke"],
                                   ["solaris-sparc-test", "solaris-sparc-smoke"],
                                  ])
 
-    performance = BuilderDependent(name="performance",upstream=test, callbackInterval=60, fileIsImportant=startPerformanceRun,
+    performance = PhaseTwoScheduler(name="performance", branch="%s-perf" % BRANCH, treeStableTimer=30, 
+                    fileIsImportant=startPerformanceRun, priority=2, changeDir="changes/perf/processed",
                     builderNames=["windows-performance",
                                    "mac-performance", "mac64-performance",
                                    "mac-ppc-performance",
                                    "linux-performance",
                                    "winmobile-performance"],
                     builderDependencies=[
                                   ["windows-performance", "windows-test"], 
                                   ["mac-performance", "mac-intel-10.5-test"],
                                   ["mac64-performance", "mac64-intel-test"],
                                   ["mac-ppc-performance", "mac-ppc-10.5a-test"],
                                   ["linux-performance", "linux-test"],
                                   ["winmobile-performance", "winmobile-emulator-test"]
                                  ])
 
-    deep = BuilderDependent(name="deep",upstream=test, callbackInterval=60, fileIsImportant=startCompile,
+    deep = PhaseTwoScheduler(name="deep", branch="%s-deep" % BRANCH, treeStableTimer=30, 
+                    fileIsImportant=startCompile, priority=2, changeDir="changes/deep/processed",
                     builderNames=[
                                     "windows-deep",
                                     "windows-p3-deep",
                                     "windows-frr",
                                     "mac-ppc-deep",
                                     "solaris-sparc-deep",
                                     "windows64-deep",
                                     "linux-deep",
@@ -181,26 +184,28 @@ class tamarinredux:
     windows_compile_factory.addStep(compile_generic(name="Release-wordcode", shellname="avmshell_wordcode", args="--enable-shell --enable-wordcode-interp", upload="false"))
     windows_compile_factory.addStep(compile_generic(name="Debug", shellname="avmshell_d", args="--enable-shell --enable-debug", upload="false"))
     windows_compile_factory.addStep(compile_generic(name="ReleaseDebugger", shellname="avmshell_s", args="--enable-shell --enable-debugger", upload="false"))
     windows_compile_factory.addStep(compile_generic(name="DebugDebugger", shellname="avmshell_sd", args="--enable-shell --enable-debug --enable-debugger", upload="false"))
     windows_compile_factory.addStep(compile_generic(name="Release_vprof", shellname="avmshell-vprof", args="--enable-shell --enable-perfm", upload="false"))
     windows_compile_factory.addStep(compile_generic(name="Selftest", shellname="avmshell_test", args="--enable-shell --enable-selftest", upload="false"))
     windows_compile_factory.addStep(BuildShellCommand(
                 command=['../all/file-check.py', '../../../../../repo'],
+                env={'branch': WithProperties('%s','branch')},
                 description='running file-check against source...',
                 descriptionDone='finished file-check.',
                 name="FileCheck",
                 workdir="../repo/build/buildbot/slaves/scripts")
     )
     windows_compile_factory.addStep(compile_buildcheck)
     windows_compile_factory.addStep(util_upload_asteam)
     windows_compile_factory.addStep(util_upload_mozilla)
     windows_compile_factory.addStep(BuildShellCommand(
                 command=['./build-release-sizereport.sh',WithProperties('%s','revision')],
+                env={'branch': WithProperties('%s','branch')},
                 description='starting win release-sizereport build...',
                 descriptionDone='finished win release-sizereport build.',
                 name='Build_Release_sizereport',
                 workdir="../repo/build/buildbot/slaves/scripts")
     )
 
     windows_compile_builder = {
                 'name': "windows-compile",
@@ -437,16 +442,17 @@ class tamarinredux:
     linux_compile_factory.addStep(compile_generic(name="Release-wordcode", shellname="avmshell_wordcode", args="--enable-shell --enable-wordcode-interp", upload="false"))
     linux_compile_factory.addStep(compile_generic(name="Debug", shellname="avmshell_d", args="--enable-shell --enable-debug", upload="false"))
     linux_compile_factory.addStep(compile_generic(name="ReleaseDebugger", shellname="avmshell_s", args="--enable-shell --enable-debugger", upload="false"))
     linux_compile_factory.addStep(compile_generic(name="DebugDebugger", shellname="avmshell_sd", args="--enable-shell --enable-debug --enable-debugger", upload="false"))
     linux_compile_factory.addStep(compile_generic(name="Release_vprof", shellname="avmshell-vprof", args="--enable-shell --enable-perfm", upload="false"))
     linux_compile_factory.addStep(compile_generic(name="Selftest", shellname="avmshell_test", args="--enable-shell --enable-selftest", upload="false"))
     linux_compile_factory.addStep(BuildShellCommand(
                 command=['./build-release-cov.sh', WithProperties('%s','revision')],
+                env={'branch': WithProperties('%s','branch')},
                 description='starting linux code coverage release build...',
                 descriptionDone='finished linux code coverage release build.',
                 name="Build_Release_cov",
                 workdir="../repo/build/buildbot/slaves/scripts")
     )
     linux_compile_factory.addStep(compile_buildcheck_local)
     linux_compile_factory.addStep(util_upload_asteam_local)
     linux_compile_factory.addStep(util_upload_mozilla)
@@ -501,16 +507,17 @@ class tamarinredux:
     winmobile_emulator_compile_factory.addStep(compile_generic(name="Release-wordcode-ARM", shellname="avmshell_wordcode_arm", args="--enable-shell --enable-wordcode-interp --target=arm-windows", upload="false"))
     winmobile_emulator_compile_factory.addStep(compile_generic(name="Release-fpu-ARM", shellname="avmshell_fpu_arm", args="--enable-shell --enable-arm-fpu --target=arm-windows", upload="false"))
     winmobile_emulator_compile_factory.addStep(compile_generic(name="DebugARM", shellname="avmshell_arm_d", args="--enable-shell --enable-debug --target=arm-windows", upload="false"))
     winmobile_emulator_compile_factory.addStep(compile_buildcheck_local)
     winmobile_emulator_compile_factory.addStep(util_upload_asteam_local)
     winmobile_emulator_compile_factory.addStep(util_upload_mozilla_local)
     winmobile_emulator_compile_factory.addStep(BuildShellCommand(
                 command=['./build-release-mobile-pocketpc-arm-sizereport.sh', WithProperties('%s','revision')],
+                env={'branch': WithProperties('%s','branch')},
                 description='starting to run sizereport...',
                 descriptionDone='finished sizereport.',
                 name="Build_Release_sizereport",
                 workdir="../repo/build/buildbot/slaves/scripts")
     )
 
     winmobile_emulator_compile_builder = {
                 'name': "winmobile-emulator-compile",
@@ -802,17 +809,17 @@ class tamarinredux:
     windows_test_factory.addStep(test_generic(name="Release-interp", shellname="avmshell", vmargs="-Dinterp", config="", scriptargs=""))
     windows_test_factory.addStep(test_generic(name="Release-wordcode-interp", shellname="avmshell_wordcode", vmargs="-Dinterp", config="", scriptargs=""))
     windows_test_factory.addStep(test_generic(name="Release-jit", shellname="avmshell", vmargs="-Ojit", config="", scriptargs=""))
     windows_test_factory.addStep(test_generic(name="ReleaseDebugger", shellname="avmshell_s", vmargs="", config="", scriptargs=""))
     windows_test_factory.addStep(test_generic(name="Debug", shellname="avmshell_d", vmargs="", config="", scriptargs=""))
     windows_test_factory.addStep(test_generic(name="DebugDebugger", shellname="avmshell_sd", vmargs="", config="", scriptargs=""))
     windows_test_factory.addStep(test_differential)
     windows_test_factory.addStep(util_process_clean)
-
+    
     windows_test_builder = {
                 'name': "windows-test",
                 'slavename': "asteamwin2",
                 'factory': windows_test_factory,
                 'builddir': './windows-test',
     }
 
 
@@ -1014,16 +1021,17 @@ class tamarinredux:
     linux_test_factory.addStep(test_generic(name="Release-wordcode-interp", shellname="avmshell_wordcode", vmargs="-Dinterp", config="", scriptargs=""))
     linux_test_factory.addStep(test_generic(name="Release-jit", shellname="avmshell", vmargs="-Ojit", config="", scriptargs=""))
     linux_test_factory.addStep(test_generic(name="ReleaseDebugger", shellname="avmshell_s", vmargs="", config="", scriptargs=""))
     linux_test_factory.addStep(test_generic(name="Debug", shellname="avmshell_d", vmargs="", config="", scriptargs=""))
     linux_test_factory.addStep(test_generic(name="DebugDebugger", shellname="avmshell_sd", vmargs="", config="", scriptargs=""))
     linux_test_factory.addStep(test_differential)
     linux_test_factory.addStep(TestSuiteShellCommand(
                 command=['./run-tests-release-cov.sh', WithProperties('%s','revision')],
+                env={'branch': WithProperties('%s','branch')},
                 description='starting to run release code coverage vmtests...',
                 descriptionDone='finished release code coverage vmtests.',
                 name="Testsuite_Release-cov",
                 workdir="../repo/build/buildbot/slaves/scripts")
     )
     linux_test_factory.addStep(util_process_clean)
 
     linux_test_builder = {
@@ -1317,38 +1325,33 @@ class tamarinredux:
 
 
     ##################################
     #### builder for windows-frr ####
     ##################################
     windows_frr_factory = factory.BuildFactory()
     windows_frr_factory.addStep(BuildShellCommand(
                 command=['./build-frr.sh', WithProperties('%s','revision')],
+                env={'branch': WithProperties('%s','branch')},
                 description='building frr...',
                 descriptionDone='finished building frr.',
                 name="BuildFRR",
                 workdir="../scripts",
                 timeout=3600)
     )
     windows_frr_factory.addStep(BuildShellCommand(
                 command=['./run-frunit.sh', WithProperties('%s','revision')],
+                env={'branch': WithProperties('%s','branch')},
                 description='running frunit...',
                 descriptionDone='finished running frunit.',
                 name="RunFrunit",
                 workdir="../scripts",
                 timeout=3600)
     )
-    windows_frr_factory.addStep(BuildShellCommand(
-                command=['./run-winmo-frunit.sh', WithProperties('%s','revision')],
-                description='running winmo frunit...',
-                descriptionDone='finished running winmo frunit.',
-                name="RunWinmoFrunit",
-                workdir="../scripts",
-                timeout=3600)
-    )
+
     windows_frr_builder = {
                 'name': "windows-frr",
                 'slavename': "asteamwin12",
                 'factory': windows_frr_factory,
                 'builddir': './windows-frr',
     }
 
     ##################################
@@ -1407,23 +1410,24 @@ class tamarinredux:
     #### builder for windows64-deep ####
     ##################################
     windows_64_deep_factory = factory.BuildFactory()
     windows_64_deep_factory.addStep(sync_clean)
     windows_64_deep_factory.addStep(sync_clone(url=HG_URL))
     windows_64_deep_factory.addStep(sync_update)
     windows_64_deep_factory.addStep(bb_slaveupdate(slave="windows64-deep"))
     windows_64_deep_factory.addStep(download_testmedia)
-    windows_64_deep_factory.addStep(test_generic(name="Debug", shellname="avmshell_d", vmargs="", config="x64-win-tvm-debug-deep", scriptargs=""))
-    windows_64_deep_factory.addStep(test_generic(name="DebugDebugger", shellname="avmshell_sd", vmargs="", config="x64-win-tvm-debugdebugger-deep", scriptargs=""))
+    windows_64_deep_factory.addStep(test_generic(name="Debug", shellname="avmshell_d_64", vmargs="", config="x64-win-tvm-debug-deep", scriptargs=""))
+    windows_64_deep_factory.addStep(test_generic(name="DebugDebugger", shellname="avmshell_sd_64", vmargs="", config="x64-win-tvm-debugdebugger-deep", scriptargs=""))
     windows_64_deep_factory.addStep(deep_release_esc)
     windows_64_deep_factory.addStep(test_generic(name="ReleaseDebugger-Dverifyall", shellname="avmshell_s_64", vmargs="-Dverifyall", config="", scriptargs=""))
     windows_64_deep_factory.addStep(test_generic(name="DebugDebugger-Dverifyall", shellname="avmshell_sd_64", vmargs="-Dverifyall", config="", scriptargs=""))
     windows_64_deep_factory.addStep( TestSuiteShellCommand(
                 command=['../all/run-acceptance-avmdiff-3264.sh', WithProperties('%s','revision')],
+                env={'branch': WithProperties('%s','branch')},
                 description='starting to run 32-64 differential vmtests...',
                 descriptionDone='finished 32-64 differential vmtests.',
                 name="Testsuite_Differential3264",
                 workdir="../repo/build/buildbot/slaves/scripts"
                 )
     )
     windows_64_deep_factory.addStep(test_misc)
     windows_64_deep_factory.addStep(test_generic(name="Release-Dgreedy", shellname="avmshell_64", vmargs="-Dgreedy", config="", scriptargs="--timeout=180 --random"))