To be backported, should we need an 'a' release.
progress_report
It supports any level of sub-steps, timing, messaging, and uses WindowManage.progress API to report progress in UI, in addition to console printing.