Allow updating dict option values instead of replacing them.

Review Request #3896 - Created May 16, 2016 and submitted

Benjy Weinberger
stuhood, zundel
Similarly to list options, this is done by preceding the dict
literal with a '+'.

This allows, e.g., adding new Go matcher patterns in pants.ini
without having to copy the default ones.

Note that this has the side effect of making the implicit default
value the empty dict, instead of None, which is something we've
wanted for a while. So now code using dict-valued options won't
need to check for None.

This implementation is simpler than that of list options, because
lists have the added complication of interpreting --foo=bar as
--foo=+[bar], which is irrelevant here.

CI passes:

Stu Hood
Eric Ayers
Benjy Weinberger
Review request changed

Status: Closed (submitted)

Change Summary:


Benjy Weinberger

Submitted. Thanks for the prompt reviews!