Fixed
-
BREAKING CHANGE Massively improve stack order evaluation performance.
This affects and improves commands that use the stack order, i.e.
run
,run script
,list --run-order
.
As a consequence, the evaluation order of unrelated stacks may change.-
Example 1:
Nested stacksa
must be executed after their parent stacks, but/stack1
and/stack2
are independent.Old run order:
/stack1 /stack1/a /stack2 /stack2/a
New run order:
/stack1 /stack2 /stack1/a /stack2/a
-
Example 2:
stack2
must be executed afterstack1
, butstack1
andstack3
are independent in the follwing configuration:/stack1 /stack2 (after=[stack1]) /stack3
Old run order:
/stack1 /stack2 /stack3
New run order:
/stack1 /stack3 /stack2
The new rule recursively aligns stacks that are independent into groups.
- The first group contains all initially independent stacks.
- The second group contains all stacks that just depended on stacks in the first group.
- The third group contains all stacks that just depended on stacks in both previous groups.
- The fourth group and following groups continue in the same way.
Stacks in each group are ordered lexicographically and returned as the order of execution when running sequentially.
The run order when using the
--parallel
flag is not affected by this change. -