From dc9777ea08a49af2654f0fa8216a217ada9a3d04 Mon Sep 17 00:00:00 2001 From: Yi Cheng Date: Sun, 16 Dec 2018 18:47:10 -0800 Subject: [PATCH] force skip/run by tag --- .../pants/backend/jvm/tasks/rewrite_base.py | 10 -------- src/python/pants/engine/round_engine.py | 2 -- .../pants/task/target_restriction_mixins.py | 1 - src/python/pants/task/task.py | 24 +++++++++++++------ 4 files changed, 17 insertions(+), 20 deletions(-) diff --git a/src/python/pants/backend/jvm/tasks/rewrite_base.py b/src/python/pants/backend/jvm/tasks/rewrite_base.py index 399cf96b45a4..7ae52a42475a 100644 --- a/src/python/pants/backend/jvm/tasks/rewrite_base.py +++ b/src/python/pants/backend/jvm/tasks/rewrite_base.py @@ -59,16 +59,6 @@ def execute(self): """Runs the tool on all source files that are located.""" relevant_targets = self._get_non_synthetic_targets(self.get_targets()) - # force_run_tag = 'no-{}.skip'.format(self.options_scope) - # force_run_targets = set(t for t in relevant_targets if force_run_tag in t.tags) - # force_skip_tag = '{}.skip'.format(self.options_scope) - # force_skip_targets = set(t for t in relevant_targets if force_skip_tag in t.tags) - # - # final_targets = set(relevant_targets).union(force_run_targets).difference(force_skip_targets) - # - # self.context.log.debug("Force skipping targets by tag: {}\n{}".format(force_skip_tag, force_skip_targets)) - # self.context.log.debug("Force running targets by tag: {}\n{}".format(force_run_tag, force_run_targets)) - if self.sideeffecting: # Always execute sideeffecting tasks without invalidation. self._execute_for(relevant_targets) diff --git a/src/python/pants/engine/round_engine.py b/src/python/pants/engine/round_engine.py index 8c1fb66f4ce7..dc340432a4da 100644 --- a/src/python/pants/engine/round_engine.py +++ b/src/python/pants/engine/round_engine.py @@ -43,8 +43,6 @@ def attempt(self, explain): with self._context.new_workunit(name=name, labels=[WorkUnitLabel.TASK], log_config=log_config): if explain: self._context.log.debug('Skipping execution of {} in explain mode'.format(name)) - # elif task.skip_execution: - # self._context.log.info('Skipping {}'.format(name)) else: task.execute() diff --git a/src/python/pants/task/target_restriction_mixins.py b/src/python/pants/task/target_restriction_mixins.py index bd8a4e85e96c..774c84091e00 100644 --- a/src/python/pants/task/target_restriction_mixins.py +++ b/src/python/pants/task/target_restriction_mixins.py @@ -60,7 +60,6 @@ def supports_skipping_target_by_tag(self): return True - class SkipOptionRegistrar(object): """Registrar of --skip.""" diff --git a/src/python/pants/task/task.py b/src/python/pants/task/task.py index 7f4d755eaecf..0a56a20002b0 100644 --- a/src/python/pants/task/task.py +++ b/src/python/pants/task/task.py @@ -210,6 +210,15 @@ def skip_execution(self): """ return False + @property + def supports_skipping_target_by_tag(self): + """ + Whether this task supports forced skip/non-skip on targets based on tags. + + :API: public + """ + return False + @property def act_transitively(self): """Whether this task should act on the transitive closure of the target roots. @@ -222,10 +231,6 @@ def act_transitively(self): """ return True - @property - def supports_skipping_target_by_tag(self): - return False - def get_targets(self, predicate=None): """Returns the candidate targets this task should act on. @@ -249,15 +254,20 @@ def get_targets(self, predicate=None): force_run_tag = 'no-{}.skip'.format(self.options_scope) force_run_targets = set(t for t in relevant_targets if force_run_tag in t.tags) + if not force_run_targets and self.skip_execution: + self.context.log.info('Skipping by returning empty targets ' + 'because task level is skipped and there is no forced run targets') + return [] + force_skip_tag = '{}.skip'.format(self.options_scope) force_skip_targets = set(t for t in relevant_targets if force_skip_tag in t.tags) - if force_run_targets: - self.context.log.debug("Force skipping targets by tag: {}\n{}".format(force_skip_tag, force_skip_targets)) if force_skip_targets: + self.context.log.debug("Force skipping targets by tag: {}\n{}".format(force_skip_tag, force_skip_targets)) + if force_run_targets: self.context.log.debug("Force running targets by tag: {}\n{}".format(force_run_tag, force_run_targets)) - final_targets = set(relevant_targets).union(force_run_targets).difference(force_skip_targets) + final_targets = list(set(relevant_targets).union(force_run_targets).difference(force_skip_targets)) return final_targets