Fixed
-
(BREAKING CHANGE) Improve stack order evaluation performance.
This affects 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
/stack1 /stack1/a /stack2 /stack2/a
Sub-stacks
a
must be executed after their parent stacks, but/stack1
and/stack2
are unrelated.Old run order:
/stack1 /stack1/a /stack2 /stack2/a
New run order:
/stack1 /stack2 /stack1/a /stack2/a
-
Example 2
/stack1 /stack2 (after=[stack1]) /stack3
stack2
must be executed afterstack1
, butstack3
is unrelated.Old run order:
/stack1 /stack2 /stack3
New run order:
/stack1 /stack3 /stack2
The new rule first runs stacks that have no dependencies in
group 1
,
then those ingroup 2
that depend on stacks ingroup 1
,
then those ingroup 3
that depend on stacks ingroup 1
andgroup 2
, and so on.
Stacks in each group are ordered lexicographically.The run order when using the
--parallel
flag is not affected by this. -