remove the ivy_home property from context.
Review Request #1592 — Created Jan. 10, 2015 and submitted
It's now a product, populated by IvyResolve, for downstream tasks that
happen to need to know about the ivy cache dir for various reasons.
This has several benefits:
- Context is a pants-wide concept, and ivy is a jvm-backend-specific concept.
There's no reason for it to be privileged.
- We were previously inferring the ivy cache dir in two difference places -
context and bootstrapper. This caused real bugs when the two differed
(which is how I came to make this change in the first place).
- We were using a mix of global ivy cache dir references and class members.
Now all references are in Ivy objects or Bootstrapper objects, so it's
easier to reason about where they came from.
- This allows IvyResolve to be the sole decider of "where is the ivy cache", with
downstream tasks letting it tell them where it cached jar, via products.
- We had inconsistent terminology: "ivy_home" vs "ivy_cache_dir". Now everything
uses the latter term.
- I have never regretted putting something in products. It should be products all
the way down...
CI passes: https://travis-ci.org/pantsbuild/pants/builds/46529024
Add comment per code rview.
Revision 2 (+36 -25)