I guess it's not really breadth first. It's just parents before siblings.
I think this should be done for all the phases unless there's some compelling reason not to.
I don't think having different phases run in different order is a good idea, as it can lead to unexpected code execution orders all over again.
I agree.
Code-wise this looks good if all phases act the same way.
Without this patch Phase1, Phase2, and Phase6 are done in statictree order, and Phase3, Phase4, and Phase5 are done Parents before children.
I don't see Phase1 being used anywhere. Phase2 is handled with the patch. I think Phase6 should be updated, and I can send a patch.
Ron?
Thanks, Myles