Happy to see this. I'll give this a good review in the afternoon/evening if it can wait until then.
Review Request #856 — Created Aug. 8, 2014 and submitted
- Gets rid of clever but complicated deduping logic. Replaces it with dumb but simple deduping logic via a factory. - Gets rid of a few methods that were either entirely unused or only used once (in which case replaced them with alternative code). - Phases now store task names and types directly. The TaskRegistrar instance isn't retained after registration. - A Phase now directly knows its depenendcies on other phases, instead of delegating to the union of dependencies of its TaskRegistrars. This makes a lot of code much simpler. - Phase no longers uses the old 'goal' terminology. - Move logic such as option parser setup from TaskRegistrar into Phase. This simplifies Phase itself and a lot of code that uses it, and paves the way for renaming Phase to Goal.
CI passed: https://travis-ci.org/pantsbuild/pants/builds/32051833. Unit and integration tests pass locally too. Ran some manual builds, including "./pants goal goals --goals-graph".