Răsfoiți Sursa

[recipe_modules/presubmit] Only run with vpython3.

The time has come :).

R=aravindvasudev@google.com

Bug: 1413668
Recipe-Nontrivial-Roll: build
Change-Id: Ie6e26cc87a22d17eb2e4bc6b8f86895738670eea
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/4389545
Commit-Queue: Robbie Iannucci <iannucci@chromium.org>
Reviewed-by: Bruce Dawson <brucedawson@chromium.org>
Reviewed-by: Takuto Ikuta <tikuta@chromium.org>
Reviewed-by: Aravind Vasudevan <aravindvasudev@google.com>
Robert Iannucci 2 ani în urmă
părinte
comite
330de93b15

+ 2 - 2
recipes/README.recipes.md

@@ -758,7 +758,7 @@ Raises:
 
 
 Returns a presubmit step.
 Returns a presubmit step.
 
 
-&mdash; **def [execute](/recipes/recipe_modules/presubmit/api.py#130)(self, bot_update_step, skip_owners=False, run_all=False):**
+&mdash; **def [execute](/recipes/recipe_modules/presubmit/api.py#101)(self, bot_update_step, skip_owners=False, run_all=False):**
 
 
 Runs presubmit and sets summary markdown if applicable.
 Runs presubmit and sets summary markdown if applicable.
 
 
@@ -769,7 +769,7 @@ Args:
 Returns:
 Returns:
   a RawResult object, suitable for being returned from RunSteps.
   a RawResult object, suitable for being returned from RunSteps.
 
 
-&mdash; **def [prepare](/recipes/recipe_modules/presubmit/api.py#78)(self, root_solution_revision=None):**
+&mdash; **def [prepare](/recipes/recipe_modules/presubmit/api.py#49)(self, root_solution_revision=None):**
 
 
 Sets up a presubmit run.
 Sets up a presubmit run.
 
 

+ 1 - 30
recipes/recipe_modules/presubmit/api.py

@@ -30,42 +30,13 @@ class PresubmitApi(recipe_api.RecipeApi):
 
 
     name = kwargs.pop('name', 'presubmit')
     name = kwargs.pop('name', 'presubmit')
     with self.m.depot_tools.on_path():
     with self.m.depot_tools.on_path():
-      # Use only vpython3 on bots that don't have vpython2 on the path any
-      # longer.
-      # TODO(https://crbug.com/1401307): Switch this to vpython3 premanently
-      # and remove py3 part below.
-      experiments = self.m.buildbucket.build.input.experiments
-      if 'luci.buildbucket.omit_python2' in experiments:
-        cmd = ['vpython3', self.presubmit_support_path, '--use-python3']
-      else:
-        cmd = ['vpython', self.presubmit_support_path]
-
+      cmd = ['vpython3', self.presubmit_support_path, '--use-python3']
       cmd.extend(args)
       cmd.extend(args)
       cmd.extend(['--json_output', self.m.json.output()])
       cmd.extend(['--json_output', self.m.json.output()])
       if self.m.resultdb.enabled:
       if self.m.resultdb.enabled:
         kwargs['wrapper'] = ('rdb', 'stream', '--')
         kwargs['wrapper'] = ('rdb', 'stream', '--')
       step_data = self.m.step(name, cmd, **kwargs)
       step_data = self.m.step(name, cmd, **kwargs)
       output = step_data.json.output or {}
       output = step_data.json.output or {}
-      if self.m.step.active_result.retcode != 0 or \
-          'luci.buildbucket.omit_python2' in experiments:
-        return output
-
-      presubmit_args = list(args) + [
-          '--json_output',
-          self.m.json.output(),
-      ]
-      step_data = self.m.step(name + " py3",
-                              ['vpython3', self.presubmit_support_path] +
-                              presubmit_args, **kwargs)
-      output2 = step_data.json.output or {}
-
-      # combine outputs
-      for key in output:
-        if key in output2:
-          output[key] += output2[key]
-          del (output2[key])
-      for key in output2:
-        output[key] = output2[key]
       return output
       return output
 
 
   @property
   @property

+ 2 - 23
recipes/recipe_modules/presubmit/examples/full.expected/basic.json

@@ -1,8 +1,9 @@
 [
 [
   {
   {
     "cmd": [
     "cmd": [
-      "vpython",
+      "vpython3",
       "RECIPE_REPO[depot_tools]/presubmit_support.py",
       "RECIPE_REPO[depot_tools]/presubmit_support.py",
+      "--use-python3",
       "--json_output",
       "--json_output",
       "/path/to/tmp/json"
       "/path/to/tmp/json"
     ],
     ],
@@ -20,28 +21,6 @@
       "@@@STEP_LOG_END@json.output@@@"
       "@@@STEP_LOG_END@json.output@@@"
     ]
     ]
   },
   },
-  {
-    "cmd": [
-      "vpython3",
-      "RECIPE_REPO[depot_tools]/presubmit_support.py",
-      "--json_output",
-      "/path/to/tmp/json"
-    ],
-    "env_suffixes": {
-      "DEPOT_TOOLS_UPDATE": [
-        "0"
-      ],
-      "PATH": [
-        "RECIPE_REPO[depot_tools]"
-      ]
-    },
-    "name": "presubmit py3",
-    "~followup_annotations": [
-      "@@@STEP_LOG_END@json.output (invalid)@@@",
-      "@@@STEP_LOG_LINE@json.output (exception)@No JSON object could be decoded@@@",
-      "@@@STEP_LOG_END@json.output (exception)@@@"
-    ]
-  },
   {
   {
     "name": "$result"
     "name": "$result"
   }
   }

+ 0 - 74
recipes/recipe_modules/presubmit/tests/execute.py

@@ -38,7 +38,6 @@ def GenTests(api):
           git_repo='https://chromium.googlesource.com/infra/infra'),
           git_repo='https://chromium.googlesource.com/infra/infra'),
       api.properties(run_all=True),
       api.properties(run_all=True),
       api.step_data('presubmit', api.json.output({})),
       api.step_data('presubmit', api.json.output({})),
-      api.step_data('presubmit py3', api.json.output({})),
       api.post_process(post_process.StatusSuccess),
       api.post_process(post_process.StatusSuccess),
       api.post_process(post_process.DropExpectation),
       api.post_process(post_process.DropExpectation),
   )
   )
@@ -145,57 +144,6 @@ def GenTests(api):
           Expected "," after item in list
           Expected "," after item in list
           ```
           ```
 
 
-          #### To see notifications and warnings, look at the stdout of the presubmit step.
-        ''').strip()) + api.post_process(post_process.DropExpectation))
-  yield (
-      api.test('failure py3', status="FAILURE") +
-      api.runtime(is_experimental=False) +
-      api.buildbucket.try_build(project='infra') + api.step_data(
-          'presubmit py3',
-          api.json.output(
-              {
-                  'errors': [{
-                      'message': 'Missing LGTM',
-                      'long_text': 'Here are some suggested OWNERS: fake@',
-                      'items': [],
-                      'fatal': True
-                  }, {
-                      'message': 'Syntax error in fake.py',
-                      'long_text': 'Expected "," after item in list',
-                      'items': [],
-                      'fatal': True
-                  }],
-                  'notifications': [{
-                      'message': 'If there is a bug associated please add it.',
-                      'long_text': '',
-                      'items': [],
-                      'fatal': False
-                  }],
-                  'warnings': [{
-                      'message': 'Line 100 has more than 80 characters',
-                      'long_text': '',
-                      'items': [],
-                      'fatal': False
-                  }]
-              },
-              retcode=1)) + api.post_process(post_process.StatusFailure) +
-      api.post_process(
-          post_process.ResultReason,
-          textwrap.dedent(u'''
-          #### There are 2 error(s), 1 warning(s), and 1 notifications(s). Here are the errors:
-
-          **ERROR**
-          ```
-          Missing LGTM
-          Here are some suggested OWNERS: fake@
-          ```
-
-          **ERROR**
-          ```
-          Syntax error in fake.py
-          Expected "," after item in list
-          ```
-
           #### To see notifications and warnings, look at the stdout of the presubmit step.
           #### To see notifications and warnings, look at the stdout of the presubmit step.
         ''').strip()) + api.post_process(post_process.DropExpectation))
         ''').strip()) + api.post_process(post_process.DropExpectation))
 
 
@@ -291,25 +239,3 @@ def GenTests(api):
          api.post_process(post_process.StatusException) +
          api.post_process(post_process.StatusException) +
          api.post_process(post_process.ResultReason, bug_msg) +
          api.post_process(post_process.ResultReason, bug_msg) +
          api.post_process(post_process.DropExpectation))
          api.post_process(post_process.DropExpectation))
-
-  yield (api.test('warnings-merged') + api.runtime(is_experimental=False) +
-         api.buildbucket.try_build(project='infra') + api.step_data(
-             'presubmit',
-             api.json.output({
-                 'errors': [],
-                 'notifications': [],
-                 'warnings': [{
-                     'message': 'warning py2'
-                 }]
-             }),
-         ) + api.step_data(
-             'presubmit py3',
-             api.json.output({
-                 'errors': [],
-                 'extra': [],
-                 'warnings': [{
-                     'message': 'warning py3'
-                 }]
-             }),
-         ) + api.post_process(post_process.StatusSuccess) +
-         api.post_process(post_process.DropExpectation))