Bug 1537713 - switch Devedition to declarative artifacts.r=sfraser a=release
authorMihai Tabara <mtabara@mozilla.com>
Wed, 11 Sep 2019 15:46:14 +0000
changeset 554978 e7f3f12d59e3b95b63bef535fa022ac9646afc9f
parent 554977 47ced6e49cfccfda6b0c369ddaf3eab0dba13ad3
child 554979 2228823d219f25bef2c69de9c58760a85f42a973
push id2165
push userffxbld-merge
push dateMon, 14 Oct 2019 16:30:58 +0000
treeherdermozilla-release@0eae18af659f [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewerssfraser, release
bugs1537713
milestone70.0
Bug 1537713 - switch Devedition to declarative artifacts.r=sfraser a=release Switch Devedition to declarative artifacts Differential Revision: https://phabricator.services.mozilla.com/D45259
taskcluster/taskgraph/manifests/firefox_candidates.yml
taskcluster/taskgraph/manifests/firefox_candidates_checksums.yml
taskcluster/taskgraph/manifests/firefox_nightly.yml
taskcluster/taskgraph/manifests/firefox_nightly_checksums.yml
taskcluster/taskgraph/transforms/beetmover.py
taskcluster/taskgraph/transforms/beetmover_checksums.py
taskcluster/taskgraph/transforms/beetmover_langpack_checksums.py
taskcluster/taskgraph/transforms/beetmover_repackage.py
taskcluster/taskgraph/transforms/beetmover_source_checksums.py
taskcluster/taskgraph/transforms/release_beetmover_signed_addons.py
taskcluster/taskgraph/transforms/release_generate_checksums_beetmover.py
taskcluster/taskgraph/util/scriptworker.py
--- a/taskcluster/taskgraph/manifests/firefox_candidates.yml
+++ b/taskcluster/taskgraph/manifests/firefox_candidates.yml
@@ -28,58 +28,80 @@
 # `checksums_path`        -- the name to identify one artifact within the checksums file
 # `not_for_platforms`     -- filtering option to avoid associating an artifact with a specific platform
 # `only_for_platforms`    -- filtering option to exclusively include the association of an artifact for a specific platform
 # `partials_only`         -- filtering option to avoid associating an artifact unless this flag is present
 # `update_balrog_manifest`-- flag needed downstream in beetmover jobs to reckon the balrog manifest
 # `from_buildid`          -- flag needed downstream in beetmover jobs to reckon the balrog manifest
 
 s3_bucket_paths:
-    - pub/firefox/candidates
+    by-platform:
+        .*devedition.*:
+            - pub/devedition/candidates
+        default:
+            - pub/firefox/candidates
 default_locales:
     - en-US
 tasktype_map:
     build: build
     signing: signing
     mar-signing: signing
     partials-signing: signing
     repackage: repackage
     repackage-signing: repackage
     repackage-signing-msi: repackage
-    langpack-copy: signing
+    langpack-copy: scriptworker
 platform_names:
     path_platform:
         by-platform:
             linux-shippable: 'linux-i686'
+            linux-devedition-nightly: 'linux-i686'
             linux64-shippable: 'linux-x86_64'
+            linux64-devedition-nightly: 'linux-x86_64'
             linux64-asan-reporter-nightly: 'linux-x86_64-asan-reporter'
             macosx64-shippable: 'mac'
+            macosx64-devedition-nightly: 'mac'
             win32-shippable: 'win32'
+            win32-devedition-nightly: 'win32'
             win64-shippable: 'win64'
+            win64-devedition-nightly: 'win64'
             win64-aarch64-shippable: 'win64-aarch64'
+            win64-aarch64-devedition-nightly: 'win64-aarch64'
             win64-asan-reporter-nightly: 'win64-asan-reporter'
     tools_platform:
         by-platform:
             linux-shippable: 'linux'
+            linux-devedition-nightly: 'linux-devedition'
             linux64-shippable: 'linux64'
+            linux64-devedition-nightly: 'linux64-devedition'
             linux64-asan-reporter-nightly: 'linux-x86_64-asan-reporter'
             macosx64-shippable: 'macosx64'
+            macosx64-devedition-nightly: 'macosx64-devedition'
             win32-shippable: 'win32'
+            win32-devedition-nightly: 'win32-devedition'
             win64-shippable: 'win64'
+            win64-devedition-nightly: 'win64-devedition'
             win64-aarch64-shippable: 'win64-aarch64'
+            win64-aarch64-devedition-nightly: 'win64-aarch64-devedition'
             win64-asan-reporter-nightly: 'win64-asan-reporter'
     filename_platform:
         by-platform:
             linux-shippable: 'linux'
+            linux-devedition-nightly: 'linux'
             linux64-shippable: 'linux64'
+            linux64-devedition-nightly: 'linux64'
             linux64-asan-reporter-nightly: 'linux-x86_64-asan-reporter'
             macosx64-shippable: 'macosx64'
+            macosx64-devedition-nightly: 'macosx64'
             win32-shippable: 'win32'
+            win32-devedition-nightly: 'win32'
             win64-shippable: 'win64'
+            win64-devedition-nightly: 'win64'
             win64-aarch64-shippable: 'win64_aarch64'
+            win64-aarch64-devedition-nightly: 'win64_aarch64'
             win64-asan-reporter-nightly: 'win64-asan-reporter'
 
 default: &default
     from:
         - build
     all_locales: false
     description: "TO_BE_OVERRIDDEN"
     locale_prefix: '${locale}/'
@@ -184,16 +206,17 @@ mapping:
         description: "Localized repack that grabs a packaged en-US Firefox and repackages it as locale-specific Firefox"
         locale_prefix: ''
         from:
             - langpack-copy
             - signing
         only_for_platforms:
             - linux-shippable
             - linux64-shippable
+            - linux64-devedition-nightly
             - macosx64-shippable
             - win32-shippable
             - win64-shippable
         pretty_name: ${locale}.xpi
         checksums_path: ${path_platform}/xpi/${locale}.xpi
         destinations:
             - ${version}-candidates/build${build_number}/${path_platform}/xpi
     mar:
@@ -202,77 +225,93 @@ mapping:
         locale_prefix: ''
         source_path_modifier: 'host/bin'
         pretty_name: ${tools_platform}/mar
         checksums_path: mar-tools/${tools_platform}/mar
         not_for_platforms:
             - win32-shippable
             - win64-shippable
             - win64-aarch64-shippable
+            - win32-devedition-nightly
+            - win64-devedition-nightly
+            - win64-aarch64-devedition-nightly
         destinations:
             - ${version}-candidates/build${build_number}/mar-tools
     mbsdiff:
         <<: *default
         description: "Alongside `mar`, a tool used to generate partials"
         locale_prefix: ''
         source_path_modifier: 'host/bin'
         pretty_name: ${tools_platform}/mbsdiff
         checksums_path: mar-tools/${tools_platform}/mbsdiff
         not_for_platforms:
             - win32-shippable
             - win64-shippable
             - win64-aarch64-shippable
+            - win32-devedition-nightly
+            - win64-devedition-nightly
+            - win64-aarch64-devedition-nightly
         destinations:
             - ${version}-candidates/build${build_number}/mar-tools
     mar.exe:
         <<: *default
         description: "Alongside `mbsdiff.exe`, a tool used to generate partials for Windows platforms"
         locale_prefix: ''
         source_path_modifier: 'host/bin'
         pretty_name: ${tools_platform}/mar.exe
         checksums_path: mar-tools/${tools_platform}/mar.exe
         only_for_platforms:
             - win32-shippable
             - win64-shippable
             - win64-aarch64-shippable
+            - win32-devedition-nightly
+            - win64-devedition-nightly
+            - win64-aarch64-devedition-nightly
         destinations:
             - ${version}-candidates/build${build_number}/mar-tools
     mbsdiff.exe:
         <<: *default
         locale_prefix: ''
         description: "Alongside `mar.exe`, a tool used to generate partials for Windows platforms"
         source_path_modifier: 'host/bin'
         pretty_name: ${tools_platform}/mbsdiff.exe
         checksums_path: mar-tools/${tools_platform}/mbsdiff.exe
         only_for_platforms:
             - win32-shippable
             - win64-shippable
             - win64-aarch64-shippable
+            - win32-devedition-nightly
+            - win64-devedition-nightly
+            - win64-aarch64-devedition-nightly
         destinations:
             - ${version}-candidates/build${build_number}/mar-tools
     target.tar.bz2:
         <<: *default
         description: "Main installer for Linux platforms"
         all_locales: true
         from:
             - signing
         only_for_platforms:
             - linux-shippable
             - linux64-shippable
+            - linux-devedition-nightly
+            - linux64-devedition-nightly
         pretty_name: firefox-${version}.tar.bz2
         checksums_path: ${path_platform}/${locale}/firefox-${version}.tar.bz2
     target.tar.bz2.asc:
         <<: *default
         description: "Detached signature for the checksums file"
         all_locales: true
         from:
             - signing
         only_for_platforms:
             - linux-shippable
             - linux64-shippable
+            - linux-devedition-nightly
+            - linux64-devedition-nightly
         pretty_name: firefox-${version}.tar.bz2.asc
         checksums_path: ${path_platform}/${locale}/firefox-${version}.tar.bz2.asc
     target.pkg:
         <<: *default
         description: "Main package installer for Mac OS X platforms"
         all_locales: true
         from:
             - signing
@@ -283,61 +322,71 @@ mapping:
     target.dmg:
         <<: *default
         description: "Main package disk image for Mac OS X platforms"
         all_locales: true
         from:
             - repackage
         only_for_platforms:
             - macosx64-shippable
+            - macosx64-devedition-nightly
         pretty_name: Firefox ${version}.dmg
         checksums_path: ${path_platform}/${locale}/Firefox ${version}.dmg
     target.zip:
         <<: *default
         description: "Main package installer for Windows platforms"
         all_locales: true
         from:
             - signing
         only_for_platforms:
             - win64-shippable
             - win32-shippable
             - win64-aarch64-shippable
+            - win64-devedition-nightly
+            - win32-devedition-nightly
+            - win64-aarch64-devedition-nightly
         pretty_name: firefox-${version}.zip
         checksums_path: ${path_platform}/${locale}/firefox-${version}.zip
     target.installer.exe:
         <<: *default
         description: "Main installer for Windows platforms"
         all_locales: true
         from:
             - repackage-signing
         only_for_platforms:
             - win64-shippable
             - win32-shippable
             - win64-aarch64-shippable
+            - win64-devedition-nightly
+            - win32-devedition-nightly
+            - win64-aarch64-devedition-nightly
         pretty_name: Firefox Setup ${version}.exe
         checksums_path: ${path_platform}/${locale}/Firefox Setup ${version}.exe
     target.stub-installer.exe:
         <<: *default
         description: "Stub installer for Win32 platforms"
         all_locales: true
         from:
             - repackage-signing
         only_for_platforms:
             - win32-shippable
+            - win32-devedition-nightly
         pretty_name: Firefox Installer.exe
         checksums_path: ${path_platform}/${locale}/Firefox Installer.exe
     target.installer.msi:
         <<: *default
         description: "Windows installer for MSI platform"
         all_locales: true
         from:
             - repackage-signing-msi
         only_for_platforms:
             - win64-shippable
             - win32-shippable
+            - win64-devedition-nightly
+            - win32-devedition-nightly
         pretty_name: Firefox Setup ${version}.msi
         checksums_path: ${path_platform}/${locale}/Firefox Setup ${version}.msi
     target.complete.mar:
         <<: *default
         description: "Complete MAR to serve as updates"
         all_locales: true
         from:
             - mar-signing
--- a/taskcluster/taskgraph/manifests/firefox_candidates_checksums.yml
+++ b/taskcluster/taskgraph/manifests/firefox_candidates_checksums.yml
@@ -42,22 +42,34 @@ default_locales:
     - en-US
 tasktype_map:
     beetmover-repackage: beetmover
     release-beetmover-signed-langpacks: signing
 platform_names:
     path_platform:
         by-platform:
             linux-shippable: 'linux-i686'
+            linux-devedition: 'linux-i686'
+            linux-devedition-nightly: 'linux-i686'
             linux64-shippable: 'linux-x86_64'
+            linux64-devedition: 'linux-x86_64'
+            linux64-devedition-nightly: 'linux-x86_64'
             linux64-asan-reporter-nightly: 'linux-x86_64-asan-reporter'
             macosx64-shippable: 'mac'
+            macosx64-devedition: 'mac'
+            macosx64-devedition-nightly: 'mac'
             win32-shippable: 'win32'
+            win32-devedition: 'win32'
+            win32-devedition-nightly: 'win32'
             win64-shippable: 'win64'
+            win64-devedition: 'win64'
+            win64-devedition-nightly: 'win64'
             win64-aarch64-shippable: 'win64-aarch64'
+            win64-aarch64-devedition: 'win64-aarch64'
+            win64-aarch64-devedition-nightly: 'win64-aarch64'
             win64-asan-reporter-nightly: 'win64-asan-reporter'
             linux: 'linux-i686'
             linux64: 'linux-x86_64'
             macosx64: 'mac'
             win32: 'win32'
             win64: 'win64'
 
 default: &default
--- a/taskcluster/taskgraph/manifests/firefox_nightly.yml
+++ b/taskcluster/taskgraph/manifests/firefox_nightly.yml
@@ -44,32 +44,44 @@ tasktype_map:
     repackage: repackage
     repackage-signing: repackage
     repackage-signing-msi: repackage
     langpack-copy: signing
 platform_names:
     filename_platform:
         by-platform:
             linux-shippable: 'linux-i686'
+            linux-devedition-nightly: 'linux-i686'
             linux64-shippable: 'linux-x86_64'
+            linux64-devedition-nightly: 'linux-x86_64'
             linux64-asan-reporter-nightly: 'linux-x86_64-asan-reporter'
             macosx64-shippable: 'mac'
+            macosx64-devedition-nightly: 'mac'
             win32-shippable: 'win32'
+            win32-devedition-nightly: 'win32'
             win64-shippable: 'win64'
+            win64-devedition-nightly: 'win64'
             win64-aarch64-shippable: 'win64-aarch64'
+            win64-aarch64-devedition-nightly: 'win64-aarch64'
             win64-asan-reporter-nightly: 'win64-asan-reporter'
     stage_platform:
         by-platform:
             linux-shippable: 'linux'
+            linux-devedition-nightly: 'linux'
             linux64-asan-reporter-nightly: 'linux64-asan-reporter'
             linux64-shippable: 'linux64'
+            linux64-devedition-nightly: 'linux64'
             macosx64-shippable: 'macosx64'
+            macosx64-devedition-nightly: 'macosx64'
             win32-shippable: 'win32'
+            win32-devedition-nightly: 'win32'
             win64-shippable: 'win64'
+            win64-devedition-nightly: 'win64'
             win64-aarch64-shippable: 'win64-aarch64'
+            win64-aarch64-devedition-nightly: 'win64-aarch64'
             win64-asan-reporter-nightly: 'win64-asan-reporter'
 
 default: &default
     from:
         - build
     all_locales: false
     description: "TO_BE_OVERRIDDEN"
     locale_prefix: ''
--- a/taskcluster/taskgraph/manifests/firefox_nightly_checksums.yml
+++ b/taskcluster/taskgraph/manifests/firefox_nightly_checksums.yml
@@ -11,22 +11,28 @@ s3_bucket_paths:
 default_locales:  # if given an empty locale, use these locales
     - en-US
 tasktype_map:  # Map task reference to task type.
     beetmover-repackage: beetmover
 platform_names:
     filename_platform:
         by-platform:
             linux-shippable: 'linux-i686'
+            linux-devedition-nightly: 'linux-i686'
             linux64-shippable: 'linux-x86_64'
+            linux64-devedition-nightly: 'linux-x86_64'
             linux64-asan-reporter-nightly: 'linux-x86_64-asan-reporter'
             macosx64-shippable: 'mac'
+            macosx64-devedition-nightly: 'mac'
             win32-shippable: 'win32'
+            win32-devedition-nightly: 'win32'
             win64-shippable: 'win64'
+            win64-devedition-nightly: 'win64'
             win64-aarch64-shippable: 'win64-aarch64'
+            win64-aarch64-devedition-nightly: 'win64-aarch64'
             win64-asan-reporter-nightly: 'win64-asan-reporter'
 
 # A default entry, which the mappings below extend and override.
 # Final 'destinations' will be the product of:
 # s3_bucket_paths + destinations + locale_prefix + pretty_name
 default: &default
     from:
         - beetmover-repackage
--- a/taskcluster/taskgraph/transforms/beetmover.py
+++ b/taskcluster/taskgraph/transforms/beetmover.py
@@ -12,112 +12,19 @@ from voluptuous import Optional, Require
 from taskgraph.loader.single_dep import schema
 from taskgraph.transforms.base import TransformSequence
 from taskgraph.transforms.task import task_description_schema
 from taskgraph.util.attributes import copy_attributes_from_dependent_job
 from taskgraph.util.scriptworker import (generate_beetmover_artifact_map,
                                          generate_beetmover_upstream_artifacts,
                                          get_beetmover_bucket_scope,
                                          get_beetmover_action_scope,
-                                         get_worker_type_for_scope,
-                                         should_use_artifact_map)
-from taskgraph.util.taskcluster import get_artifact_prefix
+                                         get_worker_type_for_scope)
 from taskgraph.util.treeherder import replace_group
 
-# Until bug 1331141 is fixed, if you are adding any new artifacts here that
-# need to be transfered to S3, please be aware you also need to follow-up
-# with a beetmover patch in https://github.com/mozilla-releng/beetmoverscript/.
-# See example in bug 1348286
-_MOBILE_UPSTREAM_ARTIFACTS_UNSIGNED_EN_US = [
-    "en-US/buildhub.json",
-    "en-US/target.common.tests.tar.gz",
-    "en-US/target.cppunittest.tests.tar.gz",
-    "en-US/target.crashreporter-symbols.zip",
-    "en-US/target.json",
-    "en-US/target.mochitest.tests.tar.gz",
-    "en-US/target.mozinfo.json",
-    "en-US/target.reftest.tests.tar.gz",
-    "en-US/target.talos.tests.tar.gz",
-    "en-US/target.awsy.tests.tar.gz",
-    "en-US/target.test_packages.json",
-    "en-US/target.txt",
-    "en-US/target.web-platform.tests.tar.gz",
-    "en-US/target.xpcshell.tests.tar.gz",
-    "en-US/target_info.txt",
-    "en-US/mozharness.zip",
-    "en-US/robocop.apk",
-    "en-US/target.jsshell.zip",
-]
-# Until bug 1331141 is fixed, if you are adding any new artifacts here that
-# need to be transfered to S3, please be aware you also need to follow-up
-# with a beetmover patch in https://github.com/mozilla-releng/beetmoverscript/.
-# See example in bug 1348286
-_MOBILE_UPSTREAM_ARTIFACTS_UNSIGNED_MULTI = [
-    "buildhub.json",
-    "target.json",
-    "target.mozinfo.json",
-    "target.test_packages.json",
-    "target.txt",
-    "target_info.txt",
-    "robocop.apk",
-]
-# Until bug 1331141 is fixed, if you are adding any new artifacts here that
-# need to be transfered to S3, please be aware you also need to follow-up
-# with a beetmover patch in https://github.com/mozilla-releng/beetmoverscript/.
-# See example in bug 1348286
-_MOBILE_UPSTREAM_ARTIFACTS_SIGNED_EN_US = [
-    "en-US/target.apk",
-]
-# Until bug 1331141 is fixed, if you are adding any new artifacts here that
-# need to be transfered to S3, please be aware you also need to follow-up
-# with a beetmover patch in https://github.com/mozilla-releng/beetmoverscript/.
-# See example in bug 1348286
-_MOBILE_UPSTREAM_ARTIFACTS_SIGNED_MULTI = [
-    "target.apk",
-]
-
-
-# Until bug 1331141 is fixed, if you are adding any new artifacts here that
-# need to be transfered to S3, please be aware you also need to follow-up
-# with a beetmover patch in https://github.com/mozilla-releng/beetmoverscript/.
-# See example in bug 1348286
-UPSTREAM_ARTIFACT_UNSIGNED_PATHS = {
-    'android-x86-nightly': _MOBILE_UPSTREAM_ARTIFACTS_UNSIGNED_EN_US,
-    'android-x86_64-nightly': _MOBILE_UPSTREAM_ARTIFACTS_UNSIGNED_EN_US,
-    'android-aarch64-nightly': _MOBILE_UPSTREAM_ARTIFACTS_UNSIGNED_EN_US,
-    'android-api-16-nightly': _MOBILE_UPSTREAM_ARTIFACTS_UNSIGNED_EN_US,
-    'android-x86-nightly-multi': _MOBILE_UPSTREAM_ARTIFACTS_UNSIGNED_MULTI,
-    'android-x86_64-nightly-multi': _MOBILE_UPSTREAM_ARTIFACTS_UNSIGNED_MULTI,
-    'android-aarch64-nightly-multi': _MOBILE_UPSTREAM_ARTIFACTS_UNSIGNED_MULTI,
-    'android-api-16-nightly-l10n': [],
-    'android-api-16-nightly-multi': _MOBILE_UPSTREAM_ARTIFACTS_UNSIGNED_MULTI,
-}
-# Until bug 1331141 is fixed, if you are adding any new artifacts here that
-# need to be transfered to S3, please be aware you also need to follow-up
-# with a beetmover patch in https://github.com/mozilla-releng/beetmoverscript/.
-# See example in bug 1348286
-UPSTREAM_ARTIFACT_SIGNED_PATHS = {
-    'android-x86-nightly': ["en-US/target.apk"],
-    'android-x86_64-nightly': ["en-US/target.apk"],
-    'android-aarch64-nightly': ["en-US/target.apk"],
-    'android-api-16-nightly': ["en-US/target.apk"],
-    'android-x86-nightly-multi': ["target.apk"],
-    'android-x86_64-nightly-multi': ["target.apk"],
-    'android-aarch64-nightly-multi': ["target.apk"],
-    'android-api-16-nightly-l10n': ["target.apk"],
-    'android-api-16-nightly-multi': ["target.apk"],
-}
-# Until bug 1331141 is fixed, if you are adding any new artifacts here that
-# need to be transfered to S3, please be aware you also need to follow-up
-# with a beetmover patch in https://github.com/mozilla-releng/beetmoverscript/.
-# See example in bug 1348286
-UPSTREAM_SOURCE_ARTIFACTS = [
-    "source.tar.xz",
-    "source.tar.xz.asc",
-]
 
 transforms = TransformSequence()
 
 beetmover_description_schema = schema.extend({
     # depname is used in taskref's to identify the taskID of the unsigned things
     Required('depname', default='build'): basestring,
 
     # unique label to describe this beetmover task, defaults to {dep.label}-beetmover
@@ -199,77 +106,16 @@ def make_task_description(config, jobs):
             'run-on-projects': dep_job.attributes.get('run_on_projects'),
             'treeherder': treeherder,
             'shipping-phase': job['shipping-phase'],
         }
 
         yield task
 
 
-def generate_upstream_artifacts(job, signing_task_ref, build_task_ref, platform,
-                                locale=None):
-    build_mapping = UPSTREAM_ARTIFACT_UNSIGNED_PATHS
-    signing_mapping = UPSTREAM_ARTIFACT_SIGNED_PATHS
-
-    artifact_prefix = get_artifact_prefix(job)
-    if locale:
-        artifact_prefix = '{}/{}'.format(artifact_prefix, locale)
-        platform = "{}-l10n".format(platform)
-
-    if platform.endswith("-source"):
-        return [
-            {
-                "taskId": {"task-reference": signing_task_ref},
-                "taskType": "signing",
-                "paths": ["{}/{}".format(artifact_prefix, p)
-                          for p in UPSTREAM_SOURCE_ARTIFACTS],
-                "locale": locale or "en-US",
-            }
-        ]
-
-    upstream_artifacts = []
-
-    # Some platforms (like android-api-16-nightly-l10n) may not depend on any unsigned artifact
-    if build_mapping[platform]:
-        upstream_artifacts.append({
-            "taskId": {"task-reference": build_task_ref},
-            "taskType": "build",
-            "paths": ["{}/{}".format(artifact_prefix, p)
-                      for p in build_mapping[platform]],
-            "locale": locale or "en-US",
-        })
-
-    upstream_artifacts.append({
-        "taskId": {"task-reference": signing_task_ref},
-        "taskType": "signing",
-        "paths": ["{}/{}".format(artifact_prefix, p)
-                  for p in signing_mapping[platform]],
-        "locale": locale or "en-US",
-    })
-
-    if not locale and "android" in platform:
-        # edge case to support 'multi' locale paths
-        multi_platform = "{}-multi".format(platform)
-        upstream_artifacts.extend([{
-            "taskId": {"task-reference": build_task_ref},
-            "taskType": "build",
-            "paths": ["{}/{}".format(artifact_prefix, p)
-                      for p in build_mapping[multi_platform]],
-            "locale": "multi",
-        }, {
-            "taskId": {"task-reference": signing_task_ref},
-            "taskType": "signing",
-            "paths": ["{}/{}".format(artifact_prefix, p)
-                      for p in signing_mapping[multi_platform]],
-            "locale": "multi",
-        }])
-
-    return upstream_artifacts
-
-
 def craft_release_properties(config, job):
     params = config.params
     build_platform = job['attributes']['build_platform']
     build_platform = build_platform.replace('-nightly', '')
     build_platform = build_platform.replace('-shippable', '')
     if build_platform.endswith("-source"):
         build_platform = build_platform.replace('-source', '-release')
 
@@ -299,42 +145,25 @@ def make_task_worker(config, jobs):
                                any(['signing' in j for j in job['dependencies']]))
         # XXX release snap-repackage has a variable number of dependencies, depending on how many
         # "post-beetmover-dummy" jobs there are in the graph.
         if '-snap-' not in job['label'] and not valid_beetmover_job:
             raise NotImplementedError("Beetmover must have two dependencies.")
 
         locale = job["attributes"].get("locale")
         platform = job["attributes"]["build_platform"]
-        build_task = None
-        signing_task = None
-        for dependency in job["dependencies"].keys():
-            if 'signing' in dependency:
-                signing_task = dependency
-            else:
-                build_task = dependency
 
-        signing_task_ref = "<" + str(signing_task) + ">"
-        build_task_ref = "<" + str(build_task) + ">"
-
-        if should_use_artifact_map(platform):
-            upstream_artifacts = generate_beetmover_upstream_artifacts(
-                config, job, platform, locale
-            )
-        else:
-            upstream_artifacts = generate_upstream_artifacts(
-                job, signing_task_ref, build_task_ref, platform, locale
-            )
         worker = {
             'implementation': 'beetmover',
             'release-properties': craft_release_properties(config, job),
-            'upstream-artifacts': upstream_artifacts,
+            'upstream-artifacts': generate_beetmover_upstream_artifacts(
+                config, job, platform, locale
+            ),
+            'artifact-map': generate_beetmover_artifact_map(
+                config, job, platform=platform, locale=locale
+            ),
         }
 
-        if should_use_artifact_map(platform):
-            worker['artifact-map'] = generate_beetmover_artifact_map(
-                config, job, platform=platform, locale=locale)
-
         if locale:
             worker["locale"] = locale
         job["worker"] = worker
 
         yield job
--- a/taskcluster/taskgraph/transforms/beetmover_checksums.py
+++ b/taskcluster/taskgraph/transforms/beetmover_checksums.py
@@ -11,18 +11,17 @@ from __future__ import absolute_import, 
 from taskgraph.loader.single_dep import schema
 from taskgraph.transforms.base import TransformSequence
 from taskgraph.transforms.beetmover import craft_release_properties
 from taskgraph.util.attributes import copy_attributes_from_dependent_job
 from taskgraph.util.scriptworker import (generate_beetmover_artifact_map,
                                          generate_beetmover_upstream_artifacts,
                                          get_beetmover_action_scope,
                                          get_beetmover_bucket_scope,
-                                         get_worker_type_for_scope,
-                                         should_use_artifact_map)
+                                         get_worker_type_for_scope)
 from voluptuous import Optional, Required
 from taskgraph.util.treeherder import replace_group
 from taskgraph.transforms.task import task_description_schema
 
 beetmover_checksums_description_schema = schema.extend({
     Required('depname', default='build'): basestring,
     Required('attributes'): {basestring: object},
     Optional('label'): basestring,
@@ -105,55 +104,30 @@ def make_beetmover_checksums_description
             task['shipping-phase'] = job['shipping-phase']
 
         if 'shipping-product' in job:
             task['shipping-product'] = job['shipping-product']
 
         yield task
 
 
-def generate_upstream_artifacts(locale=None):
-    # XXX: this function is called solely for Devedition, until we fix 1537713
-    # so that DevEdition uses in-tree manifests too. This will be fixed in Q3
-    upstream_artifacts = [{
-        "taskId": {"task-reference": "<beetmover-repackage>"},
-        "taskType": "beetmover",
-        "paths": [
-            "public/target.checksums",
-        ],
-        "locale": locale or "en-US",
-    }]
-
-    return upstream_artifacts
-
-
 @transforms.add
 def make_beetmover_checksums_worker(config, jobs):
     for job in jobs:
         locale = job["attributes"].get("locale")
         platform = job["attributes"]["build_platform"]
 
         worker = {
             'implementation': 'beetmover',
             'release-properties': craft_release_properties(config, job),
-        }
-
-        if should_use_artifact_map(platform):
-            upstream_artifacts = generate_beetmover_upstream_artifacts(
+            'upstream-artifacts': generate_beetmover_upstream_artifacts(
                 config, job, platform, locale
+            ),
+            'artifact-map': generate_beetmover_artifact_map(
+                config, job, platform=platform, locale=locale
             )
-            worker['artifact-map'] = generate_beetmover_artifact_map(
-                config, job, platform=platform, locale=locale)
-        else:
-            upstream_artifacts = generate_upstream_artifacts(
-                locale
-            )
-            # Clean up un-used artifact map, to avoid confusion
-            if job['attributes'].get('artifact_map'):
-                del job['attributes']['artifact_map']
-
-        worker['upstream-artifacts'] = upstream_artifacts
+        }
 
         if locale:
             worker["locale"] = locale
         job["worker"] = worker
 
         yield job
--- a/taskcluster/taskgraph/transforms/beetmover_langpack_checksums.py
+++ b/taskcluster/taskgraph/transforms/beetmover_langpack_checksums.py
@@ -10,18 +10,17 @@ from __future__ import absolute_import, 
 from taskgraph.loader.single_dep import schema
 from taskgraph.transforms.base import TransformSequence
 from taskgraph.transforms.beetmover import craft_release_properties
 from taskgraph.util.attributes import copy_attributes_from_dependent_job
 from taskgraph.util.scriptworker import (generate_beetmover_artifact_map,
                                          generate_beetmover_upstream_artifacts,
                                          get_beetmover_action_scope,
                                          get_beetmover_bucket_scope,
-                                         get_worker_type_for_scope,
-                                         should_use_artifact_map)
+                                         get_worker_type_for_scope)
 from taskgraph.util.treeherder import inherit_treeherder_from_dep
 from taskgraph.transforms.task import task_description_schema
 from voluptuous import Required, Optional
 
 beetmover_checksums_description_schema = schema.extend({
     Required('depname', default='build'): basestring,
     Required('attributes'): {basestring: object},
     Optional('label'): basestring,
@@ -87,37 +86,16 @@ def make_beetmover_checksums_description
             task['shipping-phase'] = job['shipping-phase']
 
         if 'shipping-product' in job:
             task['shipping-product'] = job['shipping-product']
 
         yield task
 
 
-def generate_upstream_artifacts(refs, platform, locales=None):
-    # Until bug 1331141 is fixed, if you are adding any new artifacts here that
-    # need to be transfered to S3, please be aware you also need to follow-up
-    # with a beetmover patch in https://github.com/mozilla-releng/beetmoverscript/.
-    # See example in bug 1348286
-    common_paths = [
-        "public/target-langpack.checksums",
-    ]
-
-    upstream_artifacts = []
-    for locale in locales:
-        upstream_artifacts.append({
-            "taskId": {"task-reference": refs["beetmover"]},
-            "taskType": "signing",
-            "paths": common_paths,
-            "locale": locale or "en-US",
-        })
-
-    return upstream_artifacts
-
-
 @transforms.add
 def make_beetmover_checksums_worker(config, jobs):
     for job in jobs:
         valid_beetmover_job = (len(job["dependencies"]) == 1)
         if not valid_beetmover_job:
             raise NotImplementedError("Beetmover checksums must have one dependency.")
 
         locales = job["attributes"].get("chunk_locales")
@@ -131,25 +109,19 @@ def make_beetmover_checksums_worker(conf
                 refs['beetmover'] = "<{}>".format(dependency)
         if None in refs.values():
             raise NotImplementedError(
                 "Beetmover checksums must have a beetmover dependency!")
 
         worker = {
             'implementation': 'beetmover',
             'release-properties': craft_release_properties(config, job),
+            'upstream-artifacts': generate_beetmover_upstream_artifacts(
+                config, job, platform, locales
+            ),
+            'artifact-map': generate_beetmover_artifact_map(
+                config, job, platform=platform, locale=locales
+            ),
         }
 
-        if should_use_artifact_map(platform):
-            upstream_artifacts = generate_beetmover_upstream_artifacts(
-                config, job, platform, locales
-            )
-            worker['artifact-map'] = generate_beetmover_artifact_map(
-                config, job, platform=platform, locale=locales)
-        else:
-            upstream_artifacts = generate_upstream_artifacts(
-                refs, platform, locales
-            )
-
-        worker['upstream-artifacts'] = upstream_artifacts
         job["worker"] = worker
 
         yield job
--- a/taskcluster/taskgraph/transforms/beetmover_repackage.py
+++ b/taskcluster/taskgraph/transforms/beetmover_repackage.py
@@ -14,134 +14,27 @@ from taskgraph.util.attributes import co
 from taskgraph.util.partials import (get_balrog_platform_name,
                                      get_partials_artifacts_from_params,
                                      get_partials_info_from_params)
 from taskgraph.util.scriptworker import (generate_beetmover_artifact_map,
                                          generate_beetmover_upstream_artifacts,
                                          generate_beetmover_partials_artifact_map,
                                          get_beetmover_bucket_scope,
                                          get_beetmover_action_scope,
-                                         get_worker_type_for_scope,
-                                         should_use_artifact_map)
+                                         get_worker_type_for_scope)
 from taskgraph.util.taskcluster import get_artifact_prefix
 from taskgraph.util.treeherder import replace_group
 from taskgraph.transforms.task import task_description_schema
 from voluptuous import Required, Optional
 
 import logging
-import re
 
 logger = logging.getLogger(__name__)
 
 
-def _compile_regex_mapping(mapping):
-    return {re.compile(regex): value for regex, value in mapping.iteritems()}
-
-
-# Until bug 1331141 is fixed, if you are adding any new artifacts here that
-# need to be transfered to S3, please be aware you also need to follow-up
-# with a beetmover patch in https://github.com/mozilla-releng/beetmoverscript/.
-# See example in bug 1348286
-_DESKTOP_UPSTREAM_ARTIFACTS_UNSIGNED_EN_US = [
-    "buildhub.json",
-    "target.common.tests.tar.gz",
-    "target.cppunittest.tests.tar.gz",
-    "target.crashreporter-symbols.zip",
-    "target.json",
-    "target.mochitest.tests.tar.gz",
-    "target.mozinfo.json",
-    "target.reftest.tests.tar.gz",
-    "target.talos.tests.tar.gz",
-    "target.awsy.tests.tar.gz",
-    "target.test_packages.json",
-    "target.txt",
-    "target.web-platform.tests.tar.gz",
-    "target.xpcshell.tests.tar.gz",
-    "target_info.txt",
-    "target.jsshell.zip",
-    "mozharness.zip",
-]
-
-# Until bug 1331141 is fixed, if you are adding any new artifacts here that
-# need to be transfered to S3, please be aware you also need to follow-up
-# with a beetmover patch in https://github.com/mozilla-releng/beetmoverscript/.
-# See example in bug 1348286
-_DESKTOP_UPSTREAM_ARTIFACTS_UNSIGNED_L10N = [
-]
-
-
-# Until bug 1331141 is fixed, if you are adding any new artifacts here that
-# need to be transfered to S3, please be aware you also need to follow-up
-# with a beetmover patch in https://github.com/mozilla-releng/beetmoverscript/.
-# See example in bug 1348286
-UPSTREAM_ARTIFACT_UNSIGNED_PATHS = _compile_regex_mapping({
-    r'^(linux(|64)|macosx64)(|-devedition)-(nightly|shippable)$':
-        _DESKTOP_UPSTREAM_ARTIFACTS_UNSIGNED_EN_US + [
-            'host/bin/mar',
-            'host/bin/mbsdiff',
-        ],
-    r'^linux64-asan-reporter-nightly$':
-        filter(lambda a: a not in ('target.crashreporter-symbols.zip', 'target.jsshell.zip'),
-               _DESKTOP_UPSTREAM_ARTIFACTS_UNSIGNED_EN_US + [
-                    "host/bin/mar",
-                    "host/bin/mbsdiff",
-                ]),
-    r'^win64-asan-reporter-nightly$':
-        filter(lambda a: a not in ('target.crashreporter-symbols.zip', 'target.jsshell.zip'),
-               _DESKTOP_UPSTREAM_ARTIFACTS_UNSIGNED_EN_US + [
-                    "host/bin/mar.exe",
-                    "host/bin/mbsdiff.exe",
-                ]),
-    r'^win(32|64(|-aarch64))(|-devedition)-(nightly|shippable)$':
-        _DESKTOP_UPSTREAM_ARTIFACTS_UNSIGNED_EN_US + [
-            'host/bin/mar.exe',
-            'host/bin/mbsdiff.exe',
-        ],
-    r'^(linux(|64)|macosx64|win(32|64))(|-devedition)-(nightly|shippable)-l10n$':
-        _DESKTOP_UPSTREAM_ARTIFACTS_UNSIGNED_L10N,
-})
-
-# Until bug 1331141 is fixed, if you are adding any new artifacts here that
-# need to be transfered to S3, please be aware you also need to follow-up
-# with a beetmover patch in https://github.com/mozilla-releng/beetmoverscript/.
-# See example in bug 1348286
-UPSTREAM_ARTIFACT_SIGNED_PATHS = _compile_regex_mapping({
-    r'^linux(|64)(|-devedition|-asan-reporter)-(nightly|shippable)(|-l10n)$':
-        ['target.langpack.xpi', 'target.tar.bz2', 'target.tar.bz2.asc'],
-    r'^win(32|64)(|-aarch64)(|-devedition|-asan-reporter)-(nightly|shippable)(|-l10n)$':
-        ['target.zip'],
-    r'macosx.*-(nightly|shippable)(|-l10n)$':
-        ['target.langpack.xpi'],  # Used only for ja-JP-mac
-})
-
-# Until bug 1331141 is fixed, if you are adding any new artifacts here that
-# need to be transfered to S3, please be aware you also need to follow-up
-# with a beetmover patch in https://github.com/mozilla-releng/beetmoverscript/.
-# See example in bug 1348286
-UPSTREAM_ARTIFACT_REPACKAGE_PATHS = [
-    'target.dmg',
-]
-# Until bug 1331141 is fixed, if you are adding any new artifacts here that
-# need to be transfered to S3, please be aware you also need to follow-up
-# with a beetmover patch in https://github.com/mozilla-releng/beetmoverscript/.
-# See example in bug 1348286
-UPSTREAM_ARTIFACT_SIGNED_REPACKAGE_PATHS = [
-    'target.installer.exe',
-    'target.stub-installer.exe',
-]
-
-UPSTREAM_ARTIFACT_SIGNED_MSI_PATHS = [
-    'target.installer.msi',
-]
-
-UPSTREAM_ARTIFACT_SIGNED_MAR_PATHS = [
-    'target.complete.mar',
-    'target.bz2.complete.mar',
-]
-
 beetmover_description_schema = schema.extend({
     # depname is used in taskref's to identify the taskID of the unsigned things
     Required('depname', default='build'): basestring,
 
     # unique label to describe this beetmover task, defaults to {dep.label}-beetmover
     Required('label'): basestring,
 
     # treeherder is allowed here to override any defaults we use for beetmover.  See
@@ -238,134 +131,49 @@ def make_task_description(config, jobs):
             'treeherder': treeherder,
             'shipping-phase': job['shipping-phase'],
             'shipping-product': job.get('shipping-product'),
         }
 
         yield task
 
 
-def generate_upstream_artifacts(
-    config, job, dependencies, platform, locale=None, project=None
-):
-
-    build_mapping = UPSTREAM_ARTIFACT_UNSIGNED_PATHS
-    build_signing_mapping = UPSTREAM_ARTIFACT_SIGNED_PATHS
-    repackage_mapping = UPSTREAM_ARTIFACT_REPACKAGE_PATHS
-    repackage_signing_mapping = UPSTREAM_ARTIFACT_SIGNED_REPACKAGE_PATHS
-    msi_signing_mapping = UPSTREAM_ARTIFACT_SIGNED_MSI_PATHS
-    mar_signing_mapping = UPSTREAM_ARTIFACT_SIGNED_MAR_PATHS
-
-    artifact_prefix = get_artifact_prefix(job)
-    if locale:
-        artifact_prefix = '{}/{}'.format(artifact_prefix, locale)
-        platform = "{}-l10n".format(platform)
-
-    upstream_artifacts = []
-
-    for task_type, mapping in [
-        ("build", build_mapping),
-        ("signing", build_signing_mapping),
-    ]:
-        platform_was_previously_matched_by_regex = None
-        for platform_regex, paths in mapping.iteritems():
-            if platform_regex.match(platform) is not None:
-                _check_platform_matched_only_one_regex(
-                    task_type, platform, platform_was_previously_matched_by_regex, platform_regex
-                )
-                platform_was_previously_matched_by_regex = platform_regex
-                if paths:
-                    upstream_artifacts.append({
-                        "taskId": {"task-reference": "<{}>".format(task_type)},
-                        "taskType": task_type,
-                        "paths": ["{}/{}".format(artifact_prefix, path) for path in paths],
-                        "locale": locale or "en-US",
-                    })
-
-    for task_type, cot_type, paths in [
-        ('repackage', 'repackage', repackage_mapping),
-        ('repackage-signing', 'repackage', repackage_signing_mapping),
-        ('repackage-signing-msi', 'repackage', msi_signing_mapping),
-        ('mar-signing', 'signing', mar_signing_mapping),
-    ]:
-        if task_type not in dependencies:
-            continue
-
-        paths = ["{}/{}".format(artifact_prefix, path) for path in paths]
-        paths = [
-            path for path in paths
-            if path in dependencies[task_type].release_artifacts]
-
-        if not paths:
-            continue
-
-        upstream_artifacts.append({
-            "taskId": {"task-reference": "<{}>".format(task_type)},
-            "taskType": cot_type,
-            "paths": paths,
-            "locale": locale or "en-US",
-        })
-
-    return upstream_artifacts
-
-
 def generate_partials_upstream_artifacts(job, artifacts, platform, locale=None):
     artifact_prefix = get_artifact_prefix(job)
     if locale and locale != 'en-US':
         artifact_prefix = '{}/{}'.format(artifact_prefix, locale)
 
     upstream_artifacts = [{
         'taskId': {'task-reference': '<partials-signing>'},
         'taskType': 'signing',
         'paths': ["{}/{}".format(artifact_prefix, path)
                   for path, _ in artifacts],
         'locale': locale or 'en-US',
     }]
 
     return upstream_artifacts
 
 
-def _check_platform_matched_only_one_regex(
-    task_type, platform, platform_was_previously_matched_by_regex, platform_regex
-):
-    if platform_was_previously_matched_by_regex is not None:
-        raise Exception('In task type "{task_type}", platform "{platform}" matches at \
-least 2 regular expressions. First matched: "{first_matched}". Second matched: \
-"{second_matched}"'.format(
-            task_type=task_type, platform=platform,
-            first_matched=platform_was_previously_matched_by_regex.pattern,
-            second_matched=platform_regex.pattern
-        ))
-
-
 @transforms.add
 def make_task_worker(config, jobs):
     for job in jobs:
         locale = job["attributes"].get("locale")
         platform = job["attributes"]["build_platform"]
 
-        if should_use_artifact_map(platform):
-            upstream_artifacts = generate_beetmover_upstream_artifacts(
-                config, job, platform, locale)
-        else:
-            upstream_artifacts = generate_upstream_artifacts(
-                config, job, job['dependencies'], platform, locale,
-                project=config.params['project']
-            )
-
         worker = {
             'implementation': 'beetmover',
             'release-properties': craft_release_properties(config, job),
-            'upstream-artifacts': upstream_artifacts,
+            'upstream-artifacts': generate_beetmover_upstream_artifacts(
+                config, job, platform, locale
+            ),
+            'artifact-map': generate_beetmover_artifact_map(
+                config, job, platform=platform, locale=locale
+            )
         }
 
-        if should_use_artifact_map(platform):
-            worker['artifact-map'] = generate_beetmover_artifact_map(
-                config, job, platform=platform, locale=locale)
-
         if locale:
             worker["locale"] = locale
         job["worker"] = worker
 
         yield job
 
 
 @transforms.add
@@ -435,20 +243,19 @@ def make_partials_artifacts(config, jobs
 
         job['worker']['upstream-artifacts'].extend(upstream_artifacts)
 
         extra = list()
 
         partials_info = get_partials_info_from_params(
             config.params.get('release_history'), balrog_platform, locale)
 
-        if should_use_artifact_map(platform):
-            job['worker']['artifact-map'].extend(
-                generate_beetmover_partials_artifact_map(
-                    config, job, partials_info, platform=platform, locale=locale))
+        job['worker']['artifact-map'].extend(
+            generate_beetmover_partials_artifact_map(
+                config, job, partials_info, platform=platform, locale=locale))
 
         for artifact in partials_info:
             artifact_extra = {
                 'locale': locale,
                 'artifact_name': artifact,
                 'buildid': partials_info[artifact]['buildid'],
                 'platform': balrog_platform,
             }
--- a/taskcluster/taskgraph/transforms/beetmover_source_checksums.py
+++ b/taskcluster/taskgraph/transforms/beetmover_source_checksums.py
@@ -10,18 +10,17 @@ from __future__ import absolute_import, 
 from taskgraph.loader.single_dep import schema
 from taskgraph.transforms.base import TransformSequence
 from taskgraph.transforms.beetmover import craft_release_properties
 from taskgraph.util.attributes import copy_attributes_from_dependent_job
 from taskgraph.util.scriptworker import (generate_beetmover_artifact_map,
                                          generate_beetmover_upstream_artifacts,
                                          get_beetmover_bucket_scope,
                                          get_beetmover_action_scope,
-                                         get_worker_type_for_scope,
-                                         should_use_artifact_map)
+                                         get_worker_type_for_scope)
 from taskgraph.transforms.task import task_description_schema
 from voluptuous import Required, Optional
 
 beetmover_checksums_description_schema = schema.extend({
     Required('depname', default='build'): basestring,
     Optional('label'): basestring,
     Optional('treeherder'): task_description_schema['treeherder'],
     Optional('locale'): basestring,
@@ -89,36 +88,16 @@ def make_beetmover_checksums_description
             task['shipping-phase'] = job['shipping-phase']
 
         if 'shipping-product' in job:
             task['shipping-product'] = job['shipping-product']
 
         yield task
 
 
-def generate_upstream_artifacts(refs, platform, locale=None):
-    # Until bug 1331141 is fixed, if you are adding any new artifacts here that
-    # need to be transfered to S3, please be aware you also need to follow-up
-    # with a beetmover patch in https://github.com/mozilla-releng/beetmoverscript/.
-    # See example in bug 1348286
-    common_paths = [
-        "public/target-source.checksums",
-        "public/target-source.checksums.asc",
-    ]
-
-    upstream_artifacts = [{
-        "taskId": {"task-reference": refs["signing"]},
-        "taskType": "signing",
-        "paths": common_paths,
-        "locale": locale or "en-US",
-    }]
-
-    return upstream_artifacts
-
-
 @transforms.add
 def make_beetmover_checksums_worker(config, jobs):
     for job in jobs:
         valid_beetmover_job = (len(job["dependencies"]) == 2)
         if not valid_beetmover_job:
             raise NotImplementedError("Beetmover checksums must have two dependencies.")
 
         locale = job["attributes"].get("locale")
@@ -130,31 +109,27 @@ def make_beetmover_checksums_worker(conf
         }
         for dependency in job["dependencies"].keys():
             if dependency.startswith("beetmover"):
                 refs['beetmover'] = "<{}>".format(dependency)
             else:
                 refs['signing'] = "<{}>".format(dependency)
         if None in refs.values():
             raise NotImplementedError(
-                "Beetmover checksums must have a beetmover and signing dependency!")
-
-        if should_use_artifact_map(platform):
-            upstream_artifacts = generate_beetmover_upstream_artifacts(config,
-                                                                       job, platform, locale)
-        else:
-            upstream_artifacts = generate_upstream_artifacts(refs, platform, locale)
+                "Beetmover checksums must have a beetmover and signing dependency!"
+            )
 
         worker = {
             'implementation': 'beetmover',
             'release-properties': craft_release_properties(config, job),
-            'upstream-artifacts': upstream_artifacts,
+            'upstream-artifacts': generate_beetmover_upstream_artifacts(
+                config, job, platform, locale
+            ),
+            'artifact-map': generate_beetmover_artifact_map(
+                config, job, platform=platform
+            ),
         }
 
-        if should_use_artifact_map(platform):
-            worker['artifact-map'] = generate_beetmover_artifact_map(
-                config, job, platform=platform)
-
         if locale:
             worker["locale"] = locale
         job["worker"] = worker
 
         yield job
--- a/taskcluster/taskgraph/transforms/release_beetmover_signed_addons.py
+++ b/taskcluster/taskgraph/transforms/release_beetmover_signed_addons.py
@@ -10,18 +10,17 @@ from __future__ import absolute_import, 
 from taskgraph.loader.single_dep import schema
 from taskgraph.transforms.base import TransformSequence
 from taskgraph.transforms.beetmover import craft_release_properties
 from taskgraph.util.attributes import copy_attributes_from_dependent_job
 from taskgraph.util.schema import optionally_keyed_by, resolve_keyed_by
 from taskgraph.util.scriptworker import (get_beetmover_bucket_scope,
                                          get_beetmover_action_scope,
                                          generate_beetmover_upstream_artifacts,
-                                         generate_beetmover_artifact_map,
-                                         should_use_artifact_map)
+                                         generate_beetmover_artifact_map)
 from taskgraph.util.treeherder import inherit_treeherder_from_dep
 from taskgraph.transforms.task import task_description_schema
 from voluptuous import Required, Optional
 
 import logging
 import copy
 
 logger = logging.getLogger(__name__)
@@ -106,62 +105,33 @@ def make_task_description(config, jobs):
         job['shipping-product'] = dep_job.attributes['shipping_product']
 
         yield job
 
 
 @transforms.add
 def make_task_worker(config, jobs):
     for job in jobs:
-        signing_task_ref = '<langpack-copy>'
-
         platform = job["attributes"]["build_platform"]
         locale = job["attributes"]["chunk_locales"]
-        if should_use_artifact_map(platform):
-            upstream_artifacts = generate_beetmover_upstream_artifacts(
-                config, job, platform, locale,
-            )
-        else:
-            upstream_artifacts = generate_upstream_artifacts(
-                signing_task_ref, job['attributes']['chunk_locales']
-            )
+
         job['worker'] = {
             'implementation': 'beetmover',
             'release-properties': craft_release_properties(config, job),
-            'upstream-artifacts': upstream_artifacts,
+            'upstream-artifacts': generate_beetmover_upstream_artifacts(
+                config, job, platform, locale,
+            ),
+            'artifact-map': generate_beetmover_artifact_map(
+                config, job, platform=platform, locale=locale
+            ),
         }
 
-        if should_use_artifact_map(platform):
-            job['worker']['artifact-map'] = generate_beetmover_artifact_map(
-                config, job, platform=platform, locale=locale)
-
         yield job
 
 
-def generate_upstream_artifacts(upstream_task_ref, locales):
-    def locale_path(locale): return ''
-    if locales and locales != ['en-US']:
-        def locale_path(locale): return '{}/'.format(locale)
-        # We assume 'en-US' is not in locales, assert it here
-        assert 'en-US' not in locales, "Expected no en-US in: {}".format(locales)
-    else:
-        # We assume only 'en-US' is in locales, assert it here
-        assert 'en-US' in locales, "Expect en-US in: {}".format(locales)
-        assert len(locales) == 1, "Expect locales to only contain en-US"
-
-    return [{
-        'taskId': {'task-reference': upstream_task_ref},
-        'taskType': 'scriptworker',
-        'locale': locale,
-        'paths': [
-            'public/build/{}target.langpack.xpi'.format(locale_path(locale))
-        ],
-    } for locale in locales]
-
-
 @transforms.add
 def strip_unused_data(config, jobs):
     for job in jobs:
         del job['primary-dependency']
 
         yield job
 
 
@@ -214,39 +184,42 @@ def _change_platform_in_artifact_map_pat
 
     return amended_paths
 
 
 def _change_platform_data(config, platform_job, platform):
     orig_platform = 'linux64'
     if 'devedition' in platform:
         orig_platform = 'linux64-devedition'
-    backup_platform = platform_job['attributes']['build_platform']
     platform_job['attributes']['build_platform'] = platform
     platform_job['label'] = platform_job['label'].replace(orig_platform, platform)
     platform_job['description'] = platform_job['description'].replace(orig_platform, platform)
     platform_job['treeherder']['platform'] = platform_job['treeherder']['platform'].replace(
         orig_platform, platform
     )
     platform_job['worker']['release-properties']['platform'] = platform
 
     # amend artifactMap entries as well
-    if should_use_artifact_map(backup_platform):
-        platform_mapping = {
-            'linux64': 'linux-x86_64',
-            'linux': 'linux-i686',
-            'macosx64': 'mac',
-            'win32': 'win32',
-            'win64': 'win64',
-        }
-        orig_platform = platform_mapping.get(orig_platform, orig_platform)
-        platform = platform_mapping.get(platform, platform)
-        platform_job['worker']['artifact-map'] = [
-            {
-                'locale': entry['locale'],
-                'taskId': entry['taskId'],
-                'paths': _change_platform_in_artifact_map_paths(entry['paths'],
-                                                                orig_platform,
-                                                                platform)
-            } for entry in platform_job['worker']['artifact-map']
-        ]
+    platform_mapping = {
+        'linux64': 'linux-x86_64',
+        'linux': 'linux-i686',
+        'macosx64': 'mac',
+        'win32': 'win32',
+        'win64': 'win64',
+        'linux64-devedition': 'linux-x86_64',
+        'linux-devedition': 'linux-i686',
+        'macosx64-devedition': 'mac',
+        'win32-devedition': 'win32',
+        'win64-devedition': 'win64',
+    }
+    orig_platform = platform_mapping.get(orig_platform, orig_platform)
+    platform = platform_mapping.get(platform, platform)
+    platform_job['worker']['artifact-map'] = [
+        {
+            'locale': entry['locale'],
+            'taskId': entry['taskId'],
+            'paths': _change_platform_in_artifact_map_paths(entry['paths'],
+                                                            orig_platform,
+                                                            platform)
+        } for entry in platform_job['worker']['artifact-map']
+    ]
 
     return platform_job
--- a/taskcluster/taskgraph/transforms/release_generate_checksums_beetmover.py
+++ b/taskcluster/taskgraph/transforms/release_generate_checksums_beetmover.py
@@ -8,39 +8,23 @@ from __future__ import absolute_import, 
 
 from taskgraph.loader.single_dep import schema
 from taskgraph.transforms.base import TransformSequence
 from taskgraph.util.attributes import copy_attributes_from_dependent_job
 from taskgraph.util.scriptworker import (generate_beetmover_artifact_map,
                                          generate_beetmover_upstream_artifacts,
                                          get_beetmover_bucket_scope,
                                          get_beetmover_action_scope,
-                                         get_worker_type_for_scope,
-                                         should_use_artifact_map,
-                                         )
-from taskgraph.util.taskcluster import get_artifact_prefix
+                                         get_worker_type_for_scope)
 from taskgraph.transforms.beetmover import craft_release_properties
 from taskgraph.transforms.task import task_description_schema
 from voluptuous import Required, Optional
 
 transforms = TransformSequence()
 
-CHECKSUMS_BUILD_ARTIFACTS = [
-    "SHA256SUMMARY",
-    "SHA512SUMMARY"
-]
-
-CHECKSUMS_SIGNING_ARTIFACTS = [
-    "KEY",
-    "SHA256SUMS",
-    "SHA256SUMS.asc",
-    "SHA512SUMS",
-    "SHA512SUMS.asc"
-]
-
 
 release_generate_checksums_beetmover_schema = schema.extend({
     # depname is used in taskref's to identify the taskID of the unsigned things
     Required('depname', default='build'): basestring,
 
     # unique label to describe this beetmover task, defaults to {dep.label}-beetmover
     Optional('label'): basestring,
 
@@ -102,76 +86,31 @@ def make_task_description(config, jobs):
             'run-on-projects': dep_job.attributes.get('run_on_projects'),
             'treeherder': treeherder,
             'shipping-phase': 'promote',
         }
 
         yield task
 
 
-def generate_upstream_artifacts(job, signing_task_ref, build_task_ref):
-    build_mapping = CHECKSUMS_BUILD_ARTIFACTS
-    signing_mapping = CHECKSUMS_SIGNING_ARTIFACTS
-
-    artifact_prefix = get_artifact_prefix(job)
-
-    upstream_artifacts = [{
-        "taskId": {"task-reference": build_task_ref},
-        "taskType": "build",
-        "paths": ["{}/{}".format(artifact_prefix, p)
-                  for p in build_mapping],
-        "locale": "en-US",
-    }, {
-        "taskId": {"task-reference": signing_task_ref},
-        "taskType": "signing",
-        "paths": ["{}/{}".format(artifact_prefix, p)
-                  for p in signing_mapping],
-        "locale": "en-US",
-    }]
-
-    return upstream_artifacts
-
-
 @transforms.add
 def make_task_worker(config, jobs):
     for job in jobs:
         valid_beetmover_job = (len(job["dependencies"]) == 2 and
                                any(['signing' in j for j in job['dependencies']]))
         if not valid_beetmover_job:
             raise NotImplementedError("Beetmover must have two dependencies.")
 
-        build_task = None
-        signing_task = None
-        for dependency in job["dependencies"].keys():
-            if 'signing' in dependency:
-                signing_task = dependency
-            else:
-                build_task = dependency
-
-        signing_task_ref = "<{}>".format(str(signing_task))
-        build_task_ref = "<{}>".format(str(build_task))
-
+        platform = job["attributes"]["build_platform"]
         worker = {
             'implementation': 'beetmover',
             'release-properties': craft_release_properties(config, job),
-        }
-
-        platform = job["attributes"]["build_platform"]
-        # Works with Firefox/Devedition. Commented for migration.
-        if should_use_artifact_map(platform):
-            upstream_artifacts = generate_beetmover_upstream_artifacts(
+            'upstream-artifacts': generate_beetmover_upstream_artifacts(
                 config, job, platform=None, locale=None
-            )
-        else:
-            upstream_artifacts = generate_upstream_artifacts(
-                job, signing_task_ref, build_task_ref
-            )
-
-        worker['upstream-artifacts'] = upstream_artifacts
-
-        # Works with Firefox/Devedition. Commented for migration.
-        if should_use_artifact_map(platform):
-            worker['artifact-map'] = generate_beetmover_artifact_map(
-                config, job, platform=platform)
+            ),
+            'artifact-map': generate_beetmover_artifact_map(
+                config, job, platform=platform
+            ),
+        }
 
         job["worker"] = worker
 
         yield job
--- a/taskcluster/taskgraph/util/scriptworker.py
+++ b/taskcluster/taskgraph/util/scriptworker.py
@@ -780,17 +780,8 @@ def generate_beetmover_partials_artifact
 
         artifacts.append({
             'taskId': {'task-reference': "<{}>".format(dep)},
             'locale': locale,
             'paths': paths,
         })
 
     return artifacts
-
-
-def should_use_artifact_map(platform):
-    """Return True if this task uses the beetmover artifact map.
-
-    This function exists solely for the beetmover artifact map
-    migration.
-    """
-    return 'devedition' not in platform