The gruntwork-io project released Terragrunt v1.0.7 on June 1, 2026. This update introduces optional version constraints for registry sources and expands the experimental content addressing system to support cloud storage backends like S3 and Google Cloud Storage.
The full release notes and downloads are on the GitHub release page.
Registry Source and Optional Versions ¶
This release changes how Terragrunt handles the tfr:// source protocol. The version query parameter is now optional. When you omit the version, Terragrunt queries the registry to find the latest stable release. This behavior matches how OpenTofu and Terraform resolve module references without an explicit version constraint.
The resolution logic excludes prerelease tags by default. If a registry contains version 3.3.0 and a newer 4.0.0-rc1 tag, Terragrunt will pin to 3.3.0. You must still use an explicit ?version= parameter if you require reproducible builds or want to test a specific release candidate. This feature improves ergonomics for teams that maintain internal module registries and want to consume the latest stable updates automatically.
CAS Expansion to Cloud Storage ¶
The content addressing system known as cas now covers storage backends beyond git. This experiment supports http, https, Amazon S3, Google Cloud Storage, and Mercurial. Terragrunt uses remote probes to derive a cache key without downloading the entire source tree.
For S3 sources, the tool performs an object attributes lookup. For GCS, it reads the metadata. If the remote signal matches a cached entry, Terragrunt links the existing tree directly from the cache. This optimization reduces bandwidth usage and speeds up repeat runs for large module sets stored in object storage. This expansion allows the content addressing system to function as a unified cache for diverse infrastructure sources.
Stack Dependencies and Catalog Generation ¶
The stack-dependencies experiment received several updates to its path resolution logic. The unit.<name>.path and stack.<name>.path references now resolve inside the values attribute of a unit or stack block. This allows a parent stack to pass the generated path of a sibling component down into a child stack.
The reference shape for these dependencies has been simplified. Terragrunt no longer resolves deeply nested references like stack.<name>.<unit_name>.path. Only top level forms remain. This change avoids conflicts where a nested unit might share a name with a reserved attribute. Additionally, Terragrunt no longer writes the .terragrunt-stack-origin file. Operators should use update_source_with_cas = true to handle relative path resolution in catalogs instead.
Path Resolution and Windows Improvements ¶
A significant fix addresses how Terragrunt materializes units when using the update_source_with_cas feature. Previously, if a unit used the double slash subdirectory convention, the rewritten source would drop the subdirectory tail. This caused relative path references to siblings to fail. The new logic preserves the //subdir tail so that sibling files land in the materialized working directory.
Windows users gain better support for the --filter flag. The project fixed a path separator mismatch where Terragrunt compared forward slash glob patterns against Windows backslash paths. Comparisons now use forward slashes consistently on all platforms. This issue was reported in Issue 6214.
Upgrade Notes ¶
Operators should note two changes that improve configuration validation:
- The
--parallelismflag and theTG_PARALLELISMenvironment variable no longer accept zero or negative numbers. Values that are not positive now trigger an error instead of causing the process to hang. This fix relates to Issue 6211. - Built in functions like
startswith,endswith, andstrcontainsnow return configuration errors for malformed calls instead of triggering a panic. This also applies to therun_cmdfunction when called without a command.
Where to get it ¶
- The v1.0.7 release page
- The terragrunt repository
- The tag name is
v1.0.7