Break out core runtime logic into a PantsRunner
Review Request #3054 - Created Oct. 29, 2015 and submitted
|benjyw, jsirois, nhoward_tw, stuhood, zundel|
This change sets us up for different methods/modes of running pants. Expect two subsequent PantsRunner variants to follow:
DaemonPantsRunner(a subclass of LocalPantsRunner that runs in the daemon/nailgunned context) and
ThinPantsRunner(a nailgun-client PantsRunner).
- Introduce PantsRunner ABC.
- Break out current pants_exe.py logic into LocalPantsRunner + Exiter.
- Plumb Exiter usage all the way through to GoalRunner.
1) CI green @ https://travis-ci.org/pantsbuild/pants/builds/88187104
PANTS_DEV=1 ./pants clean-all binary examples/src/java::-> works
PANTS_PROFILE=/tmp/xyz.out PANTS_DEV=1 ./pants clean-all binary examples/src/java::-> works and produces expected profiling output
I'm still pretty sure that Exiter should just be merged into PantsRunner (why have two lifecycles?) but I'm probably not understanding what the other implementations of PantsRunner will look like, so that's fix that when we come to it.