[engine] Package cleanup: round one

Review Request #3622 — Created March 28, 2016 and submitted

3106, 3107
kwlzn, patricklaw, peiyu
  • Extract example parsers into example, leaving only the interfaces in parser
  • Remove the nodes dep from selectors to make the selectors package very, very light
  • With the selectors<->nodes issue resolved, remove register modules in favor of defining tasks at finer granularity whereever their implementations live
  • Move sources into example, since it is only used by the example planners


  1. lgtm. I'll reassert my position that it still feels odd/cluttered to colocate configuration with code (re: the re-embedding of the register.py configuration bits) - I'd much rather see the implementation clean/free of configuration and lean toward a model where those are imported in configuration-specific modules, but don't feel strongly enough about it to block.

    1. colocate configuration with code

      I don't view Task definitions as configuration... they're still code. The configuration would be whatever is installing the tasks, and that is currently just the legacy, examples, and tasks packages.

      Moving the task definitions into a register module caused a false dependency between fs and graph... this was evidenced by scheduler_test_base.py for example, which didn't need the graph tasks, but was forced to import them as well in order to get at the fs tasks.

    2. er, s/tasks package/tests package/ above.

    3. k, seems reasonable to me.

Review request changed

Status: Closed (submitted)

Change Summary:

Merged as 8dee58c3b588f04853c04945d6add5f0161363d5