Kill 'jvm_build_tools_classpath_callbacks' deps.

Review Request #2831 — Created Sept. 16, 2015 and submitted

jsirois
pants
jsirois/ivy_quest/jvm_build_tools_classpath_callbacks/kill_non_mixin_deps
1841, 2205
ac516f0...
pants-reviews
benjyw, gmalmquist, mateor, nhoward_tw, zundel
Only `JvmToolMixin` depends on this product, so isolate the product
dependency to it.  This necessitated some plumbing since `JvmToolMixin`
is not itself a task with a `prepare method`.  This also required
relaxing `RoundEngine` validation of product dep cycles.  It now trusts
you know what you're doing as the author of a task that produces
products it also depends on.

 contrib/spindle/src/python/pants/contrib/spindle/tasks/spindle_gen.py |  5 -----
 src/python/pants/backend/jvm/subsystems/jvm_tool_mixin.py             |  5 +++++
 src/python/pants/backend/jvm/tasks/BUILD                              |  1 +
 src/python/pants/backend/jvm/tasks/bootstrap_jvm_tools.py             |  5 +++++
 src/python/pants/backend/jvm/tasks/ivy_imports.py                     |  5 -----
 src/python/pants/backend/jvm/tasks/jar_create.py                      |  4 ++--
 src/python/pants/backend/jvm/tasks/jar_task.py                        | 15 ++++++++++++++-
 src/python/pants/backend/jvm/tasks/jvm_binary_task.py                 |  6 +++---
 src/python/pants/backend/jvm/tasks/jvm_compile/BUILD                  |  1 +
 src/python/pants/backend/jvm/tasks/jvm_compile/jvm_compile.py         |  1 +
 src/python/pants/backend/jvm/tasks/jvm_compile/zinc/zinc_compile.py   |  5 +++++
 src/python/pants/backend/jvm/tasks/jvm_tool_task_mixin.py             |  8 +++++++-
 src/python/pants/backend/jvm/tasks/scaladoc_gen.py                    |  5 +++++
 src/python/pants/engine/round_engine.py                               |  6 +++++-
 tests/python/pants_test/engine/test_round_engine.py                   |  7 ++++---
 tests/python/pants_test/tasks/test_jar_task.py                        | 48 +++++++++++++++++++++++++++---------------------
 16 files changed, 85 insertions(+), 42 deletions(-)
CI went green here:
  https://travis-ci.org/pantsbuild/pants/builds/80546267
BE
  1. Is the "plumbing" you're referring to just that tasks that mix in JvmToolMixin must call its prepare? That doesn't seem onerous. prepare() implementations should call their superclass prepare() as a matter of good hygiene anyway.

    1. Yup - that was all.
  2. 
      
JS
JS
  1. Thanks Benjy - submitted @ https://github.com/pantsbuild/pants/commit/cce5f991f8cff974172a524cdf5d30c4ae6abeaa
  2. 
      
JS
Review request changed

Status: Closed (submitted)

Loading...