Fix include dependees options

Review Request #1760 — Created Feb. 12, 2015 and submitted

davidt, jsirois
Fix include dependees options

Patched internally and confirmed the fix.

CI here:

  1. I can likely add the test (and comment) in a follow up. I might also send a PSA to pants-devel as I think this will likely become a pattern going forward: given that we co-mingle command line flags and config and have the notion of scopes and inheritance, behaviors need to be explicitly expressible by the user, not just via omission.

    1. meant to be clearer: if you want to land this as-is, I'll follow up with a test and comments while you're out.

    2. It would be nice to be able to centralize this notion instead of spreading it to the leaves / having to remember a PSA you may or may not have been around to read.
      For example, if `--no-[option]` for non bools was understood to mean delete the option, then you could write a `PANTS_NO_OPTION=1` env var or `no_option: True` config value or `--no-option` on the CLI to nullify an option that defualts to being passed.
    3. Hm that could solve the command-line vs config case, but what scope inheritance?

      It seems like if you have behaviors A, B and C, you really want to be able to explicitly specify any of the three: if C is only expressed via omission of a preference, it gets tricky when a parent scope (or config, or ENV) specifies something other than C.

    4. We could introduce a special keyword like'default' for option values with choices which means that you want to explicitly choose the default choice. Then this setting could override another scope.

  1. A prod to the reviewers on this. I think we should ship it--we're still patched like this internally, and I don't have the time right now to write extra tests.

  1. Ship It!
Review request changed

Status: Closed (submitted)

Change Summary:

Thanks Stu, submitted @ cde65b451da553409e3452df0c45e263daaf5907