3.6 promise types and attributes
Merge remote-tracking branch 'upstream/master'

* upstream/master:
  3.6 promise types and attributes