Commit 4f0e09b
Changelog for v0.12.0 (#450)
```markdown
## v0.12.0 - 2026-07-28
### Improvements
- [runtime] Evaluate `check` blocks declared in child modules, once per module instance [#437](#437)
- [runtime] Merge `override.tf` and `*_override.tf` files into the configuration they override [#445](#445)
- [runtime] Load root variable values from `terraform.tfvars`, `terraform.tfvars.json`, `*.auto.tfvars` and `*.auto.tfvars.json` [#446](#446)
- [runtime] Support `removed` blocks with `lifecycle { destroy = true }` in root and child modules, running the block's destroy-time provisioners when the resource is deleted [#458](#458)
- [runtime] Render module addresses in diagnostics in Terraform syntax [#464](#464)
### Bug Fixes
- [runtime] Convert map values to the attribute's element type, so a `map(list(...))` holding lists of different lengths no longer panics [#449](#449)
- [runtime] Accept the bare `list` and `map` variable type constraints [#440](#440)
- [runtime] Accept a tuple in an `import` block's `for_each` [#443](#443)
- [runtime] Accept the pre-0.12 quoted reference form in `depends_on` and `ignore_changes`, with a deprecation warning [#447](#447)
- [runtime] Compose a `moved` module-call rename with a `moved` block that renames a resource inside that module or moves one out of it [#438](#438)
- [runtime] Expose `backend`, `config`, `workspace` and `defaults` on `terraform_remote_state` [#442](#442)
- [runtime] Inherit default provider configurations by source address, not local name [#444](#444)
- [runtime] Name module components after their declared source, not the resolved directory [#451](#451)
- [runtime] Root variable values: rank an explicitly supplied value above `TF_VAR_<name>`, treat an empty `TF_VAR_<name>` as set, reject a value that does not fit the declared type, and stop applying `TF_VAR_<name>` to module variables [#446](#446)
- [runtime] Defer a data source read inside a module whose call `depends_on` a pending resource [#454](#454)
- [runtime] Defer a data source read whose `depends_on` names a module call with pending changes [#455](#455)
- [runtime] Defer a data source read with custom conditions when an indirect dependency has pending changes [#455](#455)
- [runtime] Defer a data source read during preview when its `depends_on` target has pending changes, instead of reading state the dependency has not produced yet [#452](#452)
- [runtime] Reject an unknown `provisioner` type at preview instead of at apply [#459](#459)
- [runtime] Run destroy-time provisioners for instances orphaned by `count = 0`, a shrunk `count`, or a dropped `for_each` key [#462](#462)
```
---
Merging this PR to `master` will trigger
`.github/workflows/release.yml`, which:
- creates the `v0.12.0` git tag
- publishes the GitHub release with notes from `.changes/v0.12.0.md`
- builds and uploads binaries (`pulumi-language-hcl`,
`pulumi-converter-hcl`, `pulumi-resource-hcl`) for `{darwin, linux,
windows} × {amd64, arm64}`
Automated release PR generated by
`.github/workflows/maintain-release-pr.yml`.
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>1 parent cd1a513 commit 4f0e09b
22 files changed
Lines changed: 92 additions & 124 deletions
File tree
- .changes
- unreleased
This file was deleted.
This file was deleted.
This file was deleted.
This file was deleted.
This file was deleted.
This file was deleted.
This file was deleted.
This file was deleted.
This file was deleted.
This file was deleted.
0 commit comments