Bug 1237094 - tracking bug for build and release of Firefox 45.0 ESR, r=bhearsum
authorVlad Ciobancai <vlad.ciobancai@softvision.ro>
Thu, 25 Feb 2016 18:26:22 +0200 (2016-02-25)
changeset 13806 8712d19cff79c158cc8acf737c03fc98d11e2f46
parent 13805 1668779e0c88fc51f10d1615a0e66fd7fb358794
child 13807 81db79611afa30ac52b2048f280b6b0e36d28e16
push id9704
push uservlad.ciobancai@softvision.ro
push dateThu, 25 Feb 2016 16:26:42 +0000 (2016-02-25)
reviewersbhearsum
bugs1237094
Bug 1237094 - tracking bug for build and release of Firefox 45.0 ESR, r=bhearsum
dev-master_config.json.in
mozilla-tests/config.py
mozilla-tests/production_config.py
mozilla-tests/thunderbird_config.py
mozilla-tests/thunderbird_production_config.py
mozilla/build_localconfig.py
mozilla/config.py
mozilla/l10n-changesets_mozilla-esr45
mozilla/l10n-changesets_thunderbird-esr45
mozilla/master_common.py
mozilla/production_config.py
mozilla/release-firefox-mozilla-esr45.py
mozilla/release-firefox-mozilla-esr45.py.template
mozilla/release-thunderbird-comm-esr45.py
mozilla/release-thunderbird-comm-esr45.py.template
mozilla/staging_config.py
mozilla/staging_release-firefox-mozilla-esr45.py
mozilla/staging_release-firefox-mozilla-esr45.py.template
mozilla/staging_release-thunderbird-comm-esr45.py
mozilla/staging_release-thunderbird-comm-esr45.py.template
mozilla/thunderbird_config.py
mozilla/thunderbird_production_config.py
mozilla/thunderbird_staging_config.py
setup-master.py
--- a/dev-master_config.json.in
+++ b/dev-master_config.json.in
@@ -13,16 +13,16 @@
   "db_name": "dev-master1.srv.releng.scl3.mozilla.com:@BASEDIR@/master",
   "enabled": true,
   "environment": "staging",
   "hostname": "dev-master1.srv.releng.scl3.mozilla.com",
   "http_port": @HTTP_PORT@,
   "master_dir": "@BASEDIR@/master",
   "release_branches": ["mozilla-release", "mozilla-beta"],
   "mobile_release_branches": ["mozilla-release", "mozilla-beta"],
-  "thunderbird_release_branches": ["comm-beta", "comm-esr38"],
+  "thunderbird_release_branches": ["comm-beta", "comm-esr38", "comm-esr45"],
   "name": "@MASTER_NAME@",
   "pb_port": @PB_PORT@,
   "role": "@ROLE@",
   "ssh_port": @SSH_PORT@,
   "tools_branch": "@TOOLS_BRANCH@",
   "tools_dir": "@BASEDIR@/tools"
 }]
--- a/mozilla-tests/config.py
+++ b/mozilla-tests/config.py
@@ -40,16 +40,27 @@ BRANCHES = {
             'macosx64': {},
             'win32': {},
             'win64': {},
             'linux': {},
             'linux64': {},
         },
         'lock_platforms': True,
     },
+    'mozilla-esr45': {
+        'gecko_version': 45,
+        'platforms': {
+            'macosx64': {},
+            'win32': {},
+            'win64': {},
+            'linux': {},
+            'linux64': {},
+        },
+        'lock_platforms': True,
+    },
     'try': {
         'coallesce_jobs': False,
     },
 }
 
 TWIGS = [x for x in ACTIVE_PROJECT_BRANCHES if x not in ('mozilla-inbound', 'fx-team', 'b2g-inbound')]
 
 setMainFirefoxVersions(BRANCHES)
@@ -2659,16 +2670,25 @@ BRANCHES['mozilla-esr38']['repo_path'] =
 BRANCHES['mozilla-esr38']['pgo_strategy'] = 'per-checkin'
 BRANCHES['mozilla-esr38']['platforms']['win32']['talos_slave_platforms'] = []
 BRANCHES['mozilla-esr38']['platforms']['macosx64']['talos_slave_platforms'] = []
 BRANCHES['mozilla-esr38']['platforms']['linux']['talos_slave_platforms'] = []
 BRANCHES['mozilla-esr38']['platforms']['linux64']['talos_slave_platforms'] = []
 BRANCHES['mozilla-esr38']['platforms']['win32']['talos_slave_platforms'] = []
 BRANCHES['mozilla-esr38']['platforms']['win64']['talos_slave_platforms'] = []
 
+######### mozilla-esr45
+BRANCHES['mozilla-esr45']['repo_path'] = "releases/mozilla-esr45"
+BRANCHES['mozilla-esr45']['pgo_strategy'] = 'per-checkin'
+BRANCHES['mozilla-esr45']['platforms']['win32']['talos_slave_platforms'] = []
+BRANCHES['mozilla-esr45']['platforms']['macosx64']['talos_slave_platforms'] = []
+BRANCHES['mozilla-esr45']['platforms']['linux']['talos_slave_platforms'] = []
+BRANCHES['mozilla-esr45']['platforms']['linux64']['talos_slave_platforms'] = []
+BRANCHES['mozilla-esr45']['platforms']['win32']['talos_slave_platforms'] = []
+BRANCHES['mozilla-esr45']['platforms']['win64']['talos_slave_platforms'] = []
 
 ######## try
 BRANCHES['try']['repo_path'] = "try"
 BRANCHES['try']['xperf_tests'] = (1, False, TALOS_TP_NEW_OPTS, WIN7_ONLY)
 BRANCHES['try']['tp5o_tests'] = (1, False, TALOS_TP_NEW_OPTS, ALL_TALOS_PLATFORMS)
 BRANCHES['try']['other_tests'] = (1, False, {}, ALL_TALOS_PLATFORMS)
 BRANCHES['try']['g1_tests'] = (1, False, TALOS_TP_NEW_OPTS, ALL_TALOS_PLATFORMS)
 BRANCHES['try']['g2_tests'] = (1, False, TALOS_TP_NEW_OPTS, ALL_TALOS_PLATFORMS)
--- a/mozilla-tests/production_config.py
+++ b/mozilla-tests/production_config.py
@@ -117,16 +117,20 @@ BRANCHES = {
     'mozilla-release': {
         'tinderbox_tree': 'Mozilla-Release',
         'mobile_tinderbox_tree': 'Mozilla-Release',
     },
     'mozilla-esr38': {
         'tinderbox_tree': 'Mozilla-Esr38',
         'mobile_tinderbox_tree': 'Mozilla-Esr38',
     },
+    'mozilla-esr45': {
+        'tinderbox_tree': 'Mozilla-Esr45',
+        'mobile_tinderbox_tree': 'Mozilla-Esr45',
+    },
     'mozilla-beta': {
         'tinderbox_tree': 'Mozilla-Beta',
         'mobile_tinderbox_tree': 'Mozilla-Beta',
     },
     'mozilla-aurora': {
         'tinderbox_tree': 'Mozilla-Aurora',
         'mobile_tinderbox_tree': 'Mozilla-Aurora',
     },
--- a/mozilla-tests/thunderbird_config.py
+++ b/mozilla-tests/thunderbird_config.py
@@ -27,16 +27,19 @@ BRANCHES = {
     },
     'comm-beta': {
     },
     'comm-aurora': {
     },
     'comm-esr38': {
         'gecko_version': 38
     },
+    'comm-esr45': {
+        'gecko_version': 45
+    },
     'try-comm-central': {
         'coallesce_jobs': False
     },
 }
 
 setMainCommVersions(BRANCHES)
 
 PLATFORMS = {
@@ -381,16 +384,21 @@ BRANCHES['comm-aurora']['pgo_strategy'] 
 BRANCHES['comm-aurora']['repo_path'] = "releases/comm-aurora"
 BRANCHES['comm-aurora']['moz_repo_path'] = "releases/mozilla-aurora"
 
 ######## comm-esr38
 BRANCHES['comm-esr38']['pgo_strategy'] = None
 BRANCHES['comm-esr38']['repo_path'] = "releases/comm-esr38"
 BRANCHES['comm-esr38']['moz_repo_path'] = "releases/mozilla-esr38"
 
+######## comm-esr45
+BRANCHES['comm-esr45']['pgo_strategy'] = None
+BRANCHES['comm-esr45']['repo_path'] = "releases/comm-esr45"
+BRANCHES['comm-esr45']['moz_repo_path'] = "releases/mozilla-esr45"
+
 ######## try
 BRANCHES['try-comm-central']['enable_try'] = True
 BRANCHES['try-comm-central']['moz_repo_path'] = "mozilla-central"
 
 # Disable Rev3 winxp and win7 machines for all branches
 for branch in set(BRANCHES.keys()):
     if 'win32' not in BRANCHES[branch]['platforms']:
         continue
--- a/mozilla-tests/thunderbird_production_config.py
+++ b/mozilla-tests/thunderbird_production_config.py
@@ -12,16 +12,19 @@ GLOBAL_VARS['stage_ssh_key'] = 'tbirdbld
 # Local branch overrides
 BRANCHES = {
     'comm-central': {
         'tinderbox_tree': 'Thunderbird',
     },
     'comm-esr38': {
         'tinderbox_tree': 'Thunderbird-Esr38',
     },
+    'comm-esr45': {
+        'tinderbox_tree': 'Thunderbird-Esr45',
+    },
     'comm-beta': {
         'tinderbox_tree': 'Thunderbird-Beta',
     },
     'comm-aurora': {
         'tinderbox_tree': 'Thunderbird-Aurora',
     },
     'try-comm-central': {
         'tinderbox_tree': 'Try-Comm-Central',
--- a/mozilla/build_localconfig.py
+++ b/mozilla/build_localconfig.py
@@ -27,27 +27,29 @@ if 'limit_branches' in master_config:
 else:
     ACTIVE_BRANCHES = ACTIVE_PROJECT_BRANCHES[:]
     ACTIVE_BRANCHES.extend([
         'mozilla-central',
         'mozilla-beta',
         'mozilla-aurora',
         'mozilla-release',
         'mozilla-esr38',
+        'mozilla-esr45',
         'mozilla-b2g44_v2_5',
     ])
 if 'limit_tb_branches' in master_config:
     ACTIVE_THUNDERBIRD_BRANCHES = [x.encode("utf-8") for x in master_config['limit_tb_branches']]
 else:
     ACTIVE_THUNDERBIRD_BRANCHES = ACTIVE_THUNDERBIRD_PROJECT_BRANCHES[:]
     ACTIVE_THUNDERBIRD_BRANCHES.extend([
         'comm-central',
         'comm-beta',
         'comm-aurora',
         'comm-esr38',
+        'comm-esr45',
     ])
 if 'limit_b2g_branches' in master_config:
     ACTIVE_B2G_BRANCHES = [x.encode("utf-8") for x in master_config['limit_b2g_branches']]
 else:
     ACTIVE_B2G_BRANCHES = ACTIVE_B2G_PROJECT_BRANCHES[:]
     ACTIVE_B2G_BRANCHES.extend([
         'mozilla-central',
         'mozilla-b2g44_v2_5',
--- a/mozilla/config.py
+++ b/mozilla/config.py
@@ -2337,16 +2337,34 @@ BRANCHES = {
             'linux64-av': {},
             'linux-debug': {},
             'linux64-debug': {},
             'macosx64-debug': {},
             'win32-debug': {},
             'win64-debug': {},
         },
     },
+    'mozilla-esr45': {
+        'merge_builds': False,
+        'lock_platforms': True,
+        'gecko_version': 45,
+        'platforms': {
+            'linux': {},
+            'linux64': {},
+            'macosx64': {},
+            'win32': {},
+            'win64': {},
+            'linux64-av': {},
+            'linux-debug': {},
+            'linux64-debug': {},
+            'macosx64-debug': {},
+            'win32-debug': {},
+            'win64-debug': {},
+        },
+    },
     'mozilla-b2g44_v2_5': {
         'merge_builds': False,
         'branch_projects': [],
         'lock_platforms': True,
         'gecko_version': 44,
         'platforms': {},
     },
     'b2g-ota': {
@@ -2656,26 +2674,34 @@ BRANCHES['mozilla-aurora']['platforms'][
 # aurora nightlies should use our nightly signing server
 BRANCHES['mozilla-aurora']['platforms']['linux']['nightly_signing_servers'] = 'nightly-signing'
 BRANCHES['mozilla-aurora']['platforms']['linux64']['nightly_signing_servers'] = 'nightly-signing'
 BRANCHES['mozilla-aurora']['platforms']['win32']['nightly_signing_servers'] = 'nightly-signing'
 BRANCHES['mozilla-aurora']['platforms']['win64']['nightly_signing_servers'] = 'nightly-signing'
 BRANCHES['mozilla-aurora']['platforms']['macosx64']['nightly_signing_servers'] = 'nightly-signing'
 BRANCHES['mozilla-aurora']['l10n_extra_configure_args'] = ['--with-macbundlename-prefix=Firefox']
 BRANCHES['mozilla-aurora']['enabled_products'] = ['firefox', 'mobile']
-
 ######## mozilla-esr38
 BRANCHES['mozilla-esr38']['repo_path'] = 'releases/mozilla-esr38'
 BRANCHES['mozilla-esr38']['update_channel'] = 'nightly-esr38'
 BRANCHES['mozilla-esr38']['l10n_repo_path'] = 'releases/l10n/mozilla-release'
 BRANCHES['mozilla-esr38']['start_hour'] = [0]
 BRANCHES['mozilla-esr38']['start_minute'] = [15]
 BRANCHES['mozilla-esr38']['pgo_strategy'] = 'per-checkin'
 BRANCHES['mozilla-esr38']['enable_mac_a11y'] = True
 BRANCHES['mozilla-esr38']['unittest_build_space'] = 6
+######## mozilla-esr45
+BRANCHES['mozilla-esr45']['repo_path'] = 'releases/mozilla-esr45'
+BRANCHES['mozilla-esr45']['update_channel'] = 'nightly-esr45'
+BRANCHES['mozilla-esr45']['l10n_repo_path'] = 'releases/l10n/mozilla-release'
+BRANCHES['mozilla-esr45']['start_hour'] = [0]
+BRANCHES['mozilla-esr45']['start_minute'] = [15]
+BRANCHES['mozilla-esr45']['pgo_strategy'] = 'per-checkin'
+BRANCHES['mozilla-esr45']['enable_mac_a11y'] = True
+BRANCHES['mozilla-esr45']['unittest_build_space'] = 6
 # L10n configuration
 BRANCHES['mozilla-esr38']['enable_l10n'] = False
 BRANCHES['mozilla-esr38']['enable_l10n_onchange'] = False
 BRANCHES['mozilla-esr38']['l10nNightlyUpdate'] = False
 BRANCHES['mozilla-esr38']['l10n_platforms'] = ['linux', 'linux64', 'win32', 'macosx64']
 BRANCHES['mozilla-esr38']['l10nDatedDirs'] = True
 BRANCHES['mozilla-esr38']['l10n_tree'] = 'fxesr38'
 BRANCHES['mozilla-esr38']['enUS_binaryURL'] = \
@@ -2684,17 +2710,34 @@ BRANCHES['mozilla-esr38']['enable_nightl
 BRANCHES['mozilla-esr38']['enable_nightly_everytime'] = False
 BRANCHES['mozilla-esr38']['updates_enabled'] = False
 BRANCHES['mozilla-esr38']['create_partial'] = False
 BRANCHES['mozilla-esr38']['enable_blocklist_update'] = True
 BRANCHES['mozilla-esr38']['enable_hsts_update'] = True
 BRANCHES['mozilla-esr38']['enable_hpkp_update'] = True
 BRANCHES['mozilla-esr38']['enable_valgrind'] = False
 BRANCHES['mozilla-esr38']['enabled_products'] = ['firefox']
-
+# L10n configuration - mozilla-esr45
+BRANCHES['mozilla-esr45']['enable_l10n'] = False
+BRANCHES['mozilla-esr45']['enable_l10n_onchange'] = False
+BRANCHES['mozilla-esr45']['l10nNightlyUpdate'] = False
+BRANCHES['mozilla-esr45']['l10n_platforms'] = ['linux', 'linux64', 'win32', 'macosx64']
+BRANCHES['mozilla-esr45']['l10nDatedDirs'] = True
+BRANCHES['mozilla-esr45']['l10n_tree'] = 'fxesr38'
+BRANCHES['mozilla-esr45']['enUS_binaryURL'] = \
+    GLOBAL_VARS['download_base_url'] + '/nightly/latest-mozilla-esr45'
+BRANCHES['mozilla-esr45']['enable_nightly'] = True
+BRANCHES['mozilla-esr45']['enable_nightly_everytime'] = False
+BRANCHES['mozilla-esr45']['updates_enabled'] = False
+BRANCHES['mozilla-esr45']['create_partial'] = False
+BRANCHES['mozilla-esr45']['enable_blocklist_update'] = True
+BRANCHES['mozilla-esr45']['enable_hsts_update'] = True
+BRANCHES['mozilla-esr45']['enable_hpkp_update'] = True
+BRANCHES['mozilla-esr45']['enable_valgrind'] = False
+BRANCHES['mozilla-esr45']['enabled_products'] = ['firefox']
 ######## mozilla-b2g44_v2_5
 BRANCHES['mozilla-b2g44_v2_5']['repo_path'] = 'releases/mozilla-b2g44_v2_5'
 BRANCHES['mozilla-b2g44_v2_5']['update_channel'] = 'nightly-b2g44-2.5'
 BRANCHES['mozilla-b2g44_v2_5']['l10n_repo_path'] = 'releases/l10n/mozilla-aurora'
 BRANCHES['mozilla-b2g44_v2_5']['enable_perproduct_builds'] = True
 BRANCHES['mozilla-b2g44_v2_5']['start_hour'] = [3]
 BRANCHES['mozilla-b2g44_v2_5']['start_minute'] = [45]
 BRANCHES['mozilla-b2g44_v2_5']['pgo_platforms'] = []
@@ -2909,17 +2952,17 @@ mc_gecko_version = BRANCHES['mozilla-cen
 for name, branch in items_before(BRANCHES, 'gecko_version', mc_gecko_version):
     if 'linux64-st-an-debug' in branch['platforms']:
         del branch['platforms']['linux64-st-an-debug']
     if 'macosx64-st-an-debug' in branch['platforms']:
         del branch['platforms']['macosx64-st-an-debug']
 
 # Only test pretty names on train branches, not m-c or project branches.
 for branch in ("mozilla-aurora", "mozilla-beta", "mozilla-release",
-               "mozilla-esr38"):
+               "mozilla-esr38", "mozilla-esr45"):
     for platform in ("linux", "linux64", "macosx64", "win32", "win64"):
         if platform in BRANCHES[branch]['platforms']:
             BRANCHES[branch]['platforms'][platform]['test_pretty_names'] = True
 
 # B2G's INBOUND
 for b in ('b2g-inbound',):
     for p in BRANCHES[b]['platforms'].keys():
         if 'linux' not in p:
new file mode 100644
--- /dev/null
+++ b/mozilla/l10n-changesets_mozilla-esr45
@@ -0,0 +1,89 @@
+ach 	eb14f43e5f05
+af 	0a4de99b5beb
+an 	cb58bb3e9648
+ar 	f2273f905147
+as 	8313f975ae77
+ast 	0c54c4102de4
+az 	3ec33d7e53ad
+be 	b72077740aac
+bg 	7ef2fcfd7e93
+bn-BD 	ab9122b22e7b
+bn-IN 	e4dd4d7f827a
+br 	bcf57cc518e0
+bs 	8fc6fcbbced3
+ca 	c2545bf16445
+cs 	b18a452bd422
+cy 	3682f66168f1
+da 	322bf0c0f168
+de 	874394ae620d
+dsb 	11e4cd26eff8
+el 	22b959c9a739
+en-GB 	7757a36df513
+en-ZA 	720d9153b07b
+eo 	d417b4408750
+es-AR 	8674d98b9622
+es-CL 	cad9a43b71b1
+es-ES 	66241168ad53
+es-MX 	8aaafca07dfb
+et 	4db328a2baca
+eu 	39fdd7acd3d7
+fa 	2b301cf923d6
+ff 	8373353b43c4
+fi 	b788e25780aa
+fr 	f36e1b1a6a73
+fy-NL 	60bd7ed0023e
+ga-IE 	e3e13dbcfdb2
+gd 	429c41e2fd04
+gl 	020633ffb068
+gu-IN 	6245b4309461
+he 	5f6b95c1a280
+hi-IN 	c9852428b37c
+hr 	7eea72a9979b
+hsb 	1a914026dd3d
+hu 	1e5efccedf51
+hy-AM 	6ba5861d610c
+id 	6615fd2b3902
+is 	b31b8bb144eb
+it 	64755a9f715d
+ja 	bdf86395d07d
+ja-JP-mac 	5ecd721666df
+kk 	16da9c4b7cb2
+km 	7068671cb929
+kn 	de74fa4335f4
+ko 	b2b4b048b5c2
+lij 	d6d009b4b3e3
+lt 	248fa3e2df31
+lv 	a43c7e178b45
+mai 	ce010a305377
+mk 	ffdf2a789185
+ml 	7beaa1b99a70
+mr 	cf332e28ce07
+ms 	21758a6d677d
+nb-NO 	994001c1df56
+nl 	f4cb4aca6ad5
+nn-NO 	0b57b869d1a8
+or 	febd1b04dbfc
+pa-IN 	c23345c23e09
+pl 	354aaeca4d02
+pt-BR 	76210d4bc012
+pt-PT 	3a6ea78538d4
+rm 	9c75355c77cc
+ro 	8e352ff9ef16
+ru 	f569b9e8db68
+si 	d372f7911621
+sk 	a4cd93ea081a
+sl 	31a0ddc0b866
+son 	8ed54a34d981
+sq 	b37e7868a7a3
+sr 	e50bdb176434
+sv-SE 	fd25ba166802
+ta 	f19574559deb
+te 	5d482d6c428b
+th 	38b51ad9beba
+tr 	ee1a0c5250f9
+uk 	2f3dec2ca792
+uz 	9e4c614d46b0
+vi 	b0da05539c22
+xh 	188db6e5e36d
+zh-CN 	b67602d9ea30
+zh-TW 	fa9a7e219676
\ No newline at end of file
new file mode 100644
--- /dev/null
+++ b/mozilla/l10n-changesets_thunderbird-esr45
@@ -0,0 +1,58 @@
+ar f2273f905147
+ast a6e53c602b31
+be b4c9f7da6ac6
+bg bd5c4d46e092
+bn-BD c4ae76a06caa
+br fae07a5f5f68
+ca 79674121b6a7
+cs bd7714c93067
+cy 3682f66168f1
+da 322bf0c0f168
+de 14b510c58c93
+dsb 67b20f484e5d
+el 213eb620afd4
+en-GB 7757a36df513
+es-AR 8674d98b9622
+es-ES 66241168ad53
+et 4db328a2baca
+eu 291f088aa2da
+fi 1f33f2cde43c
+fr fdbb92070247
+fy-NL 60bd7ed0023e
+ga-IE 1ca6dc8c74a2
+gd 2bd92d721cd9
+gl 020204eec53e
+he ca4d4660d2f9
+hr da26144f162f
+hsb 1529cf5e9212
+hu d03e347af96e
+hy-AM 4870638df7b1
+id a796af1ad16e
+is 8b5703969380
+it 0ff2c7279e21
+ja 1a0b282d9350
+ja-JP-mac 5074d44dbf01
+ko 563121b0b29d
+lt b38121bd34c3
+nb-NO cd8316ad9001
+nl e9500d00251b
+nn-NO a514e7e5502a
+pa-IN 1579a219f210
+pl 354aaeca4d02
+pt-BR e76cf84c4b23
+pt-PT 6022f4b1a67a
+rm c34206f3af15
+ro 578f74c6bbb8
+ru 5aec6715d760
+si 8922c6107b20
+sk b626d64c9945
+sl 42cda593c1b9
+sq 2ff44efdaec4
+sr 8a6205ac3dd5
+sv-SE cb8c09351226
+ta-LK 70286dc65519
+tr bf1ec72502fb
+uk bcf6f048ff62
+vi 84a40c2f0cd6
+zh-CN b67602d9ea30
+zh-TW fa9a7e219676
\ No newline at end of file
--- a/mozilla/master_common.py
+++ b/mozilla/master_common.py
@@ -20,17 +20,19 @@ c['schedulers'] = []
 c['change_source'] = []
 
 # Builders from these branches are given custom priority, default is 4 for unlisted branches
 # Please leave in sorted order
 DEFAULT_BRANCH_PRIORITY = 4
 BRANCH_PRIORITIES = {
     'mozilla-release': 0,
     'comm-esr38': 0,
+    'comm-esr45': 0,
     'mozilla-esr38': 1,
+    'mozilla-esr45': 1,
     'mozilla-beta': 2,
     'comm-beta': 2,
     'mozilla-central': 3,
     'comm-central': 3,
     'mozilla-aurora': 3,
     'comm-aurora': 3,
     # Unlisted branches are prioritized at this level
     'mozilla-inbound': 4,
--- a/mozilla/production_config.py
+++ b/mozilla/production_config.py
@@ -88,16 +88,20 @@ BRANCHES = {
     'mozilla-release': {
         'tinderbox_tree': 'Mozilla-Release',
         'mobile_tinderbox_tree': 'Mozilla-Release',
     },
     'mozilla-esr38': {
         'tinderbox_tree': 'Mozilla-Esr38',
         'mobile_tinderbox_tree': 'Mozilla-Esr38',
     },
+    'mozilla-esr45': {
+        'tinderbox_tree': 'Mozilla-Esr45',
+        'mobile_tinderbox_tree': 'Mozilla-Esr45',
+    },
     'mozilla-b2g44_v2_5': {
         'tinderbox_tree': 'Mozilla-B2g44-v2.5',
         'mobile_tinderbox_tree': 'Mozilla-B2g44-v2.5',
     },
     'b2g-ota': {
         'tinderbox_tree': 'B2g-Ota',
         'mobile_tinderbox_tree': 'B2g-Ota',
     },
new file mode 100644
--- /dev/null
+++ b/mozilla/release-firefox-mozilla-esr45.py
@@ -0,0 +1,151 @@
+# ATTENTION:
+# If you are editing the non-template version of this file (eg, doesn't end
+# with .template), your change WILL get overwritten. If you're adding, removing,
+# or changing options as part of release automation changes you should be
+# editing the .template instead. This file should only by edited directly if
+# you're starting a release without Release Kickoff. You have been warned.
+releaseConfig = {}
+
+releaseConfig['base_clobber_url'] = 'https://api.pub.build.mozilla.org/clobberer/forceclobber'
+
+# Release Notification
+releaseConfig['AllRecipients']       = ['<release-automation-notifications@mozilla.com>',]
+releaseConfig['ImportantRecipients'] = ['<release-drivers@mozilla.org>', '<mikeperry@torproject.org>']
+releaseConfig['AVVendorsRecipients'] = ['<av-vendor-release-announce@mozilla.org>',]
+releaseConfig['releaseTemplates']    = 'release_templates'
+releaseConfig['messagePrefix']       = '[release] '
+
+# Basic product configuration
+#  Names for the product/files
+releaseConfig['productName']         = 'firefox'
+releaseConfig['stage_product']       = 'firefox'
+releaseConfig['appName']             = 'browser'
+#  Current version info
+releaseConfig['version']             = '38.6.1esr'
+releaseConfig['appVersion']          = '38.6.1'
+releaseConfig['milestone']           = releaseConfig['appVersion']
+releaseConfig['buildNumber']         = 1
+releaseConfig['baseTag']             = 'FIREFOX_38_6_1esr'
+releaseConfig['partialUpdates']      = {
+
+    '38.6.0esr': {
+        'appVersion': '38.6.0',
+        'buildNumber': 1,
+        'baseTag': 'FIREFOX_38_6_0esr',
+    },
+
+}
+#  Next (nightly) version info
+releaseConfig['nextAppVersion']      = '38.6.1esrpre'
+releaseConfig['nextMilestone']       = releaseConfig['nextAppVersion']
+#  Repository configuration, for tagging
+releaseConfig['sourceRepositories']  = {
+    'mozilla': {
+        'name': 'mozilla-esr45',
+        'path': 'releases/mozilla-esr45',
+        'revision': 'GECKO3860esr_2016012100_RELBRANCH',
+        'relbranch': 'GECKO3860esr_2016012100_RELBRANCH',
+        'bumpFiles': {
+            'browser/config/version.txt': {
+                'version': releaseConfig['appVersion'],
+                'nextVersion': releaseConfig['nextAppVersion']
+            },
+            'config/milestone.txt': {
+                'version': releaseConfig['milestone'],
+                'nextVersion': releaseConfig['nextMilestone']
+            },
+        }
+    }
+}
+#  L10n repositories
+releaseConfig['l10nRelbranch']       = None
+releaseConfig['l10nRepoPath']        = 'releases/l10n/mozilla-release'
+releaseConfig['l10nRevisionFile']    = 'l10n-changesets_mozilla-esr45'
+#  Support repositories
+releaseConfig['otherReposToTag']     = {
+    'build/compare-locales': 'RELEASE_0_9_5',
+    'build/buildbot': 'production-0.8',
+}
+
+# Platform configuration
+releaseConfig['enUSPlatforms']       = ('linux', 'linux64', 'win32', 'macosx64')
+releaseConfig['notifyPlatforms']     = releaseConfig['enUSPlatforms']
+releaseConfig['talosTestPlatforms']  = ()
+
+# Unittests
+releaseConfig['unittestPlatforms']   = ()
+releaseConfig['enableUnittests']     = False
+
+# SDK
+releaseConfig['packageSDK']          = True
+
+# L10n configuration
+releaseConfig['l10nPlatforms']       = releaseConfig['enUSPlatforms']
+releaseConfig['shippedLocalesPath']  = 'browser/locales/shipped-locales'
+releaseConfig['mergeLocales']        = True
+releaseConfig['l10nUsePymake']       = True
+
+# Mercurial account
+releaseConfig['hgUsername']          = 'ffxbld'
+releaseConfig['hgSshKey']            = '/home/mock_mozilla/.ssh/ffxbld_rsa'
+
+# Update-specific configuration
+releaseConfig['ftpServer']           = 'archive.mozilla.org'
+releaseConfig['stagingServer']       = 'upload.ffxbld.productdelivery.prod.mozaws.net'
+releaseConfig['S3Credentials']       = '/builds/release-s3.credentials'
+releaseConfig['S3Bucket']            = 'net-mozaws-prod-delivery-firefox'
+releaseConfig['bouncerServer']       = 'download.mozilla.org'
+releaseConfig['ausServerUrl']        = 'https://aus4.mozilla.org'
+releaseConfig['releaseNotesUrl']     = None
+releaseConfig['testOlderPartials']   = False
+releaseConfig['promptWaitTime']      = None
+releaseConfig['useBetaChannel']      = 1
+releaseConfig['updateVerifyChunks']  = 6
+releaseConfig['mozconfigs']          = {
+    'linux': 'browser/config/mozconfigs/linux32/release',
+    'linux64': 'browser/config/mozconfigs/linux64/release',
+    'macosx64': 'browser/config/mozconfigs/macosx-universal/release',
+    'win32': 'browser/config/mozconfigs/win32/release',
+}
+releaseConfig['releaseChannel']        = 'esr'
+releaseConfig['updateChannels'] = {
+    # ruleId needs to be updated with the ID from AUS
+    "esr": {
+        "versionRegex": r"^.*$",
+        "ruleId": 168,
+        "patcherConfig": "mozEsr45-branch-patcher2.cfg",
+        "localTestChannel": "esr-localtest",
+        "cdnTestChannel": "esr-cdntest",
+        "verifyConfigs": {
+            "linux":  "mozEsr45-firefox-linux.cfg",
+            "linux64":  "mozEsr45-firefox-linux64.cfg",
+            "macosx64": "mozEsr45-firefox-mac64.cfg",
+            "win32":  "mozEsr45-firefox-win32.cfg",
+        },
+        "testChannels": {
+            "esr-localtest": {
+                "ruleId": 166,
+            },
+            "esr-cdntest": {
+                "ruleId": 167,
+            },
+        },
+    },
+}
+
+
+# Partner repack configuration
+releaseConfig['doPartnerRepacks']    = False
+releaseConfig['partnersRepoPath']    = 'build/partner-repacks'
+
+# Tuxedo/Bouncer configuration
+releaseConfig['tuxedoServerUrl']     = 'https://bounceradmin.mozilla.com/api'
+releaseConfig['bouncer_submitter_config'] = 'releases/bouncer_firefox_esr.py'
+
+# Misc configuration
+releaseConfig['enableAutomaticPushToMirrors'] = False
+releaseConfig['use_mock'] = True
+releaseConfig['mock_platforms'] = ('linux','linux64')
+releaseConfig['bouncer_aliases'] = {
+    'Firefox-%(version)s': 'firefox-esr-latest',
+}
\ No newline at end of file
new file mode 100644
--- /dev/null
+++ b/mozilla/release-firefox-mozilla-esr45.py.template
@@ -0,0 +1,151 @@
+# ATTENTION:
+# If you are editing the non-template version of this file (eg, doesn't end
+# with .template), your change WILL get overwritten. If you're adding, removing,
+# or changing options as part of release automation changes you should be
+# editing the .template instead. This file should only by edited directly if
+# you're starting a release without Release Kickoff. You have been warned.
+releaseConfig = {}
+
+releaseConfig['base_clobber_url'] = 'https://api.pub.build.mozilla.org/clobberer/forceclobber'
+
+# Release Notification
+releaseConfig['AllRecipients']       = ['<release-automation-notifications@mozilla.com>',]
+releaseConfig['ImportantRecipients'] = ['<release-drivers@mozilla.org>', '<mikeperry@torproject.org>']
+releaseConfig['AVVendorsRecipients'] = ['<av-vendor-release-announce@mozilla.org>',]
+releaseConfig['releaseTemplates']    = 'release_templates'
+releaseConfig['messagePrefix']       = '[release] '
+
+# Basic product configuration
+#  Names for the product/files
+releaseConfig['productName']         = 'firefox'
+releaseConfig['stage_product']       = 'firefox'
+releaseConfig['appName']             = 'browser'
+#  Current version info
+releaseConfig['version']             = '{{ version }}'
+releaseConfig['appVersion']          = '{{ appVersion }}'
+releaseConfig['milestone']           = releaseConfig['appVersion']
+releaseConfig['buildNumber']         = {{ buildNumber }}
+releaseConfig['baseTag']             = '{{ baseTag }}'
+releaseConfig['partialUpdates']      = {
+{% for version, partial in partials.items() %}
+    '{{ version }}': {
+        'appVersion': '{{ partial['appVersion'] }}',
+        'buildNumber': {{ partial['buildNumber'] }},
+        'baseTag': '{{ partial['baseTag'] }}',
+    },
+{% endfor %}
+}
+#  Next (nightly) version info
+releaseConfig['nextAppVersion']      = '{{ version }}pre'
+releaseConfig['nextMilestone']       = releaseConfig['nextAppVersion']
+#  Repository configuration, for tagging
+releaseConfig['sourceRepositories']  = {
+    'mozilla': {
+        'name': 'mozilla-esr45',
+        'path': '{{ branch }}',
+        'revision': '{{ mozillaRevision }}',
+        'relbranch': {% if mozillaRelbranch %}'{{ mozillaRelbranch }}'{% else %}None{% endif %},
+        'bumpFiles': {
+            'browser/config/version.txt': {
+                'version': releaseConfig['appVersion'],
+                'nextVersion': releaseConfig['nextAppVersion']
+            },
+            'config/milestone.txt': {
+                'version': releaseConfig['milestone'],
+                'nextVersion': releaseConfig['nextMilestone']
+            },
+        }
+    }
+}
+#  L10n repositories
+releaseConfig['l10nRelbranch']       = None
+releaseConfig['l10nRepoPath']        = 'releases/l10n/mozilla-release'
+releaseConfig['l10nRevisionFile']    = 'l10n-changesets_mozilla-esr45'
+#  Support repositories
+releaseConfig['otherReposToTag']     = {
+    'build/compare-locales': 'RELEASE_0_9_5',
+    'build/buildbot': 'production-0.8',
+}
+
+# Platform configuration
+releaseConfig['enUSPlatforms']       = ('linux', 'linux64', 'win32', 'macosx64')
+releaseConfig['notifyPlatforms']     = releaseConfig['enUSPlatforms']
+releaseConfig['talosTestPlatforms']  = ()
+
+# Unittests
+releaseConfig['unittestPlatforms']   = ()
+releaseConfig['enableUnittests']     = False
+
+# SDK
+releaseConfig['packageSDK']          = True
+
+# L10n configuration
+releaseConfig['l10nPlatforms']       = releaseConfig['enUSPlatforms']
+releaseConfig['shippedLocalesPath']  = 'browser/locales/shipped-locales'
+releaseConfig['mergeLocales']        = True
+releaseConfig['l10nUsePymake']       = True
+
+# Mercurial account
+releaseConfig['hgUsername']          = 'ffxbld'
+releaseConfig['hgSshKey']            = '/home/mock_mozilla/.ssh/ffxbld_rsa'
+
+# Update-specific configuration
+releaseConfig['ftpServer']           = 'archive.mozilla.org'
+releaseConfig['stagingServer']       = 'upload.ffxbld.productdelivery.prod.mozaws.net'
+releaseConfig['S3Credentials']       = '/builds/release-s3.credentials'
+releaseConfig['S3Bucket']            = 'net-mozaws-prod-delivery-firefox'
+releaseConfig['bouncerServer']       = 'download.mozilla.org'
+releaseConfig['ausServerUrl']        = 'https://aus4.mozilla.org'
+releaseConfig['releaseNotesUrl']     = None
+releaseConfig['testOlderPartials']   = False
+releaseConfig['promptWaitTime']      = {{ promptWaitTime }}
+releaseConfig['useBetaChannel']      = 1
+releaseConfig['updateVerifyChunks']  = 6
+releaseConfig['mozconfigs']          = {
+    'linux': 'browser/config/mozconfigs/linux32/release',
+    'linux64': 'browser/config/mozconfigs/linux64/release',
+    'macosx64': 'browser/config/mozconfigs/macosx-universal/release',
+    'win32': 'browser/config/mozconfigs/win32/release',
+}
+releaseConfig['releaseChannel']        = 'esr'
+releaseConfig['updateChannels'] = {
+    # ruleId needs to be updated with the ID from AUS
+    "esr": {
+        "versionRegex": r"^.*$",
+        "ruleId": None,
+        "patcherConfig": "mozEsr45-branch-patcher2.cfg",
+        "localTestChannel": "esr-localtest",
+        "cdnTestChannel": "esr-cdntest",
+        "verifyConfigs": {
+            "linux":  "mozEsr45-firefox-linux.cfg",
+            "linux64":  "mozEsr45-firefox-linux64.cfg",
+            "macosx64": "mozEsr45-firefox-mac64.cfg",
+            "win32":  "mozEsr45-firefox-win32.cfg",
+        },
+        "testChannels": {
+            "esr-localtest": {
+                "ruleId": None,
+            },
+            "esr-cdntest": {
+                "ruleId": None,
+            },
+        },
+    },
+}
+
+
+# Partner repack configuration
+releaseConfig['doPartnerRepacks']    = False
+releaseConfig['partnersRepoPath']    = 'build/partner-repacks'
+
+# Tuxedo/Bouncer configuration
+releaseConfig['tuxedoServerUrl']     = 'https://bounceradmin.mozilla.com/api'
+releaseConfig['bouncer_submitter_config'] = 'releases/bouncer_firefox_esr.py'
+
+# Misc configuration
+releaseConfig['enableAutomaticPushToMirrors'] = False
+releaseConfig['use_mock'] = True
+releaseConfig['mock_platforms'] = ('linux','linux64')
+releaseConfig['bouncer_aliases'] = {
+    'Firefox-%(version)s': 'firefox-esr-latest',
+}
new file mode 100644
--- /dev/null
+++ b/mozilla/release-thunderbird-comm-esr45.py
@@ -0,0 +1,168 @@
+# ATTENTION:
+# If you are editing the non-template version of this file (eg, doesn't end
+# with .template), your change WILL get overwritten. If you're adding, removing,
+# or changing options as part of release automation changes you should be
+# editing the .template instead. This file should only by edited directly if
+# you're starting a release without Release Kickoff. You have been warned.
+releaseConfig = {}
+
+releaseConfig['base_clobber_url'] = 'https://api.pub.build.mozilla.org/clobberer/forceclobber'
+
+# Release Notification
+releaseConfig['AllRecipients']       = ['<release-automation-notifications-thunderbird@mozilla.org>',]
+releaseConfig['ImportantRecipients'] = ['<thunderbird-drivers@mozilla.org>',]
+releaseConfig['AVVendorsRecipients'] = ['<av-vendor-release-announce@mozilla.org>',]
+releaseConfig['releaseTemplates']    = 'release_templates'
+releaseConfig['messagePrefix']       = '[release] '
+
+# Basic product configuration
+#  Names for the product/files
+releaseConfig['productName']         = 'thunderbird'
+releaseConfig['stage_product']       = 'thunderbird'
+releaseConfig['appName']             = 'mail'
+releaseConfig['relbranchPrefix']     = 'THUNDERBIRD'
+releaseConfig['mozilla_srcdir']      = 'mozilla'
+#  Current version info
+releaseConfig['version']             = '38.6.0'
+releaseConfig['appVersion']          = '38.6.0'
+releaseConfig['milestone']           = releaseConfig['appVersion']
+releaseConfig['buildNumber']         = 1
+releaseConfig['baseTag']             = 'THUNDERBIRD_38_6_0'
+releaseConfig['partialUpdates']      = {
+
+    '38.4.0': {
+        'appVersion': '38.4.0',
+        'buildNumber': 3,
+        'baseTag': 'THUNDERBIRD_38_4_0',
+    },
+
+    '38.5.0': {
+        'appVersion': '38.5.0',
+        'buildNumber': 1,
+        'baseTag': 'THUNDERBIRD_38_5_0',
+    },
+
+    '38.5.1': {
+        'appVersion': '38.5.1',
+        'buildNumber': 2,
+        'baseTag': 'THUNDERBIRD_38_5_1',
+    },
+
+}
+#  Next (nightly) version info
+releaseConfig['nextAppVersion']      = releaseConfig['appVersion']
+releaseConfig['nextMilestone']       = releaseConfig['milestone']
+#  Repository configuration, for tagging
+releaseConfig['sourceRepositories']  = {
+    'comm': {
+        'name': 'comm-esr45',
+        'path': 'releases/comm-esr45',
+        'revision': '3d8ac06bcccc',
+        'relbranch': None,
+        'bumpFiles': {
+            'mail/config/version.txt': {
+                'version': releaseConfig['appVersion'],
+                'nextVersion': releaseConfig['nextAppVersion']
+            },
+        }
+    },
+    'mozilla': {
+        'name': 'mozilla-esr45',
+        'path': 'releases/mozilla-esr45',
+        'revision': '9dbd3e2909e1',
+        'relbranch': None,
+        'bumpFiles': {
+            'config/milestone.txt': {
+                'version': releaseConfig['milestone'],
+                'nextVersion': releaseConfig['nextMilestone']
+            },
+        }
+    }
+}
+#  L10n repositories
+releaseConfig['l10nRelbranch']       = None
+releaseConfig['l10nRepoPath']        = 'releases/l10n/mozilla-release'
+releaseConfig['l10nRevisionFile']    = 'l10n-changesets_thunderbird-esr45'
+#  Support repositories
+releaseConfig['otherReposToTag']     = {
+    'build/compare-locales': 'RELEASE_AUTOMATION',
+    'build/buildbot': 'production-0.8',
+}
+
+# Platform configuration
+releaseConfig['enUSPlatforms']       = ('linux', 'linux64', 'win32', 'macosx64')
+releaseConfig['notifyPlatforms']     = releaseConfig['enUSPlatforms']
+releaseConfig['talosTestPlatforms']  = ()
+
+# Unittests
+releaseConfig['unittestPlatforms']   = ()
+releaseConfig['enableUnittests']     = False
+
+# L10n configuration
+releaseConfig['l10nPlatforms']       = releaseConfig['enUSPlatforms']
+releaseConfig['shippedLocalesPath']  = 'mail/locales/shipped-locales'
+releaseConfig['mergeLocales']        = True
+releaseConfig['l10nUsePymake']       = True
+
+# Mercurial account
+releaseConfig['hgUsername']          = 'tbirdbld'
+releaseConfig['hgSshKey']            = '/home/mock_mozilla/.ssh/tbirdbld_dsa'
+
+# Update-specific configuration
+releaseConfig['ftpServer']           = 'archive.mozilla.org'
+releaseConfig['stagingServer']       = 'upload.tbirdbld.productdelivery.prod.mozaws.net'
+releaseConfig['S3Credentials']       = '/builds/release-s3.credentials'
+releaseConfig['S3Bucket']            = 'net-mozaws-prod-delivery-archive'
+releaseConfig['bouncerServer']       = 'download.mozilla.org'
+releaseConfig['ausServerUrl']        = 'https://aus4.mozilla.org'
+releaseConfig['releaseNotesUrl']     = 'http://live.mozillamessaging.com/thunderbird/releasenotes?locale=%locale%&platform=%platform%&version=%version%'
+releaseConfig['testOlderPartials']   = False
+releaseConfig['promptWaitTime']      = None
+releaseConfig['updateVerifyChunks']  = 6
+releaseConfig['mozconfigs']          = {
+    'linux': 'mail/config/mozconfigs/linux32/release',
+    'linux64': 'mail/config/mozconfigs/linux64/release',
+    'macosx64': 'mail/config/mozconfigs/macosx-universal/release',
+    'win32': 'mail/config/mozconfigs/win32/release',
+}
+releaseConfig['source_mozconfig']      = 'mail/config/mozconfigs/linux64/release'
+releaseConfig['releaseChannel']        = 'release'
+releaseConfig['updateChannels'] = {
+    # ruleId needs to be updated with the ID from AUS
+    "release": {
+        "versionRegex": r"^.*$",
+        "ruleId": 170,
+        "patcherConfig": "mozEsr45-thunderbird-branch-patcher2.cfg",
+        "localTestChannel": "release-localtest",
+        "cdnTestChannel": "release-cdntest",
+        "verifyConfigs": {
+            "linux":  "mozEsr45-thunderbird-linux.cfg",
+            "linux64":  "mozEsr45-thunderbird-linux64.cfg",
+            "macosx64": "mozEsr45-thunderbird-mac64.cfg",
+            "win32":  "mozEsr45-thunderbird-win32.cfg",
+        },
+        "testChannels": {
+            "release-localtest": {
+                "ruleId": 171,
+            },
+            "release-cdntest": {
+                "ruleId": 172,
+            },
+        },
+    },
+}
+
+# Partner repack configuration
+releaseConfig['doPartnerRepacks']    = False
+releaseConfig['partnersRepoPath']    = 'build/partner-repacks'
+
+# Tuxedo/Bouncer configuration
+releaseConfig['tuxedoServerUrl']     = 'https://bounceradmin.mozilla.com/api'
+releaseConfig['bouncer_submitter_config'] = 'releases/bouncer_thunderbird.py'
+releaseConfig['bouncer_aliases'] = {
+    'Thunderbird-%(version)s': 'thunderbird-latest',
+}
+
+# Misc configuration
+releaseConfig['use_mock'] = True
+releaseConfig['mock_platforms'] = ('linux','linux64')
\ No newline at end of file
new file mode 100644
--- /dev/null
+++ b/mozilla/release-thunderbird-comm-esr45.py.template
@@ -0,0 +1,156 @@
+# ATTENTION:
+# If you are editing the non-template version of this file (eg, doesn't end
+# with .template), your change WILL get overwritten. If you're adding, removing,
+# or changing options as part of release automation changes you should be
+# editing the .template instead. This file should only by edited directly if
+# you're starting a release without Release Kickoff. You have been warned.
+releaseConfig = {}
+
+releaseConfig['base_clobber_url'] = 'https://api.pub.build.mozilla.org/clobberer/forceclobber'
+
+# Release Notification
+releaseConfig['AllRecipients']       = ['<release-automation-notifications-thunderbird@mozilla.org>',]
+releaseConfig['ImportantRecipients'] = ['<thunderbird-drivers@mozilla.org>',]
+releaseConfig['AVVendorsRecipients'] = ['<av-vendor-release-announce@mozilla.org>',]
+releaseConfig['releaseTemplates']    = 'release_templates'
+releaseConfig['messagePrefix']       = '[release] '
+
+# Basic product configuration
+#  Names for the product/files
+releaseConfig['productName']         = 'thunderbird'
+releaseConfig['stage_product']       = 'thunderbird'
+releaseConfig['appName']             = 'mail'
+releaseConfig['relbranchPrefix']     = 'THUNDERBIRD'
+releaseConfig['mozilla_srcdir']      = 'mozilla'
+#  Current version info
+releaseConfig['version']             = '{{ version }}'
+releaseConfig['appVersion']          = '{{ appVersion }}'
+releaseConfig['milestone']           = releaseConfig['appVersion']
+releaseConfig['buildNumber']         = {{ buildNumber }}
+releaseConfig['baseTag']             = '{{ baseTag }}'
+releaseConfig['partialUpdates']      = {
+{% for version, partial in partials.items() %}
+    '{{ version }}': {
+        'appVersion': '{{ partial['appVersion'] }}',
+        'buildNumber': {{ partial['buildNumber'] }},
+        'baseTag': '{{ partial['baseTag'] }}',
+    },
+{% endfor %}
+}
+#  Next (nightly) version info
+releaseConfig['nextAppVersion']      = releaseConfig['appVersion']
+releaseConfig['nextMilestone']       = releaseConfig['milestone']
+#  Repository configuration, for tagging
+releaseConfig['sourceRepositories']  = {
+    'comm': {
+        'name': 'comm-esr45',
+        'path': 'releases/comm-esr45',
+        'revision': '{{ commRevision }}',
+        'relbranch': {% if commRelbranch %}'{{ commRelbranch }}'{% else %}None{% endif %},
+        'bumpFiles': {
+            'mail/config/version.txt': {
+                'version': releaseConfig['appVersion'],
+                'nextVersion': releaseConfig['nextAppVersion']
+            },
+        }
+    },
+    'mozilla': {
+        'name': 'mozilla-esr45',
+        'path': 'releases/mozilla-esr45',
+        'revision': '{{ mozillaRevision }}',
+        'relbranch': {% if mozillaRelbranch %}'{{ mozillaRelbranch }}'{% else %}None{% endif %},
+        'bumpFiles': {
+            'config/milestone.txt': {
+                'version': releaseConfig['milestone'],
+                'nextVersion': releaseConfig['nextMilestone']
+            },
+        }
+    }
+}
+#  L10n repositories
+releaseConfig['l10nRelbranch']       = None
+releaseConfig['l10nRepoPath']        = 'releases/l10n/mozilla-release'
+releaseConfig['l10nRevisionFile']    = 'l10n-changesets_thunderbird-esr45'
+#  Support repositories
+releaseConfig['otherReposToTag']     = {
+    'build/compare-locales': 'RELEASE_AUTOMATION',
+    'build/buildbot': 'production-0.8',
+}
+
+# Platform configuration
+releaseConfig['enUSPlatforms']       = ('linux', 'linux64', 'win32', 'macosx64')
+releaseConfig['notifyPlatforms']     = releaseConfig['enUSPlatforms']
+releaseConfig['talosTestPlatforms']  = ()
+
+# Unittests
+releaseConfig['unittestPlatforms']   = ()
+releaseConfig['enableUnittests']     = False
+
+# L10n configuration
+releaseConfig['l10nPlatforms']       = releaseConfig['enUSPlatforms']
+releaseConfig['shippedLocalesPath']  = 'mail/locales/shipped-locales'
+releaseConfig['mergeLocales']        = True
+releaseConfig['l10nUsePymake']       = True
+
+# Mercurial account
+releaseConfig['hgUsername']          = 'tbirdbld'
+releaseConfig['hgSshKey']            = '/home/mock_mozilla/.ssh/tbirdbld_dsa'
+
+# Update-specific configuration
+releaseConfig['ftpServer']           = 'archive.mozilla.org'
+releaseConfig['stagingServer']       = 'upload.tbirdbld.productdelivery.prod.mozaws.net'
+releaseConfig['S3Credentials']       = '/builds/release-s3.credentials'
+releaseConfig['S3Bucket']            = 'net-mozaws-prod-delivery-archive'
+releaseConfig['bouncerServer']       = 'download.mozilla.org'
+releaseConfig['ausServerUrl']        = 'https://aus4.mozilla.org'
+releaseConfig['releaseNotesUrl']     = 'http://live.mozillamessaging.com/thunderbird/releasenotes?locale=%locale%&platform=%platform%&version=%version%'
+releaseConfig['testOlderPartials']   = False
+releaseConfig['promptWaitTime']      = {{ promptWaitTime }}
+releaseConfig['updateVerifyChunks']  = 6
+releaseConfig['mozconfigs']          = {
+    'linux': 'mail/config/mozconfigs/linux32/release',
+    'linux64': 'mail/config/mozconfigs/linux64/release',
+    'macosx64': 'mail/config/mozconfigs/macosx-universal/release',
+    'win32': 'mail/config/mozconfigs/win32/release',
+}
+releaseConfig['source_mozconfig']      = 'mail/config/mozconfigs/linux64/release'
+releaseConfig['releaseChannel']        = 'release'
+releaseConfig['updateChannels'] = {
+    # ruleId needs to be updated with the ID from AUS
+    "release": {
+        "versionRegex": r"^.*$",
+        "ruleId": None,
+        "patcherConfig": "mozEsr45-thunderbird-branch-patcher2.cfg",
+        "localTestChannel": "release-localtest",
+        "cdnTestChannel": "release-cdntest",
+        "verifyConfigs": {
+            "linux":  "mozEsr45-thunderbird-linux.cfg",
+            "linux64":  "mozEsr45-thunderbird-linux64.cfg",
+            "macosx64": "mozEsr45-thunderbird-mac64.cfg",
+            "win32":  "mozEsr45-thunderbird-win32.cfg",
+        },
+        "testChannels": {
+            "release-localtest": {
+                "ruleId": None,
+            },
+            "release-cdntest": {
+                "ruleId": None,
+            },
+        },
+    },
+}
+
+# Partner repack configuration
+releaseConfig['doPartnerRepacks']    = False
+releaseConfig['partnersRepoPath']    = 'build/partner-repacks'
+
+# Tuxedo/Bouncer configuration
+releaseConfig['tuxedoServerUrl']     = 'https://bounceradmin.mozilla.com/api'
+releaseConfig['bouncer_submitter_config'] = 'releases/bouncer_thunderbird.py'
+releaseConfig['bouncer_aliases'] = {
+    'Thunderbird-%(version)s': 'thunderbird-latest',
+}
+
+# Misc configuration
+releaseConfig['use_mock'] = True
+releaseConfig['mock_platforms'] = ('linux','linux64')
--- a/mozilla/staging_config.py
+++ b/mozilla/staging_config.py
@@ -94,16 +94,22 @@ BRANCHES = {
         'file_update_on_closed_tree': False,
     },
     'mozilla-esr38': {
         'enable_blocklist_update': False,
         'enable_hsts_update': False,
         'enable_hpkp_update': False,
         'file_update_on_closed_tree': False,
     },
+    'mozilla-esr45': {
+        'enable_blocklist_update': False,
+        'enable_hsts_update': False,
+        'enable_hpkp_update': False,
+        'file_update_on_closed_tree': False,
+    },
     'try': {
         'download_base_url': 'http://dev-stage01.srv.releng.scl3.mozilla.com/pub/mozilla.org/firefox',
         'mobile_download_base_url': 'http://dev-stage01.srv.releng.scl3.mozilla.com/pub/mozilla.org/mobile',
         'enable_mail_notifier': False, # Set to True when testing
         'email_override': [], # Set to your address when testing
         'package_url': 'http://ftp.stage.mozaws.net/pub/firefox/try-builds',
         'talos_masters': [],
         'platforms': {
new file mode 100644
--- /dev/null
+++ b/mozilla/staging_release-firefox-mozilla-esr45.py
@@ -0,0 +1,131 @@
+# ATTENTION:
+# If you are editing the non-template version of this file (eg, doesn't end
+# with .template), your change WILL get overwritten. If you're adding, removing,
+# or changing options as part of release automation changes you should be
+# editing the .template instead. This file should only by edited directly if
+# you're starting a release without Release Kickoff. You have been warned.
+EMAIL_RECIPIENTS = []
+
+releaseConfig = {}
+releaseConfig['base_clobber_url'] = 'https://api-pub-build.allizom.org/clobberer/forceclobber'
+
+# Release Notification
+releaseConfig['AllRecipients']       = EMAIL_RECIPIENTS
+releaseConfig['ImportantRecipients'] = EMAIL_RECIPIENTS
+releaseConfig['AVVendorsRecipients'] = EMAIL_RECIPIENTS
+releaseConfig['releaseTemplates']    = 'release_templates'
+releaseConfig['messagePrefix']       = '[staging-release] '
+
+# Basic product configuration
+#  Names for the product/files
+releaseConfig['productName']         = 'firefox'
+releaseConfig['stage_product']       = 'firefox'
+releaseConfig['appName']             = 'browser'
+#  Current version info
+releaseConfig['version']             = '38.0esr'
+releaseConfig['appVersion']          = '38.0'
+releaseConfig['milestone']           = releaseConfig['appVersion']
+releaseConfig['buildNumber']         = 1
+releaseConfig['baseTag']             = 'FIREFOX_38_0esr'
+releaseConfig['partialUpdates']      = {}
+#  Next (nightly) version info
+releaseConfig['nextAppVersion']      = '{{ version }}pre'
+releaseConfig['nextMilestone']       = releaseConfig['nextAppVersion']
+#  Repository configuration, for tagging
+releaseConfig['sourceRepositories']  = {
+    'mozilla': {
+        'name': 'mozilla-esr45',
+        'path': 'users/stage-ffxbld/mozilla-esr45',
+        'revision': 'default',
+        'relbranch': None,
+        'bumpFiles': {
+            'browser/config/version.txt': {
+                'version': releaseConfig['appVersion'],
+                'nextVersion': releaseConfig['nextAppVersion']
+            },
+            'config/milestone.txt': {
+                'version': releaseConfig['milestone'],
+                'nextVersion': releaseConfig['nextMilestone']
+            },
+        }
+    }
+}
+#  L10n repositories
+releaseConfig['l10nRelbranch']       = None
+releaseConfig['l10nRepoPath']        = 'users/stage-ffxbld'
+releaseConfig['l10nRevisionFile']    = 'l10n-changesets_mozilla-esr45'
+#  Support repositories
+releaseConfig['otherReposToTag']     = {
+    'users/stage-ffxbld/compare-locales': 'RELEASE_0_9_5',
+    'users/stage-ffxbld/buildbot': 'production-0.8',
+    'users/stage-ffxbld/partner-repacks': 'default',
+}
+
+# Platform configuration
+releaseConfig['enUSPlatforms']       = ('linux', 'linux64', 'win32', 'macosx64')
+releaseConfig['notifyPlatforms']     = releaseConfig['enUSPlatforms']
+releaseConfig['talosTestPlatforms']  = releaseConfig['enUSPlatforms']
+
+# Unittests
+releaseConfig['unittestPlatforms']   = ()
+releaseConfig['enableUnittests']     = True
+
+# L10n configuration
+releaseConfig['l10nPlatforms']       = releaseConfig['enUSPlatforms']
+releaseConfig['shippedLocalesPath']  = 'browser/locales/shipped-locales'
+releaseConfig['l10nChunks']          = 6
+releaseConfig['mergeLocales']        = True
+releaseConfig['l10nUsePymake']       = True
+
+# Mercurial account
+releaseConfig['hgUsername']          = 'stage-ffxbld'
+releaseConfig['hgSshKey']            = '/home/mock_mozilla/.ssh/ffxbld_rsa'
+
+# Update-specific configuration
+releaseConfig['ftpServer']           = 'ftp.stage.mozaws.net'
+releaseConfig['stagingServer']       = 'upload.ffxbld.productdelivery.stage.mozaws.net'
+releaseConfig['previousReleasesStagingServer'] = 'archive.mozilla.org'
+releaseConfig['S3Credentials']       = '/builds/release-s3.credentials'
+releaseConfig['S3Bucket']            = 'net-mozaws-stage-delivery-firefox'
+releaseConfig['bouncerServer']       = 'download.mozilla.org'
+releaseConfig['ausServerUrl']        = 'https://aus4-dev.allizom.org'
+releaseConfig['releaseNotesUrl']     = None
+releaseConfig['testOlderPartials']   = False
+releaseConfig['releaseChannel']      = 'esr'
+releaseConfig['updateChannels'] = {
+    # ruleId needs to be updated with the ID from AUS
+    "esr": {
+        "versionRegex": r"^.*$",
+        "ruleId": 57,
+        "patcherConfig": "mozEsr45-branch-patcher2.cfg",
+        "localTestChannel": "esr-localtest",
+        "cdnTestChannel": "esr-cdntest",
+        "verifyConfigs": {
+            "linux":  "mozEsr45-firefox-linux.cfg",
+            "linux64":  "mozEsr45-firefox-linux64.cfg",
+            "macosx64": "mozEsr45-firefox-mac64.cfg",
+            "win32":  "mozEsr45-firefox-win32.cfg",
+        },
+        "testChannels": {
+            "esr-cdntest": {
+                "ruleId": 58,
+            },
+            "esr-localtest": {
+                "ruleId": 59,
+            },
+        }
+    }
+}
+
+# Partner repack configuration
+releaseConfig['doPartnerRepacks']    = False
+releaseConfig['partnersRepoPath']    = 'users/stage-ffxbld/partner-repacks'
+
+# Tuxedo/Bouncer configuration
+releaseConfig['tuxedoServerUrl']     = 'https://admin-bouncer.stage.mozaws.net/api'
+releaseConfig['bouncer_submitter_config'] = 'releases/bouncer_firefox_esr.py'
+
+# Misc configuration
+releaseConfig['build_tools_repo_path'] = "users/stage-ffxbld/tools"
+releaseConfig['use_mock'] = True
+releaseConfig['mock_platforms'] = ('linux','linux64')
new file mode 100644
--- /dev/null
+++ b/mozilla/staging_release-firefox-mozilla-esr45.py.template
@@ -0,0 +1,148 @@
+# ATTENTION:
+# If you are editing the non-template version of this file (eg, doesn't end
+# with .template), your change WILL get overwritten. If you're adding, removing,
+# or changing options as part of release automation changes you should be
+# editing the .template instead. This file should only by edited directly if
+# you're starting a release without Release Kickoff. You have been warned.
+EMAIL_RECIPIENTS = []
+
+releaseConfig = {}
+releaseConfig['base_clobber_url'] = 'https://api-pub-build.allizom.org/clobberer/forceclobber'
+
+# Release Notification
+releaseConfig['AllRecipients']       = EMAIL_RECIPIENTS
+releaseConfig['ImportantRecipients'] = EMAIL_RECIPIENTS
+releaseConfig['AVVendorsRecipients'] = EMAIL_RECIPIENTS
+releaseConfig['releaseTemplates']    = 'release_templates'
+releaseConfig['messagePrefix']       = '[staging-release] '
+
+# Basic product configuration
+#  Names for the product/files
+releaseConfig['productName']         = 'firefox'
+releaseConfig['stage_product']       = 'firefox'
+releaseConfig['appName']             = 'browser'
+#  Current version info
+releaseConfig['version']             = '{{ version }}'
+releaseConfig['appVersion']          = '{{ appVersion }}'
+releaseConfig['milestone']           = releaseConfig['appVersion']
+releaseConfig['buildNumber']         = {{ buildNumber }}
+releaseConfig['baseTag']             = '{{ baseTag }}'
+releaseConfig['partialUpdates']      = {
+{% for version, partial in partials.items() %}
+    '{{ version }}': {
+        'appVersion': '{{ partial['appVersion'] }}',
+        'buildNumber': {{ partial['buildNumber'] }},
+        'baseTag': '{{ partial['baseTag'] }}',
+    },
+{% endfor %}
+}
+#  Next (nightly) version info
+releaseConfig['nextAppVersion']      = '{{ version }}pre'
+releaseConfig['nextMilestone']       = releaseConfig['nextAppVersion']
+#  Repository configuration, for tagging
+releaseConfig['sourceRepositories']  = {
+    'mozilla': {
+        'name': 'mozilla-esr45',
+        'path': '{{ branch }}',
+        'revision': '{{ mozillaRevision }}',
+        'relbranch': {% if mozillaRelbranch %}'{{ mozillaRelbranch }}'{% else %}None{% endif %},
+        'bumpFiles': {
+            'browser/config/version.txt': {
+                'version': releaseConfig['appVersion'],
+                'nextVersion': releaseConfig['nextAppVersion']
+            },
+            'config/milestone.txt': {
+                'version': releaseConfig['milestone'],
+                'nextVersion': releaseConfig['nextMilestone']
+            },
+        }
+    }
+}
+#  L10n repositories
+releaseConfig['l10nRelbranch']       = None
+releaseConfig['l10nRepoPath']        = 'users/stage-ffxbld'
+releaseConfig['l10nRevisionFile']    = 'l10n-changesets_mozilla-esr45'
+#  Support repositories
+releaseConfig['otherReposToTag']     = {
+    'users/stage-ffxbld/compare-locales': 'RELEASE_0_9_5',
+    'users/stage-ffxbld/buildbot': 'production-0.8',
+}
+
+# Platform configuration
+releaseConfig['enUSPlatforms']       = ('linux', 'linux64', 'win32', 'macosx64')
+releaseConfig['notifyPlatforms']     = releaseConfig['enUSPlatforms']
+releaseConfig['talosTestPlatforms']  = ()
+
+# Unittests
+releaseConfig['unittestPlatforms']   = ()
+releaseConfig['enableUnittests']     = False
+
+# SDK
+releaseConfig['packageSDK']          = True
+
+# L10n configuration
+releaseConfig['l10nPlatforms']       = releaseConfig['enUSPlatforms']
+releaseConfig['shippedLocalesPath']  = 'browser/locales/shipped-locales'
+releaseConfig['l10nChunks']          = 6
+releaseConfig['mergeLocales']        = True
+releaseConfig['l10nUsePymake']       = True
+
+# Mercurial account
+releaseConfig['hgUsername']          = 'stage-ffxbld'
+releaseConfig['hgSshKey']            = '/home/mock_mozilla/.ssh/ffxbld_rsa'
+
+# Update-specific configuration
+releaseConfig['ftpServer']           = 'ftp.stage.mozaws.net'
+releaseConfig['stagingServer']       = 'upload.ffxbld.productdelivery.stage.mozaws.net'
+releaseConfig['previousReleasesStagingServer'] = 'archive.mozilla.org'
+releaseConfig['S3Credentials']       = '/builds/release-s3.credentials'
+releaseConfig['S3Bucket']            = 'net-mozaws-stage-delivery-firefox'
+releaseConfig['bouncerServer']       = 'download.mozilla.org'
+releaseConfig['ausServerUrl']        = 'https://aus4-dev.allizom.org'
+releaseConfig['releaseNotesUrl']     = None
+releaseConfig['testOlderPartials']   = False
+releaseConfig['promptWaitTime']      = {{ promptWaitTime }}
+releaseConfig['mozconfigs']          = {
+    'linux': 'browser/config/mozconfigs/linux32/release',
+    'linux64': 'browser/config/mozconfigs/linux64/release',
+    'macosx64': 'browser/config/mozconfigs/macosx-universal/release',
+    'win32': 'browser/config/mozconfigs/win32/release',
+}
+releaseConfig['releaseChannel']        = 'esr'
+releaseConfig['updateChannels'] = {
+    # ruleId needs to be updated with the ID from AUS
+    "esr": {
+        "versionRegex": r"^.*$",
+        "ruleId": None,
+        "patcherConfig": "mozEsr45-branch-patcher2.cfg",
+        "localTestChannel": "esr-localtest",
+        "cdnTestChannel": "esr-cdntest",
+        "verifyConfigs": {
+            "linux":  "mozEsr45-firefox-linux.cfg",
+            "linux64":  "mozEsr45-firefox-linux64.cfg",
+            "macosx64": "mozEsr45-firefox-mac64.cfg",
+            "win32":  "mozEsr45-firefox-win32.cfg",
+        },
+        "testChannels": {
+            "esr-localtest": {
+                "ruleId": None,
+            },
+            "esr-cdntest": {
+                "ruleId": None,
+            },
+        }
+    }
+}
+
+# Partner repack configuration
+releaseConfig['doPartnerRepacks']    = False
+releaseConfig['partnersRepoPath']    = 'users/stage-ffxbld/partner-repacks'
+
+# Tuxedo/Bouncer configuration
+releaseConfig['tuxedoServerUrl']     = 'https://admin-bouncer.stage.mozaws.net/api'
+releaseConfig['bouncer_submitter_config'] = 'releases/bouncer_firefox_esr.py'
+
+# Misc configuration
+releaseConfig['build_tools_repo_path'] = "users/stage-ffxbld/tools"
+releaseConfig['use_mock'] = True
+releaseConfig['mock_platforms'] = ('linux','linux64')
new file mode 100644
--- /dev/null
+++ b/mozilla/staging_release-thunderbird-comm-esr45.py
@@ -0,0 +1,160 @@
+# ATTENTION:
+# If you are editing the non-template version of this file (eg, doesn't end
+# with .template), your change WILL get overwritten. If you're adding, removing,
+# or changing options as part of release automation changes you should be
+# editing the .template instead. This file should only by edited directly if
+# you're starting a release without Release Kickoff. You have been warned.
+EMAIL_RECIPIENTS = ['<nthomas@mozilla.com>', '<bhearsum@mozilla.com>', '<rail@mozilla.com>']
+
+releaseConfig = {}
+releaseConfig['base_clobber_url'] = 'https://api-pub-build.allizom.org/clobberer/forceclobber'
+
+# Release Notification
+releaseConfig['AllRecipients']       = EMAIL_RECIPIENTS
+releaseConfig['ImportantRecipients'] = EMAIL_RECIPIENTS
+releaseConfig['AVVendorsRecipients'] = EMAIL_RECIPIENTS
+releaseConfig['releaseTemplates']    = 'release_templates'
+releaseConfig['messagePrefix']       = '[staging-release] '
+
+# Basic product configuration
+#  Names for the product/files
+releaseConfig['productName']         = 'thunderbird'
+releaseConfig['stage_product']       = 'thunderbird'
+releaseConfig['appName']             = 'mail'
+releaseConfig['relbranchPrefix']     = 'THUNDERBIRD'
+releaseConfig['mozilla_srcdir']      = 'mozilla'
+#  Current version info
+releaseConfig['version']             = '38.8.0'
+releaseConfig['appVersion']          = '38.8.0'
+releaseConfig['milestone']           = releaseConfig['appVersion']
+releaseConfig['buildNumber']         = 3
+releaseConfig['baseTag']             = 'THUNDERBIRD_38_8_0'
+releaseConfig['partialUpdates']      = {
+
+    '38.2.0': {
+        'appVersion': '38.2.0',
+        'buildNumber': 1,
+        'baseTag': 'THUNDERBIRD_38_2_0',
+    },
+
+}
+#  Next (nightly) version info
+releaseConfig['nextAppVersion']      = releaseConfig['appVersion']
+releaseConfig['nextMilestone']       = releaseConfig['milestone']
+#  Repository configuration, for tagging
+releaseConfig['sourceRepositories']  = {
+    'comm': {
+        'name': 'comm-esr45',
+        'path': 'users/stage-ffxbld/comm-esr45',
+        'revision': '966727b5cb86',
+        'relbranch': None,
+        'bumpFiles': {
+            'mail/config/version.txt': {
+                'version': releaseConfig['appVersion'],
+                'nextVersion': releaseConfig['nextAppVersion']
+            },
+        }
+    },
+    'mozilla': {
+        'name': 'mozilla-esr45',
+        'path': 'users/stage-ffxbld/mozilla-esr45',
+        'revision': 'd33b02393d11',
+        'relbranch': None,
+        'bumpFiles': {
+            'config/milestone.txt': {
+                'version': releaseConfig['milestone'],
+                'nextVersion': releaseConfig['nextMilestone']
+            },
+        }
+    }
+}
+#  L10n repositories
+releaseConfig['l10nRelbranch']       = None
+releaseConfig['l10nRepoPath']        = 'users/stage-ffxbld'
+releaseConfig['l10nRevisionFile']    = 'l10n-changesets_thunderbird-esr45'
+#  Support repositories
+releaseConfig['otherReposToTag']     = {
+    'users/stage-ffxbld/compare-locales': 'RELEASE_AUTOMATION',
+    'users/stage-ffxbld/buildbot': 'production-0.8',
+}
+
+# Platform configuration
+releaseConfig['enUSPlatforms']       = ('linux', 'linux64', 'win32', 'macosx64')
+releaseConfig['notifyPlatforms']     = releaseConfig['enUSPlatforms']
+releaseConfig['talosTestPlatforms']  = ()
+
+# Unittests
+releaseConfig['unittestPlatforms']   = ()
+releaseConfig['enableUnittests']     = False
+
+# L10n configuration
+releaseConfig['l10nPlatforms']       = releaseConfig['enUSPlatforms']
+releaseConfig['shippedLocalesPath']  = 'mail/locales/shipped-locales'
+releaseConfig['l10nChunks']          = 1
+releaseConfig['mergeLocales']        = True
+releaseConfig['l10nUsePymake']       = True
+
+# Mercurial account
+releaseConfig['hgUsername']          = 'stage-ffxbld'
+releaseConfig['hgSshKey']            = '/home/mock_mozilla/.ssh/ffxbld_rsa'
+
+# Update-specific configuration
+releaseConfig['ftpServer']           = 'ftp.stage.mozaws.net'
+releaseConfig['stagingServer']       = 'upload.tbirdbld.productdelivery.stage.mozaws.net'
+releaseConfig['previousReleasesStagingServer'] = 'archive.mozilla.org'
+releaseConfig['S3Credentials']       = '/builds/release-s3.credentials'
+releaseConfig['S3Bucket']            = 'net-mozaws-stage-delivery-archive'
+releaseConfig['bouncerServer']       = 'download.mozilla.org'
+releaseConfig['ausServerUrl']        = 'https://aus4-dev.allizom.org'
+releaseConfig['releaseNotesUrl']     = 'http://live.mozillamessaging.com/thunderbird/releasenotes?locale=%locale%&platform=%platform%&version=%version%'
+releaseConfig['testOlderPartials']   = False
+releaseConfig['promptWaitTime']      = None
+releaseConfig['updateVerifyChunks']  = 2
+releaseConfig['mozconfigs']          = {
+    'linux': 'mail/config/mozconfigs/linux32/release',
+    'linux64': 'mail/config/mozconfigs/linux64/release',
+    'macosx64': 'mail/config/mozconfigs/macosx-universal/release',
+    'win32': 'mail/config/mozconfigs/win32/release',
+}
+releaseConfig['source_mozconfig']      = 'mail/config/mozconfigs/linux64/release'
+releaseConfig['releaseChannel']        = 'release'
+releaseConfig['updateChannels'] = {
+    # ruleId needs to be updated with the ID from AUS
+    "release": {
+        "versionRegex": r"^.*$",
+        "ruleId": 60,
+        "patcherConfig": "mozEsr45-thunderbird-branch-patcher2.cfg",
+        "localTestChannel": "release-localtest",
+        "cdnTestChannel": "release-cdntest",
+        "verifyConfigs": {
+            "linux":  "mozEsr45-thunderbird-linux.cfg",
+            "linux64":  "mozEsr45-thunderbird-linux64.cfg",
+            "macosx64": "mozEsr45-thunderbird-mac64.cfg",
+            "win32":  "mozEsr45-thunderbird-win32.cfg",
+        },
+        "testChannels": {
+            "release-localtest": {
+                "ruleId": 61,
+            },
+            "release-cdntest": {
+                "ruleId": 62,
+            },
+        },
+    },
+}
+
+# Partner repack configuration
+releaseConfig['doPartnerRepacks']    = False
+releaseConfig['partnersRepoPath']    = 'users/stage-ffxbld/partner-repacks'
+
+# Tuxedo/Bouncer configuration
+releaseConfig['tuxedoServerUrl']     = 'https://admin-bouncer.stage.mozaws.net/api'
+releaseConfig['bouncer_submitter_config'] = 'releases/bouncer_thunderbird.py'
+releaseConfig['bouncer_aliases'] = {
+    'Thunderbird-%(version)s': 'thunderbird-latest',
+}
+
+# Misc configuration
+releaseConfig['build_tools_repo_path'] = "users/stage-ffxbld/tools"
+releaseConfig['use_mock'] = True
+releaseConfig['mock_platforms'] = ('linux','linux64')
new file mode 100644
--- /dev/null
+++ b/mozilla/staging_release-thunderbird-comm-esr45.py.template
@@ -0,0 +1,160 @@
+# ATTENTION:
+# If you are editing the non-template version of this file (eg, doesn't end
+# with .template), your change WILL get overwritten. If you're adding, removing,
+# or changing options as part of release automation changes you should be
+# editing the .template instead. This file should only by edited directly if
+# you're starting a release without Release Kickoff. You have been warned.
+EMAIL_RECIPIENTS = ['<nthomas@mozilla.com>', '<bhearsum@mozilla.com>', '<rail@mozilla.com>']
+
+releaseConfig = {}
+releaseConfig['base_clobber_url'] = 'https://api-pub-build.allizom.org/clobberer/forceclobber'
+
+# Release Notification
+releaseConfig['AllRecipients']       = EMAIL_RECIPIENTS
+releaseConfig['ImportantRecipients'] = EMAIL_RECIPIENTS
+releaseConfig['AVVendorsRecipients'] = EMAIL_RECIPIENTS
+releaseConfig['releaseTemplates']    = 'release_templates'
+releaseConfig['messagePrefix']       = '[staging-release] '
+
+# Basic product configuration
+#  Names for the product/files
+releaseConfig['productName']         = 'thunderbird'
+releaseConfig['stage_product']       = 'thunderbird'
+releaseConfig['appName']             = 'mail'
+releaseConfig['relbranchPrefix']     = 'THUNDERBIRD'
+releaseConfig['mozilla_srcdir']      = 'mozilla'
+#  Current version info
+releaseConfig['version']             = '{{ version }}'
+releaseConfig['appVersion']          = '{{ appVersion }}'
+releaseConfig['milestone']           = releaseConfig['appVersion']
+releaseConfig['buildNumber']         = {{ buildNumber }}
+releaseConfig['baseTag']             = '{{ baseTag }}'
+releaseConfig['partialUpdates']      = {
+{% for version, partial in partials.items() %}
+    '{{ version }}': {
+        'appVersion': '{{ partial['appVersion'] }}',
+        'buildNumber': {{ partial['buildNumber'] }},
+        'baseTag': '{{ partial['baseTag'] }}',
+    },
+{% endfor %}
+}
+#  Next (nightly) version info
+releaseConfig['nextAppVersion']      = releaseConfig['appVersion']
+releaseConfig['nextMilestone']       = releaseConfig['milestone']
+#  Repository configuration, for tagging
+releaseConfig['sourceRepositories']  = {
+    'comm': {
+        'name': 'comm-esr45',
+        'path': '{{ branch }}',
+        'revision': '{{ commRevision }}',
+        'relbranch': {% if commRelbranch %}'{{ commRelbranch }}'{% else %}None{% endif %},
+        'bumpFiles': {
+            'mail/config/version.txt': {
+                'version': releaseConfig['appVersion'],
+                'nextVersion': releaseConfig['nextAppVersion']
+            },
+        }
+    },
+    'mozilla': {
+        'name': 'mozilla-esr45',
+        'path': 'users/stage-ffxbld/mozilla-esr45',
+        'revision': '{{ mozillaRevision }}',
+        'relbranch': {% if mozillaRelbranch %}'{{ mozillaRelbranch }}'{% else %}None{% endif %},
+        'bumpFiles': {
+            'config/milestone.txt': {
+                'version': releaseConfig['milestone'],
+                'nextVersion': releaseConfig['nextMilestone']
+            },
+        }
+    }
+}
+#  L10n repositories
+releaseConfig['l10nRelbranch']       = None
+releaseConfig['l10nRepoPath']        = 'users/stage-ffxbld'
+releaseConfig['l10nRevisionFile']    = 'l10n-changesets_thunderbird-esr45'
+#  Support repositories
+releaseConfig['otherReposToTag']     = {
+    'users/stage-ffxbld/compare-locales': 'RELEASE_AUTOMATION',
+    'users/stage-ffxbld/buildbot': 'production-0.8',
+}
+
+# Platform configuration
+releaseConfig['enUSPlatforms']       = ('linux', 'linux64', 'win32', 'macosx64')
+releaseConfig['notifyPlatforms']     = releaseConfig['enUSPlatforms']
+releaseConfig['talosTestPlatforms']  = ()
+
+# Unittests
+releaseConfig['unittestPlatforms']   = ()
+releaseConfig['enableUnittests']     = False
+
+# L10n configuration
+releaseConfig['l10nPlatforms']       = releaseConfig['enUSPlatforms']
+releaseConfig['shippedLocalesPath']  = 'mail/locales/shipped-locales'
+releaseConfig['l10nChunks']          = 1
+releaseConfig['mergeLocales']        = True
+releaseConfig['l10nUsePymake']       = True
+
+# Mercurial account
+releaseConfig['hgUsername']          = 'stage-ffxbld'
+releaseConfig['hgSshKey']            = '/home/mock_mozilla/.ssh/ffxbld_rsa'
+
+# Update-specific configuration
+releaseConfig['ftpServer']           = 'ftp.stage.mozaws.net'
+releaseConfig['stagingServer']       = 'upload.tbirdbld.productdelivery.stage.mozaws.net'
+releaseConfig['previousReleasesStagingServer'] = 'archive.mozilla.org'
+releaseConfig['S3Credentials']       = '/builds/release-s3.credentials'
+releaseConfig['S3Bucket']            = 'net-mozaws-stage-delivery-archive'
+releaseConfig['bouncerServer']       = 'download.mozilla.org'
+releaseConfig['ausServerUrl']        = 'https://aus4-dev.allizom.org'
+releaseConfig['releaseNotesUrl']     = 'http://live.mozillamessaging.com/thunderbird/releasenotes?locale=%locale%&platform=%platform%&version=%version%'
+releaseConfig['testOlderPartials']   = False
+releaseConfig['promptWaitTime']      = {{ promptWaitTime }}
+releaseConfig['updateVerifyChunks']  = 2
+releaseConfig['mozconfigs']          = {
+    'linux': 'mail/config/mozconfigs/linux32/release',
+    'linux64': 'mail/config/mozconfigs/linux64/release',
+    'macosx64': 'mail/config/mozconfigs/macosx-universal/release',
+    'win32': 'mail/config/mozconfigs/win32/release',
+}
+releaseConfig['source_mozconfig']      = 'mail/config/mozconfigs/linux64/release'
+releaseConfig['releaseChannel']        = 'release'
+releaseConfig['updateChannels'] = {
+    # ruleId needs to be updated with the ID from AUS
+    "release": {
+        "versionRegex": r"^.*$",
+        "ruleId": None,
+        "patcherConfig": "mozEsr45-thunderbird-branch-patcher2.cfg",
+        "localTestChannel": "release-localtest",
+        "cdnTestChannel": "release-cdntest",
+        "verifyConfigs": {
+            "linux":  "mozEsr45-thunderbird-linux.cfg",
+            "linux64":  "mozEsr45-thunderbird-linux64.cfg",
+            "macosx64": "mozEsr45-thunderbird-mac64.cfg",
+            "win32":  "mozEsr45-thunderbird-win32.cfg",
+        },
+        "testChannels": {
+            "release-localtest": {
+                "ruleId": None,
+            },
+            "release-cdntest": {
+                "ruleId": None,
+            },
+        },
+    },
+}
+
+# Partner repack configuration
+releaseConfig['doPartnerRepacks']    = False
+releaseConfig['partnersRepoPath']    = 'users/stage-ffxbld/partner-repacks'
+
+# Tuxedo/Bouncer configuration
+releaseConfig['tuxedoServerUrl']     = 'https://admin-bouncer.stage.mozaws.net/api'
+releaseConfig['bouncer_submitter_config'] = 'releases/bouncer_thunderbird.py'
+releaseConfig['bouncer_aliases'] = {
+    'Thunderbird-%(version)s': 'thunderbird-latest',
+}
+
+# Misc configuration
+releaseConfig['build_tools_repo_path'] = "users/stage-ffxbld/tools"
+releaseConfig['use_mock'] = True
+releaseConfig['mock_platforms'] = ('linux','linux64')
--- a/mozilla/thunderbird_config.py
+++ b/mozilla/thunderbird_config.py
@@ -646,16 +646,19 @@ BRANCHES = {
     },
     'comm-aurora': {
     },
     'comm-beta': {
     },
     'comm-esr38': {
         'gecko_version': 38,
     },
+    'comm-esr45': {
+        'gecko_version': 45,
+    },
     'try-comm-central': {
     },
 }
 
 # Copy project branches into BRANCHES keys
 for branch in ACTIVE_PROJECT_BRANCHES:
     BRANCHES[branch] = deepcopy(PROJECT_BRANCHES[branch])
 
@@ -803,16 +806,47 @@ BRANCHES['comm-esr38']['localesURL'] = \
     '%s/build/buildbot-configs/raw-file/production/mozilla/l10n/all-locales.comm-esr38' % (GLOBAL_VARS['hgurl'])
 BRANCHES['comm-esr38']['enable_nightly'] = True
 BRANCHES['comm-esr38']['updates_enabled'] = True
 BRANCHES['comm-esr38']['create_partial'] = True
 BRANCHES['comm-esr38']['enable_blocklist_update'] = True
 BRANCHES['comm-esr38']['file_update_on_closed_tree'] = False
 BRANCHES['comm-esr38']['enable_valgrind'] = False
 
+######## comm-esr45
+BRANCHES['comm-esr45']['repo_path'] = 'releases/comm-esr45'
+BRANCHES['comm-esr45']['moz_repo_path'] = 'releases/mozilla-esr45'
+BRANCHES['comm-esr45']['update_channel'] = 'nightly-esr45'
+BRANCHES['comm-esr45']['skip_blank_repos'] = True
+BRANCHES['comm-esr45']['call_client_py'] = True
+BRANCHES['comm-esr45']['l10n_repo_path'] = 'releases/l10n/mozilla-release'
+BRANCHES['comm-esr45']['start_hour'] = [3]
+BRANCHES['comm-esr45']['start_minute'] = [2]
+# Enable unit tests
+BRANCHES['comm-esr45']['enable_mac_a11y'] = True
+BRANCHES['comm-esr45']['unittest_build_space'] = 6
+# L10n configuration
+BRANCHES['comm-esr45']['enable_l10n'] = False
+BRANCHES['comm-esr45']['enable_l10n_onchange'] = False
+BRANCHES['comm-esr45']['l10nNightlyUpdate'] = False
+BRANCHES['comm-esr45']['l10n_platforms'] = ['linux', 'linux64', 'win32',
+                                            'macosx64']
+BRANCHES['comm-esr45']['l10nDatedDirs'] = True
+BRANCHES['comm-esr45']['l10n_tree'] = 'tbrel'
+BRANCHES['comm-esr45']['enUS_binaryURL'] = \
+    GLOBAL_VARS['download_base_url'] + '/nightly/latest-comm-esr45'
+BRANCHES['comm-esr45']['localesURL'] = \
+    '%s/build/buildbot-configs/raw-file/production/mozilla/l10n/all-locales.comm-esr45' % (GLOBAL_VARS['hgurl'])
+BRANCHES['comm-esr45']['enable_nightly'] = True
+BRANCHES['comm-esr45']['updates_enabled'] = True
+BRANCHES['comm-esr45']['create_partial'] = True
+BRANCHES['comm-esr45']['enable_blocklist_update'] = True
+BRANCHES['comm-esr45']['file_update_on_closed_tree'] = False
+BRANCHES['comm-esr45']['enable_valgrind'] = False
+
 ######## comm-beta
 BRANCHES['comm-beta']['moz_repo_path'] = 'releases/mozilla-beta'
 BRANCHES['comm-beta']['skip_blank_repos'] = True
 BRANCHES['comm-beta']['call_client_py'] = True
 BRANCHES['comm-beta']['repo_path'] = 'releases/comm-beta'
 BRANCHES['comm-beta']['l10n_repo_path'] = 'releases/l10n/mozilla-beta'
 BRANCHES['comm-beta']['update_channel'] = 'beta'
 BRANCHES['comm-beta']['start_hour'] = [3]
--- a/mozilla/thunderbird_production_config.py
+++ b/mozilla/thunderbird_production_config.py
@@ -44,16 +44,19 @@ GLOBAL_VARS.update({
 # Local branch overrides
 BRANCHES = {
     'comm-central': {
         'tinderbox_tree': 'Thunderbird',
     },
     'comm-esr38': {
         'tinderbox_tree': 'Thunderbird-Esr38',
     },
+    'comm-esr45': {
+        'tinderbox_tree': 'Thunderbird-Esr45',
+    },
     'comm-beta': {
         'tinderbox_tree': 'Thunderbird-Beta',
     },
     'comm-aurora': {
         'tinderbox_tree': 'Thunderbird-Aurora',
     },
     'try-comm-central': {
         'stage_server': 'upload.trybld.productdelivery.prod.mozaws.net',
--- a/mozilla/thunderbird_staging_config.py
+++ b/mozilla/thunderbird_staging_config.py
@@ -40,16 +40,20 @@ BRANCHES = {
     'comm-aurora': {
         'enable_blocklist_update': False,
         'file_update_on_closed_tree': False,
     },
     'comm-esr38': {
         'enable_blocklist_update': False,
         'file_update_on_closed_tree': False,
     },
+    'comm-esr45': {
+        'enable_blocklist_update': False,
+        'file_update_on_closed_tree': False,
+    },
     'try-comm-central': {
         # all try builds go via trybld hosts
         'stage_server': 'upload.trybld.productdelivery.stage.mozaws.net',
         'download_base_url': 'http://ftp.stage.mozaws.net/pub/thunderbird/try-builds',
         'enable_mail_notifier': False, # Set to True when testing
         'email_override': [], # Set to your address when testing
         'package_url': 'http://ftp.stage.mozaws.net/pub/thunderbird/try-builds',
         'talos_masters': [],
--- a/setup-master.py
+++ b/setup-master.py
@@ -236,25 +236,25 @@ def load_masters_json(masters_json, role
             c.globs.append('l10n-changesets*')
             c.globs.append('release_templates')
             if m['environment'] == 'staging':
                 c.globs.append('staging_release-*-*.py')
                 # release-*.py -> staging_release-*.py symlinks
                 c.local_links.extend(
                     [('staging_release-firefox-mozilla-%s.py' % v,
                       'release-firefox-mozilla-%s.py' % v)
-                     for v in ['beta', 'release', 'esr38']
+                     for v in ['beta', 'release', 'esr38', 'esr45']
                      ] +
                     [('staging_release-fennec-mozilla-%s.py' % v,
                       'release-fennec-mozilla-%s.py' % v)
                      for v in ['beta', 'release']
                      ] +
                     [('staging_release-thunderbird-comm-%s.py' % v,
                       'release-thunderbird-comm-%s.py' % v)
-                        for v in ['beta', 'esr38']
+                        for v in ['beta', 'esr38', 'esr45']
                      ]
                 )
             else:
                 c.globs.append('release-firefox*.py')
                 c.globs.append('release-fennec*.py')
                 c.globs.append('release-thunderbird*.py')
             c.globs.append(mastercfg)
             c.globs.append('build_localconfig.py')