First - thanks for submitting this, it's rare that contributors include changelog/docs as well as code!
Second - I've been punting on this sort of new feature until version 2.x to avoid more bloat / confusion / potential bugs in the 1.x line. However, this implementation is sufficiently compact & additive that I'm leaving it open and will likely merge after a 2nd look later. Thanks again!
I'm the one to thank you for an awesome tool and really looking forward to 2.0.
It's a great idea to separate things up and make fabric more of a library to work/depend on.
I've been using fabric for lots of years now. All my pull requests are fragments from a wrapper that i'm calling refabric, which acts a little bit like chef and ansible in terms of configuration and blueprints/recipes.
Btw, I rebased master and resolved changelog conflict.
Add support for dict style roledefs