Steps are "prepared" twice:
- during the DW init
- when reaching the step
The goal of this preparation is to disable the step when there is nothing to do, but in some cases you might have nothing to do at init but suddenly do after the execution of some previous step.
A good example is the orphaned dependencies step which often have something to do only after the execution of the flavor step, but it was not noticed before because of
XWIKI-20111 (which was causing XWiki to identify as orphaned an extension that was not).
The point of the "during the DW init" is to know if there is something to do in any of the step (and if not don't show the DW at all). But instead of preparing all the steps we should prepare them one by one and stop as soon as a step reports that there is indeed something to do.