Exemplo n.º 1
0
 def mk_scheduler(
     self,
     rules=None,
     union_rules=None,
     project_tree=None,
     work_dir=None,
     include_trace_on_error=True,
     should_report_workunits=False,
 ):
     """Creates a SchedulerSession for a Scheduler with the given Rules installed."""
     rules = rules or []
     work_dir = work_dir or self._create_work_dir()
     project_tree = project_tree or self.mk_fs_tree(work_dir=work_dir)
     local_store_dir = os.path.realpath(safe_mkdtemp())
     scheduler = Scheduler(self._native,
                           project_tree,
                           local_store_dir,
                           rules,
                           union_rules,
                           DEFAULT_EXECUTION_OPTIONS,
                           include_trace_on_error=include_trace_on_error)
     return scheduler.new_session(
         zipkin_trace_v2=False,
         build_id="buildid_for_test",
         should_report_workunits=should_report_workunits)
Exemplo n.º 2
0
 def mk_scheduler(
     self,
     rules=None,
     union_rules=None,
     project_tree=None,
     work_dir=None,
     include_trace_on_error=True,
     should_report_workunits=False,
     execution_options=None,
 ):
     """Creates a SchedulerSession for a Scheduler with the given Rules installed."""
     rules = rules or []
     work_dir = work_dir or self._create_work_dir()
     project_tree = project_tree or self.mk_fs_tree(work_dir=work_dir)
     local_store_dir = os.path.realpath(safe_mkdtemp())
     if execution_options is not None:
         eo = asdict(DEFAULT_EXECUTION_OPTIONS)
         eo.update(execution_options)
         execution_options = ExecutionOptions(**eo)
     scheduler = Scheduler(
         native=self._native,
         ignore_patterns=project_tree.ignore_patterns,
         use_gitignore=False,
         build_root=project_tree.build_root,
         local_store_dir=local_store_dir,
         rules=rules,
         union_rules=union_rules,
         execution_options=execution_options or DEFAULT_EXECUTION_OPTIONS,
         include_trace_on_error=include_trace_on_error,
     )
     return scheduler.new_session(
         zipkin_trace_v2=False,
         build_id="buildid_for_test",
         should_report_workunits=should_report_workunits,
     )
Exemplo n.º 3
0
def setup_json_scheduler(build_root, native):
  """Return a build graph and scheduler configured for BLD.json files under the given build root.

  :rtype :class:`pants.engine.scheduler.SchedulerSession`
  """

  symbol_table = ExampleTable()

  # Register "literal" subjects required for these rules.
  address_mapper = AddressMapper(build_patterns=('BLD.json',),
                                 parser=JsonParser(symbol_table))

  work_dir = os_path_join(build_root, '.pants.d')
  project_tree = FileSystemProjectTree(build_root)

  rules = [
      # Codegen
      GenGoal.rule(),
      gen_apache_java_thrift,
      gen_apache_python_thrift,
      gen_scrooge_scala_thrift,
      gen_scrooge_java_thrift,
      SingletonRule(Scrooge, Scrooge(Address.parse('src/scala/scrooge')))
    ] + [
      # scala dependency inference
      reify_scala_sources,
      select_package_address,
      calculate_package_search_path,
      SingletonRule(SourceRoots, SourceRoots(('src/java','src/scala'))),
    ] + [
      # Remote dependency resolution
      ivy_resolve,
      select_rev,
    ] + [
      # Compilers
      isolate_resources,
      write_name_file,
      javac,
      scalac,
    ] + (
      create_graph_rules(address_mapper, symbol_table)
    ) + (
      create_fs_rules()
    )

  scheduler = Scheduler(native,
                        project_tree,
                        work_dir,
                        rules,
                        DEFAULT_EXECUTION_OPTIONS,
                        None,
                        None)
  return scheduler.new_session()
Exemplo n.º 4
0
def setup_json_scheduler(build_root, native):
  """Return a build graph and scheduler configured for BLD.json files under the given build root.

  :rtype :class:`pants.engine.scheduler.SchedulerSession`
  """

  symbol_table = ExampleTable()

  # Register "literal" subjects required for these rules.
  address_mapper = AddressMapper(build_patterns=('BLD.json',),
                                 parser=JsonParser(symbol_table))

  work_dir = os_path_join(build_root, '.pants.d')
  project_tree = FileSystemProjectTree(build_root)

  rules = [
      # Codegen
      GenGoal.rule(),
      gen_apache_java_thrift,
      gen_apache_python_thrift,
      gen_scrooge_scala_thrift,
      gen_scrooge_java_thrift,
      SingletonRule(Scrooge, Scrooge(Address.parse('src/scala/scrooge')))
    ] + [
      # scala dependency inference
      reify_scala_sources,
      select_package_address,
      calculate_package_search_path,
      SingletonRule(SourceRoots, SourceRoots(('src/java','src/scala'))),
    ] + [
      # Remote dependency resolution
      ivy_resolve,
      select_rev,
    ] + [
      # Compilers
      isolate_resources,
      write_name_file,
      javac,
      scalac,
    ] + (
      create_graph_rules(address_mapper, symbol_table)
    ) + (
      create_fs_rules()
    )

  scheduler = Scheduler(native,
                        project_tree,
                        work_dir,
                        rules,
                        DEFAULT_EXECUTION_OPTIONS,
                        None,
                        None)
  return scheduler.new_session()
Exemplo n.º 5
0
 def mk_scheduler(self,
                  rules=None,
                  project_tree=None,
                  work_dir=None,
                  include_trace_on_error=True):
     """Creates a SchedulerSession for a Scheduler with the given Rules installed."""
     rules = rules or []
     work_dir = work_dir or self._create_work_dir()
     project_tree = project_tree or self.mk_fs_tree(work_dir=work_dir)
     scheduler = Scheduler(self._native,
                           project_tree,
                           work_dir,
                           rules,
                           include_trace_on_error=include_trace_on_error)
     return scheduler.new_session()
Exemplo n.º 6
0
 def mk_scheduler(self,
                  rules=None,
                  project_tree=None,
                  work_dir=None,
                  include_trace_on_error=True):
   """Creates a SchedulerSession for a Scheduler with the given Rules installed."""
   rules = rules or []
   work_dir = work_dir or self._create_work_dir()
   project_tree = project_tree or self.mk_fs_tree(work_dir=work_dir)
   scheduler = Scheduler(self._native,
                         project_tree,
                         work_dir,
                         rules,
                         DEFAULT_EXECUTION_OPTIONS,
                         include_trace_on_error=include_trace_on_error)
   return scheduler.new_session()
 def mk_scheduler(self,
                  rules=None,
                  project_tree=None,
                  work_dir=None,
                  include_trace_on_error=True):
     """Creates a SchedulerSession for a Scheduler with the given Rules installed."""
     rules = rules or []
     work_dir = work_dir or self._create_work_dir()
     project_tree = project_tree or self.mk_fs_tree(work_dir=work_dir)
     local_store_dir = os.path.realpath(safe_mkdtemp())
     scheduler = Scheduler(self._native,
                           project_tree,
                           work_dir,
                           local_store_dir,
                           rules,
                           DEFAULT_EXECUTION_OPTIONS,
                           include_trace_on_error=include_trace_on_error)
     return scheduler.new_session()
Exemplo n.º 8
0
 def mk_scheduler(self,
                  rules=None,
                  union_rules=None,
                  project_tree=None,
                  work_dir=None,
                  include_trace_on_error=True):
   """Creates a SchedulerSession for a Scheduler with the given Rules installed."""
   rules = rules or []
   work_dir = work_dir or self._create_work_dir()
   project_tree = project_tree or self.mk_fs_tree(work_dir=work_dir)
   local_store_dir = os.path.realpath(safe_mkdtemp())
   scheduler = Scheduler(self._native,
                         project_tree,
                         work_dir,
                         local_store_dir,
                         rules,
                         union_rules,
                         DEFAULT_EXECUTION_OPTIONS,
                         include_trace_on_error=include_trace_on_error)
   return scheduler.new_session(zipkin_trace_v2=False)