pylint scripts under sky, remove dead scripts under sky/tools/roll (#38334)

diff --git a/ci/licenses_golden/excluded_files b/ci/licenses_golden/excluded_files
index 2ab9d44..ec6f5f0 100644
--- a/ci/licenses_golden/excluded_files
+++ b/ci/licenses_golden/excluded_files
@@ -343,9 +343,6 @@
 ../../../flutter/sky/tools/dist_dart_pkg.py
 ../../../flutter/sky/tools/install_framework_headers.py
 ../../../flutter/sky/tools/objcopy.py
-../../../flutter/sky/tools/roll/patch.py
-../../../flutter/sky/tools/roll/roll.py
-../../../flutter/sky/tools/roll/utils.py
 ../../../flutter/testing
 ../../../flutter/third_party/accessibility/README.md
 ../../../flutter/third_party/accessibility/ax/ax_enum_util_unittest.cc
diff --git a/ci/licenses_golden/licenses_flutter b/ci/licenses_golden/licenses_flutter
index 5b7ab49..578c924 100644
--- a/ci/licenses_golden/licenses_flutter
+++ b/ci/licenses_golden/licenses_flutter
@@ -5571,7 +5571,6 @@
 FILE: ../../../flutter/shell/version/version.cc
 FILE: ../../../flutter/shell/version/version.h
 FILE: ../../../flutter/shell/vmservice/empty.dart
-FILE: ../../../flutter/sky/tools/roll/patches/chromium/android_build.patch
 FILE: ../../../flutter/third_party/accessibility/base/color_utils.h
 FILE: ../../../flutter/third_party/accessibility/base/compiler_specific.h
 FILE: ../../../flutter/third_party/accessibility/base/container_utils.h
diff --git a/ci/lint.sh b/ci/lint.sh
index 05c6d94..adfc2be 100755
--- a/ci/lint.sh
+++ b/ci/lint.sh
@@ -74,6 +74,7 @@
   "build/" \
   "ci/" \
   "impeller/" \
+  "sky/" \
   "tools/gn" \
   "testing/"
 
diff --git a/sky/tools/create_full_ios_framework.py b/sky/tools/create_full_ios_framework.py
index 3d46fc4..6594b0f 100644
--- a/sky/tools/create_full_ios_framework.py
+++ b/sky/tools/create_full_ios_framework.py
@@ -13,7 +13,7 @@
 import subprocess
 import sys
 
-from create_xcframework import create_xcframework
+from create_xcframework import create_xcframework  # pylint: disable=import-error
 
 DSYMUTIL = os.path.join(
     os.path.dirname(__file__), '..', '..', '..', 'buildtools', 'mac-x64',
@@ -39,8 +39,8 @@
   parser.add_argument('--arm64-out-dir', type=str, required=True)
   parser.add_argument('--simulator-x64-out-dir', type=str, required=True)
   parser.add_argument('--simulator-arm64-out-dir', type=str, required=False)
-  parser.add_argument('--strip', action="store_true", default=False)
-  parser.add_argument('--dsym', action="store_true", default=False)
+  parser.add_argument('--strip', action='store_true', default=False)
+  parser.add_argument('--dsym', action='store_true', default=False)
 
   args = parser.parse_args()
 
@@ -108,9 +108,10 @@
   process_framework(args, dst, framework, framework_binary)
   generate_gen_snapshot(args, dst, x64_out_dir, arm64_out_dir)
   zip_archive(dst)
+  return 0
 
 
-def create_framework(
+def create_framework(  # pylint: disable=too-many-arguments
     args, dst, framework, arm64_framework, simulator_framework,
     simulator_x64_framework, simulator_arm64_framework
 ):
@@ -122,7 +123,7 @@
     return 1
 
   if not os.path.isfile(simulator_x64_dylib):
-    print('Cannot find iOS simulator dylib at %s' % simulator_dylib)
+    print('Cannot find iOS simulator dylib at %s' % simulator_x64_dylib)
     return 1
 
   shutil.rmtree(framework, True)
@@ -143,12 +144,12 @@
     process_framework(
         args, dst, simulator_framework, simulator_framework_binary
     )
-    simulator_framework = simulator_framework
   else:
     simulator_framework = simulator_x64_framework
 
-  # Create XCFramework from the arm-only fat framework and the arm64/x64 simulator frameworks, or just the
-  # x64 simulator framework if only that one exists.
+  # Create XCFramework from the arm-only fat framework and the arm64/x64
+  # simulator frameworks, or just the x64 simulator framework if only that one
+  # exists.
   xcframeworks = [simulator_framework, framework]
   create_xcframework(location=dst, name='Flutter', frameworks=xcframeworks)
 
@@ -158,10 +159,12 @@
       framework_binary
   ])
 
+  return 0
+
 
 def embed_codesign_configuration(config_path, contents):
-  with open(config_path, 'w') as f:
-    f.write('\n'.join(contents) + '\n')
+  with open(config_path, 'w') as file:
+    file.write('\n'.join(contents) + '\n')
 
 
 def zip_archive(dst):
@@ -189,7 +192,7 @@
       'without_entitlements.txt',
   ],
                         cwd=dst)
-  if (os.path.exists(os.path.join(dst, 'Flutter.dSYM'))):
+  if os.path.exists(os.path.join(dst, 'Flutter.dSYM')):
     subprocess.check_call(['zip', '-r', 'Flutter.dSYM.zip', 'Flutter.dSYM'],
                           cwd=dst)
 
@@ -204,7 +207,7 @@
     unstripped_out = os.path.join(dst, 'Flutter.unstripped')
     shutil.copyfile(framework_binary, unstripped_out)
 
-    subprocess.check_call(["strip", "-x", "-S", framework_binary])
+    subprocess.check_call(['strip', '-x', '-S', framework_binary])
 
 
 def generate_gen_snapshot(args, dst, x64_out_dir, arm64_out_dir):
diff --git a/sky/tools/create_ios_framework.py b/sky/tools/create_ios_framework.py
index e20c010..f0815df 100755
--- a/sky/tools/create_ios_framework.py
+++ b/sky/tools/create_ios_framework.py
@@ -10,7 +10,7 @@
 import sys
 import os
 
-from create_xcframework import create_xcframework
+from create_xcframework import create_xcframework  # pylint: disable=import-error
 
 DSYMUTIL = os.path.join(
     os.path.dirname(__file__), '..', '..', '..', 'buildtools', 'mac-x64',
@@ -31,8 +31,8 @@
       '--simulator-x64-out-dir', '--simulator-out-dir', type=str, required=True
   )
   parser.add_argument('--simulator-arm64-out-dir', type=str, required=False)
-  parser.add_argument('--strip', action="store_true", default=False)
-  parser.add_argument('--dsym', action="store_true", default=False)
+  parser.add_argument('--strip', action='store_true', default=False)
+  parser.add_argument('--dsym', action='store_true', default=False)
 
   args = parser.parse_args()
 
@@ -64,7 +64,7 @@
     return 1
 
   if not os.path.isfile(simulator_x64_dylib):
-    print('Cannot find iOS simulator dylib at %s' % simulator_dylib)
+    print('Cannot find iOS simulator dylib at %s' % simulator_x64_dylib)
     return 1
 
   if not os.path.isfile(DSYMUTIL):
@@ -88,12 +88,12 @@
         '-output', simulator_framework_binary
     ])
     process_framework(args, simulator_framework, simulator_framework_binary)
-    simulator_framework = simulator_framework
   else:
     simulator_framework = simulator_x64_framework
 
-  # Create XCFramework from the arm-only fat framework and the arm64/x64 simulator frameworks, or just the
-  # x64 simulator framework if only that one exists.
+  # Create XCFramework from the arm-only fat framework and the arm64/x64
+  # simulator frameworks, or just the x64 simulator framework if only that one
+  # exists.
   xcframeworks = [simulator_framework, framework]
   create_xcframework(location=args.dst, name='Flutter', frameworks=xcframeworks)
 
@@ -104,6 +104,7 @@
   ])
 
   process_framework(args, framework, framework_binary)
+  return 0
 
 
 def process_framework(args, framework, framework_binary):
@@ -116,7 +117,7 @@
     unstripped_out = os.path.join(args.dst, 'Flutter.unstripped')
     shutil.copyfile(framework_binary, unstripped_out)
 
-    subprocess.check_call(["strip", "-x", "-S", framework_binary])
+    subprocess.check_call(['strip', '-x', '-S', framework_binary])
 
 
 if __name__ == '__main__':
diff --git a/sky/tools/create_macos_framework.py b/sky/tools/create_macos_framework.py
index dedd2d7..a354626 100755
--- a/sky/tools/create_macos_framework.py
+++ b/sky/tools/create_macos_framework.py
@@ -10,8 +10,6 @@
 import sys
 import os
 
-from create_xcframework import create_xcframework
-
 buildroot_dir = os.path.abspath(
     os.path.join(os.path.realpath(__file__), '..', '..', '..', '..')
 )
@@ -32,10 +30,10 @@
   parser.add_argument('--dst', type=str, required=True)
   parser.add_argument('--arm64-out-dir', type=str, required=True)
   parser.add_argument('--x64-out-dir', type=str, required=True)
-  parser.add_argument('--strip', action="store_true", default=False)
-  parser.add_argument('--dsym', action="store_true", default=False)
+  parser.add_argument('--strip', action='store_true', default=False)
+  parser.add_argument('--dsym', action='store_true', default=False)
   # TODO(godofredoc): Remove after recipes v2 have landed.
-  parser.add_argument('--zip', action="store_true", default=False)
+  parser.add_argument('--zip', action='store_true', default=False)
 
   args = parser.parse_args()
 
@@ -93,6 +91,8 @@
   ])
   process_framework(dst, args, fat_framework, fat_framework_binary)
 
+  return 0
+
 
 def regenerate_symlinks(fat_framework):
   """Regenerates the symlinks structure.
@@ -142,7 +142,7 @@
     unstripped_out = os.path.join(dst, 'FlutterMacOS.unstripped')
     shutil.copyfile(fat_framework_binary, unstripped_out)
 
-    subprocess.check_call(["strip", "-x", "-S", fat_framework_binary])
+    subprocess.check_call(['strip', '-x', '-S', fat_framework_binary])
 
   # Zip FlutterMacOS.framework.
   if args.zip:
diff --git a/sky/tools/create_macos_gen_snapshots.py b/sky/tools/create_macos_gen_snapshots.py
index 4603bcd..7bd1c6d 100755
--- a/sky/tools/create_macos_gen_snapshots.py
+++ b/sky/tools/create_macos_gen_snapshots.py
@@ -24,7 +24,7 @@
   parser.add_argument('--x64-out-dir', type=str)
   parser.add_argument('--arm64-out-dir', type=str)
   parser.add_argument('--armv7-out-dir', type=str)
-  parser.add_argument('--zip', action="store_true", default=False)
+  parser.add_argument('--zip', action='store_true', default=False)
 
   args = parser.parse_args()
 
diff --git a/sky/tools/create_xcframework.py b/sky/tools/create_xcframework.py
index 889dea3..cfc389c 100755
--- a/sky/tools/create_xcframework.py
+++ b/sky/tools/create_xcframework.py
@@ -5,7 +5,6 @@
 # found in the LICENSE file.
 
 import argparse
-import errno
 import os
 import shutil
 import subprocess
@@ -46,7 +45,8 @@
     # Remove old xcframework.
     shutil.rmtree(output_xcframework)
 
-  # xcrun xcodebuild -create-xcframework -framework foo/baz.framework -framework bar/baz.framework -output output/
+  # xcrun xcodebuild -create-xcframework -framework foo/baz.framework \
+  #                  -framework bar/baz.framework -output output/
   command = ['xcrun', 'xcodebuild', '-quiet', '-create-xcframework']
 
   for framework in frameworks:
diff --git a/sky/tools/install_framework_headers.py b/sky/tools/install_framework_headers.py
index 4cc631d..ab59393 100755
--- a/sky/tools/install_framework_headers.py
+++ b/sky/tools/install_framework_headers.py
@@ -8,7 +8,6 @@
 import errno
 import os
 import shutil
-import subprocess
 import sys
 
 
@@ -31,10 +30,10 @@
   # Remove old headers.
   try:
     shutil.rmtree(os.path.normpath(args.location))
-  except OSError as e:
+  except OSError as err:
     # Ignore only "not found" errors.
-    if e.errno != errno.ENOENT:
-      raise e
+    if err.errno != errno.ENOENT:
+      raise err
 
   # Create the directory to copy the files to.
   if not os.path.isdir(args.location):
diff --git a/sky/tools/roll/patch.py b/sky/tools/roll/patch.py
deleted file mode 100755
index 651f187..0000000
--- a/sky/tools/roll/patch.py
+++ /dev/null
@@ -1,46 +0,0 @@
-#!/usr/bin/env python3
-#
-# Copyright 2013 The Flutter Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-
-import os
-import subprocess
-import utils
-
-
-def patch_and_filter(dest_dir, relative_patches_dir):
-  os.chdir(dest_dir)
-
-  utils.filter_file(
-      "build/landmines.py", lambda line: not "gyp_environment" in line
-  )
-  utils.commit("filter gyp_environment out of build/landmines.py")
-
-  patch(dest_dir, relative_patches_dir)
-
-
-def patch(dest_dir, relative_patches_dir=os.curdir):
-  """Applies the *.patch files in |relative_patches_dir|.
-
-  Args:
-    relative_patches_dir: A directory path relative to the current directory.
-        Defaults to the directory of this file.
-
-  Raises:
-    subprocess.CalledProcessError if the patch couldn't be applied.
-  """
-  patches_dir = os.path.join(
-      os.path.dirname(os.path.realpath(__file__)), relative_patches_dir
-  )
-  assert os.path.isdir(patches_dir)
-
-  os.chdir(dest_dir)
-  for p in utils.find(["*.patch"], patches_dir):
-    print("applying patch %s" % os.path.basename(p))
-    try:
-      utils.system(["git", "apply", p])
-      utils.commit("applied patch %s" % os.path.basename(p))
-    except subprocess.CalledProcessError:
-      print("ERROR: patch %s failed to apply" % os.path.basename(p))
-      raise
diff --git a/sky/tools/roll/patches/chromium/android_build.patch b/sky/tools/roll/patches/chromium/android_build.patch
deleted file mode 100644
index bd73b9e..0000000
--- a/sky/tools/roll/patches/chromium/android_build.patch
+++ /dev/null
@@ -1,33 +0,0 @@
---- a/build/android/pylib/constants/__init__.py
-+++ b/build/android/pylib/constants/__init__.py
-@@ -184,7 +184,7 @@ class ANDROID_SDK_VERSION_CODES(object):
-   LOLLIPOP_MR1 = 22
- 
- ANDROID_SDK_VERSION = ANDROID_SDK_VERSION_CODES.LOLLIPOP_MR1
--ANDROID_SDK_BUILD_TOOLS_VERSION = '22.0.0'
-+ANDROID_SDK_BUILD_TOOLS_VERSION = '22.0.1'
- ANDROID_SDK_ROOT = os.path.join(DIR_SOURCE_ROOT,
-                                 'third_party/android_tools/sdk')
- ANDROID_SDK_TOOLS = os.path.join(ANDROID_SDK_ROOT,
---- a/build/common.gypi
-+++ b/build/common.gypi
-@@ -1682,7 +1682,7 @@
-             'android_host_arch%': '<!(uname -m)',
-             # Android API-level of the SDK used for compilation.
-             'android_sdk_version%': '22',
--            'android_sdk_build_tools_version%': '22.0.0',
-+            'android_sdk_build_tools_version%': '22.0.1',
-             'host_os%': "<!(uname -s | sed -e 's/Linux/linux/;s/Darwin/mac/')",
-           },
-           # Copy conditionally-set variables out one scope.
---- a/build/config/android/config.gni
-+++ b/build/config/android/config.gni
-@@ -17,7 +17,7 @@ if (is_android) {
-   if (!defined(default_android_sdk_root)) {
-     default_android_sdk_root = "//third_party/android_tools/sdk"
-     default_android_sdk_version = "22"
--    default_android_sdk_build_tools_version = "22.0.0"
-+    default_android_sdk_build_tools_version = "22.0.1"
-   }
- 
-   if (!defined(google_play_services_library)) {
diff --git a/sky/tools/roll/roll.py b/sky/tools/roll/roll.py
deleted file mode 100755
index 0c0f754..0000000
--- a/sky/tools/roll/roll.py
+++ /dev/null
@@ -1,173 +0,0 @@
-#!/usr/bin/env python3
-#
-# Copyright 2013 The Flutter Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-
-import argparse
-import json
-import os
-import subprocess
-import sys
-import urllib.request, urllib.error, urllib.parse
-from utils import commit
-from utils import system
-import patch
-
-# //base and its dependencies
-_base_deps = [
-    'base',
-    'testing',
-    'third_party/ashmem',
-    'third_party/libevent',
-    'third_party/tcmalloc',
-]
-
-# //build and its dependencies
-_build_deps = [
-    'build',
-    'third_party/android_testrunner',
-    'third_party/binutils',
-    'third_party/instrumented_libraries',
-    'third_party/pymock',
-    'tools/android',
-    'tools/clang',
-    'tools/generate_library_loader',
-    'tools/gritsettings',
-    'tools/valgrind',
-]
-
-_third_party_deps = [
-    'third_party/android_platform',
-    'third_party/apple_apsl',
-    'third_party/expat',
-    'third_party/freetype-android',
-    'third_party/harfbuzz-ng',
-    'third_party/iccjpeg',
-    'third_party/jinja2',
-    'third_party/jsr-305',
-    'third_party/junit',
-    'third_party/libjpeg',
-    'third_party/libpng',
-    'third_party/markupsafe',
-    'third_party/mesa',
-    'third_party/mockito',
-    'third_party/ply',
-    'third_party/qcms',
-    'third_party/robolectric',
-    'third_party/zlib',
-]
-
-dirs_from_chromium = _base_deps + _build_deps + _third_party_deps
-
-dirs_from_mojo = [
-    'mojo/android',
-    'mojo/application',
-    'mojo/common',
-    ('mojo/dart/embedder', ['embedder.gni']),
-    'mojo/dart/packages/mojo',
-    'mojo/data_pipe_utils',
-    'mojo/edk',
-    'mojo/environment',
-    'mojo/java',
-    'mojo/message_pump',
-    'mojo/services',
-    'mojo/skia',
-    'services/sensors',
-]
-
-# The contents of these files before the roll will be preserved after the roll,
-# even though they live in directories rolled in from Chromium.
-files_not_to_roll = [
-    'build/config/ui.gni',
-    'build/ls.py',
-    'build/module_args/mojo.gni',
-    'tools/android/download_android_tools.py',
-    'tools/android/VERSION_LINUX_NDK',
-    'tools/android/VERSION_LINUX_SDK',
-    'tools/android/VERSION_MACOSX_NDK',
-    'tools/android/VERSION_MACOSX_SDK',
-]
-
-
-def rev(source_dir, dest_dir, dirs_to_rev, name, revision_file=None):
-  for dir_to_rev in dirs_to_rev:
-    if type(dir_to_rev) is tuple:
-      d, file_subset = dir_to_rev
-    else:
-      d = dir_to_rev
-      file_subset = None
-    print("removing directory %s" % d)
-    try:
-      system(["git", "rm", "-r", d], cwd=dest_dir)
-    except subprocess.CalledProcessError:
-      print("Could not remove %s" % d)
-    print("cloning directory %s" % d)
-
-    if file_subset is None:
-      files = system(["git", "ls-files", d], cwd=source_dir).splitlines()
-    else:
-      files = [os.path.join(d, f) for f in file_subset]
-
-    for f in files:
-      source_path = os.path.join(source_dir, f)
-      if not os.path.isfile(source_path):
-        continue
-      dest_path = os.path.join(dest_dir, f)
-      system(["mkdir", "-p", os.path.dirname(dest_path)], cwd=source_dir)
-      system(["cp", source_path, dest_path], cwd=source_dir)
-    system(["git", "add", d], cwd=dest_dir)
-
-  for f in files_not_to_roll:
-    system(["git", "checkout", "HEAD", f], cwd=dest_dir)
-
-  src_commit = system(["git", "rev-parse", "HEAD"], cwd=source_dir).strip()
-
-  if revision_file:
-    with open(revision_file, 'w') as f:
-      f.write(src_commit)
-
-  system(["git", "add", "."], cwd=dest_dir)
-  commit("Update to %s %s" % (name, src_commit), cwd=dest_dir)
-
-
-def main():
-  parser = argparse.ArgumentParser(
-      description="Update the mojo repo's " +
-      "snapshot of things imported from chromium."
-  )
-  parser.add_argument("--mojo-dir", type=str)
-  parser.add_argument("--chromium-dir", type=str)
-  parser.add_argument("--dest-dir", type=str)
-
-  args = parser.parse_args()
-
-  dest_dir = os.path.abspath(args.dest_dir)
-
-  if args.mojo_dir:
-    rev(
-        os.path.abspath(args.mojo_dir),
-        dest_dir,
-        dirs_from_mojo,
-        'mojo',
-        revision_file='mojo/VERSION'
-    )
-
-  if args.chromium_dir:
-    rev(
-        os.path.abspath(args.chromium_dir), dest_dir, dirs_from_chromium,
-        'chromium'
-    )
-
-    try:
-      patch.patch_and_filter(dest_dir, os.path.join('patches', 'chromium'))
-    except subprocess.CalledProcessError:
-      print("ERROR: Roll failed due to a patch not applying")
-      print("Fix the patch to apply, commit the result, and re-run this script")
-      return 1
-
-  return 0
-
-
-if __name__ == "__main__":
-  sys.exit(main())
diff --git a/sky/tools/roll/utils.py b/sky/tools/roll/utils.py
deleted file mode 100755
index a5234d3..0000000
--- a/sky/tools/roll/utils.py
+++ /dev/null
@@ -1,34 +0,0 @@
-#!/usr/bin/env python3
-#
-# Copyright 2013 The Flutter Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-
-import fnmatch
-import os
-import subprocess
-
-
-def commit(message, cwd=None):
-  subprocess.call(['git', 'commit', '-a', '-m', message], cwd=cwd)
-
-
-def system(command, cwd=None):
-  return subprocess.check_output(command, cwd=cwd)
-
-
-def find(patterns, start='.'):
-  for path, dirs, files in os.walk(start):
-    for basename in files + dirs:
-      if any([fnmatch.fnmatch(basename, pattern) for pattern in patterns]):
-        filename = os.path.join(path, basename)
-        yield filename
-
-
-def filter_file(path, predicate):
-  with open(path, 'r+') as f:
-    lines = f.readlines()
-    new_lines = [line for line in lines if predicate(line)]
-    f.seek(0)
-    f.truncate()
-    f.write(''.join(new_lines))