A uniform way of expressing Task and Subsystem dependencies.

Review Request #2653 — Created Aug. 18, 2015 and submitted

benjyw
pants
1957
aad3d8d...
pants-reviews
gmalmquist, jsirois
Introduces the concept of a subsystem client, which Task
and Subsystem mix in (this is not in Optionable because
the GlobalOptionsRegistrar must not depend on any subsystems).

All subsystem dependencies are expressed by the client by
implementing subsystem_dependencies(). That dependency
consists of a subsystem type and a scope. This generalizes
the previous concept of global and task-specific subsystem
dependencies.

Contains a temporary hack so that the old declarations still
work.  Those will be mopped up in a followup change, just
to keep this one from spiraling out too much.

Issue: https://github.com/pantsbuild/pants/issues/1957

CI passes: https://travis-ci.org/pantsbuild/pants/builds/76136929.

GM
  1. Thanks, this makes including global options in the fingerprint much nicer.

  2. nit: n/l after docstring?

  3. 
      
JS
  1. Thanks for taking this up!
  2. src/python/pants/util/contextutil.py (Diff revision 1)
     
     
    I've taken to using 'string' for I think the reason you did this here - IJ introspection?
    1. That was exactly the reason...

  3. 
      
BE
  1. Thanks for the reviews John and Garrett!

  2. 
      
BE
Review request changed

Status: Closed (submitted)

Change Summary:

Submitted as c1a966a623f33d838d41351c0163d9ac09ad5b89.

Loading...