v1.0.1
π‘ Tips Added
Section titled π‘ Tips AddedWindows symlink warning for provider cache users
Section titled Windows symlink warning for provider cache usersTerragrunt now warns Windows users when symlink creation fails and provider caching is enabled. OpenTofu and Terraform may silently fall back to copying provider plugins instead of symlinking, which can increase disk usage and slow down operations. For OpenTofu >= 1.12.0, the tip includes guidance on using TF_LOG=warn to detect the fallback.
Thank you to the OpenTofu team for introducing this warning to ensure that Windows users are aware of the fallback behavior.
π Bug Fixes
Section titled π Bug FixesChained dependency with exposed include conversion fixed
Section titled Chained dependency with exposed include conversion fixedChaining dependencies with exposed includes no longer produces a spurious βCould not convert include to the execution ctx to evaluate additional localsβ error during partial parsing.
Destroy queue now displays units in correct order
Section titled Destroy queue now displays units in correct orderPreviously, the run queue display showed units in apply order even for destroy commands. The queue now correctly shows dependents before their dependencies when running destroy, matching the actual execution order.
get_original_terragrunt_dir() now resolves correctly during dependency parsing
Section titled get_original_terragrunt_dir() now resolves correctly during dependency parsingA regression introduced in v1.0.0-rc3 caused get_original_terragrunt_dir() to return the dependent directory instead of the dependencyβs directory when parsing dependency configurations from a unit.
This broke configurations where a dependencyβs read_terragrunt_config() chain relied on get_original_terragrunt_dir() to locate sibling files. The fix introduces a dedicated WithDependencyConfigPath method that correctly resets the original config path when parsing a dependency as an independent unit.
hcl validate no longer fails on dependency.outputs references
Section titled hcl validate no longer fails on dependency.outputs referencesterragrunt hcl validate previously failed with βUnsupported attributeβ when a configuration referenced dependency.<name>.outputs.<key> without mock_outputs.
During validation, output resolution is skipped, but the outputs attribute was never added to the dependency evaluation context, causing any output reference to error. The fix provides a dynamic placeholder for dependency outputs (and inputs) during validation so that attribute access evaluates to unknown rather than failing. Additionally, the dependency resolution pipeline is now more resilient during validation. Dependencies with unresolvable config_path values or nonexistent targets no longer cause the entire dependency namespace to disappear from the evaluation context.
Provider cache fixed on Windows for remote URLs
Section titled Provider cache fixed on Windows for remote URLsThe provider cache failed on Windows with CreateFile https://...: The filename, directory name, or volume label syntax is incorrect because remote download URLs were passed to os.Stat, and the colon in https: is invalid Windows path syntax. The fix skips the filesystem existence check when the download URL is a remote URL (://), going directly to the download path.
read_terragrunt_config() behavior in implicit stacks fixed
Section titled read_terragrunt_config() behavior in implicit stacks fixedA regression introduced in v0.99.4 caused read_terragrunt_config() to fail to parse dependency blocks in external configurations during stack execution. This is fixed by resetting parsing context fields that prevented proper evaluation of dependencies in configurations read by read_terragrunt_config().
Additional transient network errors now retried automatically
Section titled Additional transient network errors now retried automaticallyAdded retry patterns for provider resolution and registry connection failures commonly seen in CI environments, including TLS handshake timeouts, TCP connection resets, context deadline exceeded errors, and failed discovery document requests. These cover both Terraform and OpenTofu provider workflows.
Dependent discovery fixed in worktrees
Section titled Dependent discovery fixed in worktreesDependents are now correctly discovered when units are discovered in worktrees. Previously, dependent discovery could fail to find related units when operating within a git worktree.
Filter exclusions now respected in worktree sub-discoveries
Section titled Filter exclusions now respected in worktree sub-discoveriesNegated filters (e.g., !./catalog/** from .terragrunt-filters or --filter) are now propagated to worktree sub-discoveries used by git-based filtering (--filter-affected, --filter '[ref...ref]').
Previously, excluded source catalog units in worktrees were still discovered and parsed, causing errors when they referenced values.* or dependency.* variables without the stack generation context.
π§ͺ Experiments Added
Section titled π§ͺ Experiments Addeddag-queue-display β DAG tree visualization for the run queue
Section titled dag-queue-display β DAG tree visualization for the run queueA new dag-queue-display experiment renders the run queue as a dependency tree instead of a flat list, making it easier to understand execution order and dependency relationships at a glance.
$ terragrunt run --all --experiment dag-queue-display -- plan19:06:59.108 INFO The following units will be run, starting with dependencies and then their dependents:.βββ monitoringβ°ββ vpc β°ββ database β°ββ backend-app β°ββ frontend-appTo learn more, see the experiment documentation.
slow-task-reporting β Progress reporting for long-running operations
Section titled slow-task-reporting β Progress reporting for long-running operationsA new slow-task-reporting experiment displays animated progress spinners for operations that take longer than 1 second, such as source downloads, Git worktree creation, and catalog repository cloning. In non-interactive environments (CI/CD, piped output), spinners are replaced with periodic INFO log lines every 30 seconds to prevent CI systems from killing jobs due to output inactivity.
$ terragrunt run --all --experiment slow-task-reporting -- planINFO Downloading source from git::https://github.com/example/module.git...INFO Downloaded source from git::https://github.com/example/module.git (3.2s)To learn more, see the experiment documentation.
stack-dependencies β Dependency wiring between units in stacks
Section titled stack-dependencies β Dependency wiring between units in stacksA new stack-dependencies experiment enables the autoinclude block in terragrunt.stack.hcl files, allowing units and stacks to define dependency relationships and arbitrary configuration overrides during stack generation. This implements RFC #5663.
unit "vpc" { source = "../catalog/units/vpc" path = "vpc"}
unit "app" { source = "../catalog/units/app" path = "app"
autoinclude { dependency "vpc" { config_path = unit.vpc.path }
inputs = { vpc_id = dependency.vpc.outputs.vpc_id } }}terragrunt run --all --experiment stack-dependencies -- planTo learn more, see the experiment documentation.
βοΈ Process Updates
Section titled βοΈ Process UpdatesAWS SDK updated to v1.41.5
Section titled AWS SDK updated to v1.41.5The aws-sdk-go-v2 dependency has been updated to v1.41.5.
Concurrency limits now respect GOMAXPROCS
Section titled Concurrency limits now respect GOMAXPROCSAll internal concurrency limits now use runtime.GOMAXPROCS(0) instead of runtime.NumCPU(). This means Terragrunt correctly honors the GOMAXPROCS environment variable and container CPU quotas (e.g., cgroups), resulting in better behavior in resource-constrained environments like Kubernetes pods and CI runners with CPU limits.
Terragrunt Scale documentation added
Section titled Terragrunt Scale documentation addedA new Terragrunt Scale section has been added to the docs, covering Pipelines, Drift Detection, and Patcher with brief overviews and links to the full Gruntwork documentation.
Tip builds now available from main
Section titled Tip builds now available from mainEvery successful CI run on the main branch now automatically produces tip build binaries with signed checksums for all supported platforms (Windows and macOS binaries are not codesigned in tip builds). These builds are accessible via the builds API at https://builds.terragrunt.com β see the releases process documentation for API endpoints and usage examples. Maintainers can also trigger on-demand test builds from any branch using the test-build.yml workflow.
Pull Requests
Section titled Pull Requests⨠Features
π Bug Fixes
- fix: Fixing #5624 by @yhakbar in #5766
- fix: Fixing #4153 by @yhakbar in #5746
- fix: Fixing macOS linting by @yhakbar in #5775
- fix: Refactoring unit display in runs for better communication by @yhakbar in #5752
- fix: Discover dependents in worktrees if units are discovered there by @yhakbar in #5763
- fix: provider cache path handling in Windows by @denis256 in #5788
- fix: Adding Windows symlink tip by @yhakbar in #5778
- fix: Addressing test flakes for
TestReadTerragruntConfigDependencyInStackby @yhakbar in #5781 - fix: Fixing generation in stacks that read files by @yhakbar in #5790
- fix: use io.Copy instead of reading files into memory by @thisguycodes in #5608
- fix: Fix coverage compare regarding retries by @thisguycodes in #5793
- fix: add retry patterns for transient provider/registry network errors by @denis256 in #5779
- fix: Fixing
get_original_terragrunt_dir()interaction with dependencies by @yhakbar in #5828 - fix: Using cty.DynamicVal to avoid 'Unsupported Attribute' errors by @yhakbar in #5827
- fix: Preventing parse errors in stack generation in worktrees by @yhakbar in #5826
- fix: Addressing #5828 feedback by @yhakbar in #5876
- fix: Fixing up lints by @yhakbar in #5887
π Documentation
- docs: Adding
v1.0.0callout by @yhakbar in #5768 - docs: Disable vercel skew protection by @karlcarstensen in #5789
- docs: Updating GTM tag by @yhakbar in #5769
- docs: Fixing search by @yhakbar in #5776
- docs: Fixing strict controls by @yhakbar in #5782
- docs: Fixing up changelog implementation by @yhakbar in #5784
- docs: Documenting tip/test build installation instructions by @yhakbar in #5829
- docs: Adding TGS docs by @yhakbar in #5831
π§Ή Chores
- chore: disabled tmpfs usage in GHA by @denis256 in #5787
- chore: Adding tests to confirm #4395 is resolved by @yhakbar in #5761
- chore: updated aws-sdk-go-v2 to 1.41.5 by @denis256 in #5771
- chore: Replace
runtime.NumCPU()usage withruntime.GOMAXPROCS(0)by @yhakbar in #5794 - chore: various lint fixes by @thisguycodes in #5796
- chore: Adding tip build workflows by @yhakbar in #5823
- chore: Upgrading go deps by @yhakbar in #5795
- chore: misc testing and lint updates by @thisguycodes in #5885