Skip to content

Commit 738ab00

Browse files
authored
[chore] Update CHANGELOG.md (#2167)
Reword the breaking change.
2 parents 005217b + 133d871 commit 738ab00

File tree

1 file changed

+28
-20
lines changed

1 file changed

+28
-20
lines changed

CHANGELOG.md

Lines changed: 28 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -24,53 +24,61 @@ Given a version number `MAJOR.MINOR.PATCH`, we increment the:
2424

2525
### Fixed
2626

27-
- (**BREAKING CHANGE**) Improve stack order evaluation performance.
28-
This affects commands that use the stack order, i.e. `run`, `run script`, `list --run-order`.
29-
As a consequence, the evaluation order of _unrelated_ stacks may change.
27+
- **BREAKING CHANGE** Massively improve stack order evaluation performance.
3028

31-
Example 1:
32-
/stack1
33-
/stack1/a
34-
/stack2
35-
/stack2/a
29+
This affects and improves commands that use the stack order, i.e. `run`, `run script`, `list --run-order`.
30+
As a consequence, the evaluation order of _unrelated_ stacks may change.
3631

37-
Sub-stacks `a` must be executed after their parent stacks, but `/stack1` and `/stack2` are unrelated.
32+
- Example 1:
33+
Nested stacks `a` must be executed after their parent stacks, but `/stack1` and `/stack2` are independent.
3834

3935
Old run order:
36+
```
4037
/stack1
4138
/stack1/a
4239
/stack2
4340
/stack2/a
41+
```
4442
4543
New run order:
44+
```
4645
/stack1
4746
/stack2
4847
/stack1/a
4948
/stack2/a
49+
```
5050
51-
Example 2:
52-
/stack1
53-
/stack2 (after=[stack1])
54-
/stack3
55-
56-
`stack2` must be executed after `stack1`, but `stack3` is unrelated.
51+
- Example 2:
52+
`stack2` must be executed after `stack1`, but `stack1` and `stack3` are independent in the follwing configuration:
53+
```
54+
/stack1
55+
/stack2 (after=[stack1])
56+
/stack3
57+
```
5758
5859
Old run order:
60+
```
5961
/stack1
6062
/stack2
6163
/stack3
64+
```
6265
6366
New run order:
67+
```
6468
/stack1
6569
/stack3
6670
/stack2
71+
```
6772
68-
The new rule first runs stacks that have no dependencies in `group 1`,
69-
then those in `group 2` that depend on stacks in `group 1`,
70-
then those in `group 3` that depend on stacks in `group 1` and `group 2`, and so on.
71-
Stacks in each group are ordered lexicographically.
73+
The new rule recursively aligns stacks that are independent into groups.
74+
- The first group contains all initially independent stacks.
75+
- The second group contains all stacks that just depended on stacks in the first group.
76+
- The third group contains all stacks that just depended on stacks in both previous groups.
77+
- The fourth group and following groups continue in the same way.
78+
79+
Stacks in each group are ordered lexicographically and returned as the order of execution when running sequentially.
7280
73-
The run order when using the `--parallel` flag is not affected by this.
81+
The run order when using the `--parallel` flag is not affected by this change.
7482
7583
## v0.13.3
7684

0 commit comments

Comments
 (0)