Avi Bryant wrote:
Let's say I have two packages, A and B. I have a new configuration in which these two packages have exchanged methods: one method from A has moved to B, and one method from B has moved to A. I try to load that configuration. Either load order is equivalent, but let's say that we've specified that the order is A, B.
Ah, yes. *That* problem ;-) I've seen it often enough, usually in the form of classes being moved between packages. And it's a pain to deal with, I agree.
Both of these cases are solved by simply asking MC to load or merge the two packages together, rather than asking it to load them sequentially. The load strategy it uses is very simple: a superclass always needs to be loaded before its subclasses, and a class always needs to be loaded before its methods. Additions are always done before removals, and removals are done with the inverse rules (first remove methods, then classes, then superclasses).
Ah, interesting. I had no idea. But yes, that makes a lot of sense.
What you don't get to do in that case is specify anything about the load order yourself. I think the cases where specifying this is necessary are going to be very rare, but certainly they will happen.
I agree. I think the ratio for configs per package versions is somewhere between 1:10 and 1:20 in Tweak.
Cheers, - Andreas