Skip to content

Commit c6638e2

Browse files
authored
docs: Cleaning up changelog for v1.0.3 (#5977)
1 parent e17dccf commit c6638e2

3 files changed

Lines changed: 45 additions & 0 deletions

File tree

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
---
2+
version: "v1.0.3"
3+
category: "bug-fixes"
4+
---
5+
6+
#### Fixed crash when a `root.hcl` declares no `remote_state` block
7+
8+
A `root.hcl` that only declared `locals` (or otherwise omitted a `remote_state` block) could trigger a nil pointer dereference inside Terragrunt's remote-state initialization. Downstream tools that embed the Terragrunt config parser, such as [`terragrunt-ls`](https://github.com/gruntwork-io/terragrunt-ls), crashed on every such file.
9+
10+
A missing `remote_state` block now initializes an empty remote-state value instead of panicking, so parsing proceeds normally when no backend is configured.
11+
12+
Reported in [terragrunt-ls#134](https://github.com/gruntwork-io/terragrunt-ls/issues/134).
13+
14+
Thanks to [@SAY-5](https://github.com/SAY-5) for contributing this fix!
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
---
2+
version: "v1.0.3"
3+
category: "experiments-updated"
4+
---
5+
6+
#### `stack-dependencies`: Multi-level nested `stack.<name>.<nested_stack>.path` references
7+
8+
The [`stack-dependencies`](/reference/experiments/active#stack-dependencies) experiment already supported `stack.<name>.path` (a whole stack) and `stack.<name>.<unit_name>.path` (a unit inside a stack). It now also resolves references where the second segment is itself a nested stack, so an `autoinclude` block in a parent stack can target a stack that lives inside another stack:
9+
10+
```hcl
11+
# live/terragrunt.stack.hcl
12+
stack "infra" {
13+
source = "../catalog/stacks/infra"
14+
path = "infra"
15+
}
16+
17+
unit "app" {
18+
source = "../catalog/units/app"
19+
path = "app"
20+
21+
autoinclude {
22+
dependency "deep" {
23+
config_path = stack.infra.deep.path
24+
}
25+
}
26+
}
27+
```
28+
29+
Here `stack.infra.deep.path` resolves to the generated directory of a `stack "deep"` block declared inside `catalog/stacks/infra/terragrunt.stack.hcl`. This makes deeper stack hierarchies addressable from a single dependency expression without flattening the layout.

docs/src/data/changelog/v1.0.3/stack-generate-target-race.mdx

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,3 +6,5 @@ category: "bug-fixes"
66
#### Fixed a race condition in `terragrunt stack generate`
77

88
Fixed a race condition in `terragrunt stack generate` that could produce non-deterministic file errors on nested stack hierarchies. The same stack file could reach the worker pool twice through different path forms and cause the duplicate writes to conflict with each other. Paths are now normalized before dispatch so each stack file is generated exactly once per invocation.
9+
10+
When a stack file is legitimately claimed by more than one parent during generation, Terragrunt now logs a warning that names the contending parents and records the latest claimant, so the configuration can be corrected before it causes silent overwrites.

0 commit comments

Comments
 (0)