[PR #24328] [MERGED] chore(deps): update dependency terragrunt to v0.98.0 #17819

Closed
opened 2026-02-05 16:28:05 +03:00 by OVERLORD · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/immich-app/immich/pull/24328
Author: @renovate[bot]
Created: 12/2/2025
Status: Merged
Merged: 1/29/2026
Merged by: @jrasm91

Base: mainHead: renovate/terragrunt-0.x


📝 Commits (1)

  • 5639c5a chore(deps): update dependency terragrunt to v0.98.0

📊 Changes

2 files changed (+2 additions, -2 deletions)

View changed files

📝 deployment/mise.toml (+1 -1)
📝 mise.toml (+1 -1)

📄 Description

ℹ️ Note

This PR body was truncated due to platform limits.

This PR contains the following updates:

Package Update Change Pending
terragrunt minor 0.93.100.98.0 0.99.0

Warning

Some dependencies could not be looked up. Check the Dependency Dashboard for more information.


Release Notes

gruntwork-io/terragrunt (terragrunt)

v0.98.0

Compare Source

 New Features

The --filter flag now implies --all

When using the --filter flag, it is now optional to also supply --all. Terragrunt will automatically set the --all flag when you use the --filter flag.

🐛 Bug Fixes

Plan files are now correctly passed as CLI arguments for destroy operations

A bug in the logic used for injecting plan files as arguments to the apply -destroy command resulted in the plan file argument being injected prior to the -auto-approve flag, which is disallowed in OpenTofu/Terraform. That bug has been fixed.

GCS bootstrap authentication fixed

A bug in the authentication logic for GCS backends prevented successful bootstrapping of backends when using the --auth-provider-cmd flag. That bug has been fixed.

Git-based and Graph-based combinations fixed

A bug in the discovery logic for Git worktrees prevented using a combination of Git-based and Graph-based filter expressions in the same filter from working correctly.

e.g.

 terragrunt find --filter '...^[HEAD^...HEAD]...'

That bug has been fixed.

Proper exit codes returned from -detailed-exitcode

A bug in the logic for handling retries combined with the OpenTofu/Terraform plan -detailed-exitcode and the Terragrunt --all flag resulted in the wrong exit code being returned when a failed run succeeded on a subsequent retry with a status code related to drift (exit code 2).

That logic has been corrected, and properly follows the rules outlined under the --all flag:

When not using -detailed-exitcode:

  • Terragrunt will return the highest exit code of all runs performed.

When using -detailed-exitcode:

  • If any run has an exit code that is 1, or greater than 2, run --all will return the highest exit code.
  • Otherwise, if any run returns an exit code of 2, run --all will return an exit code of 2.
  • Otherwise, run --all will return an exit code of 0.
OpenTelemetry traces in console mode fixed

A bug in OpenTelemetry trace exporting prevented traces from being exported when in console mode. That bug has been fixed.

Negation logic fixed

A bug in how negation logic was handled in filter expressions prevented successful exclusion of stacks from generation and over excluded units in runs when users only supplied negative filters.

⚙️ Process Improvements

GPG Signing

Release artifacts are now signed using both GPG and Cosign.

To start performing signature validation on assets, in addition to the asset you’re downloading from the GitHub releases page, you’ll want to download some of the following files:

VERSION="v0.XX.X"  # Replace with actual version of Terragrunt you are installing
curl -LO "https://github.com/gruntwork-io/terragrunt/releases/download/${VERSION}/SHA256SUMS"

# For GPG:
curl -LO "https://github.com/gruntwork-io/terragrunt/releases/download/${VERSION}/SHA256SUMS.gpgsig"

# For Cosign:
curl -LO "https://github.com/gruntwork-io/terragrunt/releases/download/${VERSION}/SHA256SUMS.sig"
curl -LO "https://github.com/gruntwork-io/terragrunt/releases/download/${VERSION}/SHA256SUMS.pem"

To verify with GPG:

curl -s https://gruntwork.io/.well-known/pgp-key.txt | gpg --import

gpg --verify SHA256SUMS.gpgsig SHA256SUMS

sha256sum -c SHA256SUMS --ignore-missing

To verify with Cosign:

cosign verify-blob SHA256SUMS \
  --signature SHA256SUMS.sig \
  --certificate SHA256SUMS.pem \
  --certificate-oidc-issuer https://token.actions.githubusercontent.com \
  --certificate-identity-regexp "github.com/gruntwork-io/terragrunt"

sha256sum -c SHA256SUMS --ignore-missing

Terragrunt installation documentation will be updated soon to recommend this on every installation, the Gruntwork maintained asdf plugin will be updated to do this automatically, and all Gruntwork recommended mechanisms for installing Terragrunt will support this going forward.

Upgrade to Go 1.25.5

The Golang toolchain used to build Terragrunt has been upgraded to v1.25.5.

Package reorganization

All top-level Golang packages in the Terragrunt project have been migrated to either internal or pkg. The distinction between the two indicates maintainer expectations as to whether either are being actively being consumed as libraries by third parties (with internal being impossible to import without vendoring in go modules).

Note that this does not indicate any backwards compatibility guarantee for usage of the Terragrunt as a library. It will remain unstable, and can change at any time.

What's Changed

Full Changelog: https://github.com/gruntwork-io/terragrunt/compare/v0.97.2...v0.98

v0.97.2

Compare Source

🏎️ Performance Improvements

Partial parse used for get_working_dir()

To assess where Terragrunt is going to run OpenTofu, it needs partially parsed information from the relevant terragrunt.hcl file of the unit running the HCL get_working_dir() function. The function was performing a full parse of the terragrunt.hcl file, which can be slow for users with large HCL configurations.

Given that the parse only requires access to the value of source in the terraform block, a partial parse is now performed by the function, only looking at the contents of the terraform block, improving performance significantly.

🐛 Bug Fixes

False positive parsing errors suppressed

When parsing an include that defined dependencies, the HCL parser used by Terragrunt would emit spurious errors that are internally ignored. Those messages are now suppressed.

Signal propagation for interrupts fixed

A bug in how Terragrunt forwarded signals to processes it spawned (like running tofu) resulted in underlying processes receiving SIGKILL signals rather than the original signal (e.g. SIGINT) sent to the Terragrunt process. That has been fixed.

🧹 Chores

Avoiding contextcheck suppression

While not changing much functionally in Terragrunt, this release did involve quite a lot of changes to Terragrunt internals. The majority of these changes related to better propagation of the Golang [context](https://pkg.go.dev/context) object to better obey Golang best practices. These issues were reported by the contextcheck linter in the codebase, but the findings were suppressed due to the scope of work required to address them.

These changes should make it so that context is propagated correctly more reliably in the codebase, increasing the usefulness of things like OpenTelemetry tracing and reduced resource usage.

Note that some public function signatures have changed in the Terragrunt codebase, which may be a breaking change to users consuming Terragrunt as a library. Given that we do not offer any stability guarantees for usage of Terragrunt as a library, these changes are still to be included in a patch release.

What's Changed

Full Changelog: https://github.com/gruntwork-io/terragrunt/compare/v0.97.1...v0.97.2

v0.97.1

Compare Source

 New Features

All HCL functions instrumented with OpenTelemetry

All Terragrunt HCL functions now emit OpenTelemetry spans when they run, making it easier to understand HCL function usage and performance.

HCL parsing telemetry improved

Additional fidelity has been added to traces emitted during parsing to give insight as to why configuration parsing is being performed, and how.

🐛 Bug Fixes

plan -destroy called correctly for --filter-affected

A bug in the logic for --filter-affected resulted in removed units getting planned/applied instead of being destroyed when users supplied --filter-allow-destroy. That bug has been fixed.

Nested spans in track parents appropriately even when the TRACEPARENT environment variable is used.

A bug in the logic for propagating TRACEPARENT as the ultimate parent of traces started in Terragrunt prevented child traces from properly tracking parent spans. That bug has been fixed.

Reports on runs in worktrees now use relative directories to worktree root

Instead of displaying runs of units in Git worktrees during Git-based filter expression runs with the absolute path of their directories in a temporary directory, they now display with the path to the unit relative to the root of the worktree.

Unnecessary relationship discovery prevented

Discovery of relationships between units has been made opt-in in the discovery process. This will result in no changes to usage of commands like run --all, but will significantly improve the performance of commands like list and stack generate.

What's Changed

Full Changelog: https://github.com/gruntwork-io/terragrunt/compare/v0.97.0...v0.97.1

v0.97.0

Compare Source

⚒️ Breaking Changes

The --queue-strict-include flag is deprecated

Terragrunt no longer automatically includes dependencies of included units. As such the --queue-strict-include flag is no longer useful in the Terragrunt CLI.

The flag has been deprecated, and no longer does anything. This flag will not be removed before 2.0.

Run report no longer reports --queue-exclude-dir as a reason for exclusion

Run reports no longer report on units excluded from runs as a consequence of the --queue-exclude-dir flag.

The --units-that-include flag is deprecated

The --units-that-include flag is now an alias for the reading= attribute filter, just like the --queue-include-units-reading flag.

Given that the two flags no longer differ in functionality, and that the functionality of the --units-that-include is no longer strictly including units that are included, the flag has been deprecated.

The double-star strict control is complete

The globbing behavior of Terragrunt in CLI flags has been updated to match all paths when ending with a trailing ** .

🧪 Experiments Completed

The filter-flag experiment is completed

The filter-flag experiment is completed, and the --filter flag is now generally available.

You can use filter expressions as a single unified API for controlling the Run Queue, replacing the need to use the following CLI flags:

Legacy —queue flag Equivalent —filter expression
—-queue-include-dir=path —-filter='{./path}'
—-queue-exclude-dir=path —-filter='!{./path}'
--queue-include-units-reading=root.hcl --filter='reading=root.hcl'
--units-that-include=root.hcl --filter='reading=root.hcl'
--queue-include-external-dependencies --filter='{./**}...'
--queue-excludes-file=excludes.txt --filters-file='filters.txt' *
--graph --filter='...{.}'
  • Note that the file used for the --queue-excludes-file does not directly translate to the kind of file you can use for a --filters-file. To learn more, see the documentation.

The table above also explains the aliasing that has been done internally to replace queue flags with their filter equivalents. The aliasing for these queue flags is present purely for backwards compatibility purposes, but they are not going to emit deprecation warnings, and will not be removed before the Terragrunt 1.0 release.

You are heavily encouraged to adopt the new --filter flag for your infrastructure targeting needs as soon as feasible in your workflows. It will offer a significantly more flexible and powerful experience.

To learn more see the Filters feature documentation.

🐛 Bug Fixes

The get_original_terragrunt_dir() function is now supported in terragrunt.stack.hcl files

When authoring explicit stacks, using the get_original_terragrunt_dir() HCL function in terragrunt.stack.hcl files will now return the directory where the terragrunt.stack.hcl file lives, even when the configuration is read from another stack/unit using read_terragrunt_config().

Using Git-based expressions with the --out-dir flag is fixed

When using Git-based expressions using the --filter flag, the relative path of units relative to their respective Git worktree roots is used for determining where the plan file will be saved, rather than a path in the relevant Git worktree.

Color for output fetching is suppressed more reliably

Terragrunt will use tofu output -json / terraform output -json more reliably when users expect a lack of colors (like when colors are suppressed for Terragrunt).

What's Changed

New Contributors

Full Changelog: https://github.com/gruntwork-io/terragrunt/compare/v0.96.1..v.0.97.0

v0.96.1

Compare Source

🧪 Experiments Updated

The --filter-affected flag has more robust determination of the default branch in a Git repository

The --filter-affected flag will now use Git plumbing to interrogate the default branch as considered by the remote repository before falling back to interrogating local configurations for determination of a default branch (remember that you must use the filter-flag experiment to try this out).


# This is checked first
$ git rev-parse --abbrev-ref origin/HEAD

# Followed by this
$ git ls-remote --symref origin HEAD

# Followed with this
$ git config init.defaultBranch

# If none of the above succeed, the default branch is assumed to be `main`.
Git-based filter expressions now warn users when using local state

Usage of --filter Git-based expressions in combination with local state will now emit a warning, recommending usage of remote states (remember that you must use the filter-flag experiment to try this out).

$ terragrunt run --all --filter '[HEAD~1...HEAD]' -- plan
09:30:38.017 WARN   One or more units discovered using Git-based filter expressions (e.g. [HEAD~1...HEAD]) do not have a remote_state configuration. This may result in unexpected outcomes, such as outputs for dependencies returning empty. It is strongly recommended to use remote state when working with Git-based filter expressions.

See the warning at the bottom of Git-based expressions documentation for more information.

OpenTelemetry traces added for filter evaluation

Filter evaluation now emits OpenTelemetry spans and metrics, including filter resolution details, evaluation duration, and filtering scope. This helps teams analyze performance and pinpoint bottlenecks in filtering with large Terragrunt repositories.

filter-otel-traces

🐛 Bug Fixes

Path-based filters targeting external paths fixed

A bug in the parsing of path-based filter expressions in the --filter flag of the filter-flag experiment prevented parsing of path-based filters for external paths (e.g. --filter ../external-dir). This bug has been fixed.

HTTPS Git CAS URLs fixed

A bug in the parsing of source URLs with forced usage of the Git protocol (e.g. git::https://github.com/acme/catalog) prevented using the cas experiment with HTTPS Git URLs with forced usage of the Git protocol. This bug has been fixed.

Regression of support for root terragrunt.hcl fixed

A bug in the processing of --queue-exclude-dir resulted in prefix based matching of non-glob expressions in --queue-exclude-dir values. This broke backwards compatibility for users with a root terragrunt.hcl file instead of a differently named file for the root include (e.g. root.hcl). This bug has been fixed.

Note that you are still advised to migrate away from using a root terragrunt.hcl as soon as possible for your team. We will maintain backwards compatibility until at least 2.0, however.

What's Changed

Full Changelog: https://github.com/gruntwork-io/terragrunt/compare/v0.96.0...v0.96.1

v0.96.0

Compare Source

🛠️ Breaking Changes

The --no-destroy-dependencies-check flag has been deprecated

The default behavior of Terragrunt with respect to checking dependents during destroys has been inverted. As a consequence the --no-destroy-dependencies-check has been deprecated, and a new --destroy-dependencies-check flag has been introduced.

Previously, Terragrunt would automatically parse all configurations that might depend on a unit being destroyed to warn users that the destroyed configuration might orphan other units that depend on it. This was frequently undesirable behavior due to the fact that it introduced additional unnecessary work (parsing all HCL configurations unnecessarily), and could introduce errors if users had unrelated invalid HCL configurations.

Terragrunt now requires that users opt-in to this behavior via the new --destroy-dependencies-check flag, which enables the destroy check, and will not perform the destroy check by default.

terragrunt run --destroy-dependencies-check -- destroy

To learn more, see the no-destroy-dependencies-check strict control.

The --disable-command-validation flag has been deprecated

Terragrunt no longer performs command name validation when passing commands to OpenTofu/Terraform from Terragrunt when using the run command. This makes the --disable-command-validation flag unnecessary, as the lack of validation is now the default behavior.

Previously, Terragrunt had no way to explicitly indicate that a command being used on the Terragrunt CLI was intended as a passthrough to the OpenTofu/Terraform CLI, so it was important that validation be done on the command being supplied on the Terragrunt CLI.

Since completion of the CLI Redesign, this has changed significantly. Users now have explicit shortcuts on the Terragrunt CLI for common OpenTofu/Terraform commands and an explicit interface for passing through OpenTofu/Terraform commands to the OpenTofu/Terraform CLIs using the run command. By removing this validation, Terragrunt will now automatically support new OpenTofu/Terraform commands in future versions of the tools and allow for greater flexibility in IaC Engines, as novel commands can be introduced.

To learn more, see the disable-command-validation strict control.

The --experimental-engine flag now enables the iac-engine experiment

The experimental IaC Engine feature was introduced in Terragrunt prior to the introduction of the experiment system. As such, it wasn’t enabled when users enabled experiment mode, and didn’t have a dedicated section in the experiments docs.

The --experimental-engine flag is now an alias for explicitly enabling the iac-engine experiment, and using IaC Engines will be allowed when using Terragrunt in experiment mode. This increases consistency with how experimental features are managed in Terragrunt, and reduces the surface area users have to be aware of in the Terragrunt CLI.

terragrunt run --experiment=iac-engine

Note that you can explicitly disable usage of engines now with the --no-engine flag, even when the experiment is active.

terragrunt run --experiment=iac-engine --no-engine

To learn more, see the iac-engine experiment.

The --dependency-fetch-output-from-state flag now enables the dependency-fetch-output-from-state experiment

The experimental —dependency-fetch-output-from-state flag was introduced in Terragrunt prior to the introduction of the experiment system. As such, it wasn’t enabled when users enabled experiment mode, and didn’t have a dedicated section in the experiments docs.

The --dependency-fetch-output-from-state flag is now an alias for explicitly enabling the dependency-fetch-output-from-state experiment, and Terragrunt will automatically attempt to fetch outputs from backend state when in experiment mode. This increases consistency with how experimental features are managed in Terragrunt, and reduces the surface area users have to be aware of in the Terragrunt CLI.

terragrunt run --experiment=dependency-fetch-output-from-state

Note that you can explicitly disable fetching output from state with the --no-dependency-fetch-output-from-state flag, even when the experiment is active.

terragrunt run --experiment=dependency-fetch-output-from-state --no-dependency-fetch-output-from-state

To learn more, see the dependency-fetch-output-from-state experiment.

🧪 Experiments Updated

The filter-flag experiment now supports the --filters-file flag

The --filters-file flag has been introduced to allow for the application of multiple filters as defined in a newline-delimited text file, similar to the existing --excludes-file flag (remember that you must use the filter-flag experiment to try this).

 # custom-filters.txt
 !./unstable/**
 $ terragrunt find --filters-file custom-filters.txt
 # No results in `./unstable` discovered.

When the filter-flag experiment is active, Terragrunt will automatically parse and apply filters found in a .terragrunt-filters file, similar to how it automatically parses and applies excludes found in a .terragrunt-excludes file.

 # .terragrunt-filters
 !./unstable/**

# Note that it only does this by default when the experiment is active.
terragrunt find

# Still no results in `./unstable` discovered.

To explicitly disable usage of filter files (including the automatic .terragrunt-filters file), use the --no-filters-file flag.

 # .terragrunt-filters
 !./unstable/**

# Note that it only does this by default when the experiment is active.
terragrunt find --no-filters-file

# This _will_ allow results in `./unstable` to be discovered.

Unlike the --excludes-file, usage of the --filters-file flag also allows for always filtering for particular configurations.


# .terragrunt-filters
./always-include/**

To learn more, see the filters file documentation.

🐛 Bug Fixes

Unnecessary .terragrunt-cache directory no longer generated in run --all runs

Fixed a regression where run --all would create empty .terragrunt-cache directories in the current working directory, even when not needed.

What's Changed

New Contributors

Full Changelog: https://github.com/gruntwork-io/terragrunt/compare/v0.95.1...v0.96.0

v0.95.1

Compare Source

🧪 Experiments Updated

The filter-flag experiment now supports the --filter-affected flag

The --filter-affected flag has been introduced as an convenience alias for --filter [main...HEAD] (remember that you must use the filter-flag experiment to try this).

terragrunt find --filter-affected

Note that if you have local Git configurations that results in a different branch being your default branch, that branch will be used instead of main.

🐛 Bug Fixes

Integration of --queue-strict-include with --queue-include-units-reading fixed

A regression in --queue-strict-include resulted in empty run queues when using a combination of --queue-strict-include with --queue-include-units-reading. That bug has been resolved.

Integration of --source with run --all fixed

A regression in --source prevented it from working correctly in combination with run --all , resulting in empty run queues. That bug has been resolved.

Integration of Git-expressions with explicit stacks

A bug in the implementation of explicit stack generation for Git-expressions prevented stacks from being generated in Git worktrees when using Git-expressions in the filter-flag experiment. That bug has been resolved.

🧹 Chores

Dependencies updates
  • cloud.google.com/go/storage —> v1.58.0
  • github.com/aws/aws-sdk-go-v2 —> v1.41.0
  • github.com/hashicorp/go-version —> v1.8.0
  • github.com/aws/smithy-go —> v1.24.0

What's Changed

Full Changelog: https://github.com/gruntwork-io/terragrunt/compare/v0.95.0...v0.95.1

v0.95.0

Compare Source

🛠️ Breaking Changes

The --queue-exclude-external flag has been deprecated

Previously, Terragrunt would automatically pull in external dependencies (dependencies outside the current working directory when running terragrunt run --all) into the run queue.

To prevent this behavior, users had to manually supply the --queue-exclude-external flag. This has caused significant confusion and unexpected behavior for users over the duration of it’s existence in the Terragrunt CLI. To prevent this unexpected behavior for users and follow the principle of least surprise, this flag has been deprecated and its behavior is now the default in Terragrunt.

To explicitly request inclusion of external dependencies in the run queue, use the —queue-include-external flag.

⚙️ Process Updates

OpenTofu 1.11.x added to compatibility matrix

We are now continuously testing against OpenTofu 1.11.1 in our Continuous Integration testing, and have updated the compatibility matrix to reflect that.

🧪 Updated Experiments

The filter-flag experiment now supports Git-based expressions

The --filter flag can now be used to filter units based on changes in Git history (remember that you must use the filter-flag experiment to try this).


# Compare between two references
terragrunt find --filter '[main...HEAD]'

# Shorthand: compare reference to HEAD
terragrunt find --filter '[main]'

# Compare between specific commits
terragrunt find --filter '[abc123...def456]'

# Compare between tags
terragrunt find --filter '[v1.0.0...v2.0.0]'

# Compare using relative references
terragrunt find --filter '[HEAD~1...HEAD]'

# Compare between branches
terragrunt find --filter '[feature-branch...main]'

For more information, see the dedicated documentation on Git-Based Filtering.

🐛 Bug Fixes

Units now properly flush stdout in run --all

A regression in unit stdout flushing caused stdout for unit logs to hang pending resolution of run --all runs. This regression has been fixed to ensure that logs are streamed in real time again.

Queue entries now properly run, even if dependent units are excluded

A bug in run queue optimization made it so that excluding the dependent of a unit within a multi-unit run queue would incorrectly exclude the dependency unit from the run queue. This bug has been resolved, and units are now properly included, even if their dependents are excluded.

Provider cache server only contacts relevant registries

The provider cache server was incorrectly establishing a connection with multiple registries even though only one registry for a given IaC tool run by Terragrunt. For users with network-restricted environments, this could cause problems. Terragrunt will now only contact the relevant registry for a given IaC tool unless users explicitly request for usage of multiple registries.

📖 Documentation Updates

Provider cache server no longer documented as experimental

The Provider Cache Server has been used in production by a good portion of the Terragrunt community based on voluntary community reporting. The need for the feature is also mitigated by advances in OpenTofu that makes the Automatic Provider Cache Dir the default solution all Terragrunt users using OpenTofu ≥ v1.10.0.

As such, the Provider Cache Server has been promoted to a generally available feature that is exclusively opt-in for users that cannot benefit from the Automatic Provider Cache Dir feature, or are better served by the Provider Cache Server due to scale or platform limitations.

What's Changed

Full Changelog: https://github.com/gruntwork-io/terragrunt/compare/v0.94.0...v0.95.0

v0.94.0

Compare Source

 Features

  • Terraform 1.14: We are now testing Terragrunt against Terraform 1.14 and is confirmed to be working.

NOTE: Although this release is marked as backward incompatible, it is functionally compatible as nothing has been changed in Terragrunt internals. The minor version release is useful to mark the change in Terraform version that is being tested.

What's Changed

Full Changelog: https://github.com/gruntwork-io/terragrunt/compare/v0.93.13...v0.94.0

v0.93.13

Compare Source

🐛 Bug Fixes

Catalog module source URL construction

Fixed malformed version-pinned catalog module URLs where TerraformSourcePath() incorrectly placed //moduleDir after ?ref=, ensuring correct root and submodule URL formatting.

What's Changed

Full Changelog: https://github.com/gruntwork-io/terragrunt/compare/v0.93.12...v0.93.13

v0.93.12

Compare Source

🐛 Bug Fixes

False positive errors during dependent units discovery

Reduced false-positive log messages emitted while discovering dependent units during destroy operations.

What's Changed


Configuration

📅 Schedule: Branch creation - "before 9am on tuesday" (UTC), Automerge - At any time (no schedule defined).

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.


🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/immich-app/immich/pull/24328 **Author:** [@renovate[bot]](https://github.com/apps/renovate) **Created:** 12/2/2025 **Status:** ✅ Merged **Merged:** 1/29/2026 **Merged by:** [@jrasm91](https://github.com/jrasm91) **Base:** `main` ← **Head:** `renovate/terragrunt-0.x` --- ### 📝 Commits (1) - [`5639c5a`](https://github.com/immich-app/immich/commit/5639c5af832139648db1887fd9b2b37e4de403db) chore(deps): update dependency terragrunt to v0.98.0 ### 📊 Changes **2 files changed** (+2 additions, -2 deletions) <details> <summary>View changed files</summary> 📝 `deployment/mise.toml` (+1 -1) 📝 `mise.toml` (+1 -1) </details> ### 📄 Description > ℹ️ **Note** > > This PR body was truncated due to platform limits. This PR contains the following updates: | Package | Update | Change | Pending | |---|---|---|---| | [terragrunt](https://redirect.github.com/gruntwork-io/terragrunt) | minor | `0.93.10` → `0.98.0` | `0.99.0` | --- > [!WARNING] > Some dependencies could not be looked up. Check the Dependency Dashboard for more information. --- ### Release Notes <details> <summary>gruntwork-io/terragrunt (terragrunt)</summary> ### [`v0.98.0`](https://redirect.github.com/gruntwork-io/terragrunt/releases/tag/v0.98.0) [Compare Source](https://redirect.github.com/gruntwork-io/terragrunt/compare/v0.97.2...v0.98.0) #### ✨ New Features ##### The `--filter` flag now implies `--all` When using the `--filter` flag, it is now optional to also supply `--all`. Terragrunt will automatically set the `--all` flag when you use the `--filter` flag. #### 🐛 Bug Fixes ##### Plan files are now correctly passed as CLI arguments for destroy operations A bug in the logic used for injecting plan files as arguments to the `apply -destroy` command resulted in the plan file argument being injected prior to the `-auto-approve` flag, which is disallowed in OpenTofu/Terraform. That bug has been fixed. ##### GCS bootstrap authentication fixed A bug in the authentication logic for GCS backends prevented successful bootstrapping of backends when using the `--auth-provider-cmd` flag. That bug has been fixed. ##### Git-based and Graph-based combinations fixed A bug in the discovery logic for Git worktrees prevented using a combination of Git-based and Graph-based filter expressions in the same filter from working correctly. e.g. ```bash terragrunt find --filter '...^[HEAD^...HEAD]...' ``` That bug has been fixed. ##### Proper exit codes returned from `-detailed-exitcode` A bug in the logic for handling retries combined with the OpenTofu/Terraform `plan -detailed-exitcode` and the Terragrunt `--all` flag resulted in the wrong exit code being returned when a failed run succeeded on a subsequent retry with a status code related to drift (exit code 2). That logic has been corrected, and properly follows the rules outlined under the [`--all`](https://terragrunt.gruntwork.io/docs/reference/cli/commands/run/#all) flag: When not using `-detailed-exitcode`: - Terragrunt will return the highest exit code of all runs performed. When using `-detailed-exitcode`: - If any run has an exit code that is 1, or greater than 2, `run --all` will return the highest exit code. - Otherwise, if any run returns an exit code of 2, `run --all` will return an exit code of 2. - Otherwise, `run --all` will return an exit code of 0. ##### OpenTelemetry traces in console mode fixed A bug in OpenTelemetry trace exporting prevented traces from being exported when in console mode. That bug has been fixed. ##### Negation logic fixed A bug in how negation logic was handled in filter expressions prevented successful exclusion of stacks from generation and over excluded units in runs when users only supplied negative filters. #### ⚙️ Process Improvements ##### GPG Signing Release artifacts are now signed using both GPG and Cosign. To start performing signature validation on assets, in addition to the asset you’re downloading from the GitHub releases page, you’ll want to download some of the following files: ```bash VERSION="v0.XX.X" # Replace with actual version of Terragrunt you are installing curl -LO "https://github.com/gruntwork-io/terragrunt/releases/download/${VERSION}/SHA256SUMS" # For GPG: curl -LO "https://github.com/gruntwork-io/terragrunt/releases/download/${VERSION}/SHA256SUMS.gpgsig" # For Cosign: curl -LO "https://github.com/gruntwork-io/terragrunt/releases/download/${VERSION}/SHA256SUMS.sig" curl -LO "https://github.com/gruntwork-io/terragrunt/releases/download/${VERSION}/SHA256SUMS.pem" ``` To verify with GPG: ```bash curl -s https://gruntwork.io/.well-known/pgp-key.txt | gpg --import gpg --verify SHA256SUMS.gpgsig SHA256SUMS sha256sum -c SHA256SUMS --ignore-missing ``` To verify with Cosign: ```bash cosign verify-blob SHA256SUMS \ --signature SHA256SUMS.sig \ --certificate SHA256SUMS.pem \ --certificate-oidc-issuer https://token.actions.githubusercontent.com \ --certificate-identity-regexp "github.com/gruntwork-io/terragrunt" sha256sum -c SHA256SUMS --ignore-missing ``` Terragrunt installation documentation will be updated soon to recommend this on every installation, the Gruntwork maintained [`asdf` plugin](https://redirect.github.com/gruntwork-io/asdf-terragrunt/) will be updated to do this automatically, and all Gruntwork recommended mechanisms for installing Terragrunt will support this going forward. ##### Upgrade to Go 1.25.5 The Golang toolchain used to build Terragrunt has been upgraded to `v1.25.5`. ##### Package reorganization All top-level Golang packages in the Terragrunt project have been migrated to either `internal` or `pkg`. The distinction between the two indicates maintainer expectations as to whether either are being actively being consumed as libraries by third parties (with `internal` being impossible to import without vendoring in go modules). Note that this does not indicate any backwards compatibility guarantee for usage of the Terragrunt as a library. It will remain unstable, and can change at any time. #### What's Changed - feat: Automatically enable `-all` when using `-filter` by [@&#8203;yhakbar](https://redirect.github.com/yhakbar) in [#&#8203;5265](https://redirect.github.com/gruntwork-io/terragrunt/pull/5265) - fix: Fixed passing of existing destroy plan files by [@&#8203;denis256](https://redirect.github.com/denis256) in [#&#8203;5327](https://redirect.github.com/gruntwork-io/terragrunt/pull/5327) - fix: Fixing auth in GCS bootstrap by [@&#8203;yhakbar](https://redirect.github.com/yhakbar) in [#&#8203;5342](https://redirect.github.com/gruntwork-io/terragrunt/pull/5342) - fix: Fixing Git-expression + Graph-expression filter combinations by [@&#8203;yhakbar](https://redirect.github.com/yhakbar) in [#&#8203;5355](https://redirect.github.com/gruntwork-io/terragrunt/pull/5355) - fix: Fixing `detailed-exitcode` by [@&#8203;yhakbar](https://redirect.github.com/yhakbar) in [#&#8203;5362](https://redirect.github.com/gruntwork-io/terragrunt/pull/5362) - fix: traces output in console mode by [@&#8203;denis256](https://redirect.github.com/denis256) in [#&#8203;5329](https://redirect.github.com/gruntwork-io/terragrunt/pull/5329) - fix: Cleanup from [#&#8203;5342](https://redirect.github.com/gruntwork-io/terragrunt/issues/5342) by [@&#8203;yhakbar](https://redirect.github.com/yhakbar) in [#&#8203;5356](https://redirect.github.com/gruntwork-io/terragrunt/pull/5356) - fix: Fixing negation logic by [@&#8203;yhakbar](https://redirect.github.com/yhakbar) in [#&#8203;5368](https://redirect.github.com/gruntwork-io/terragrunt/pull/5368) - docs: Adding ambassadors by [@&#8203;karlcarstensen](https://redirect.github.com/karlcarstensen) in [#&#8203;5330](https://redirect.github.com/gruntwork-io/terragrunt/pull/5330) - docs: Typo by [@&#8203;karlcarstensen](https://redirect.github.com/karlcarstensen) in [#&#8203;5331](https://redirect.github.com/gruntwork-io/terragrunt/pull/5331) - docs: Fix link to Dallas Slaughter by [@&#8203;karlcarstensen](https://redirect.github.com/karlcarstensen) in [#&#8203;5370](https://redirect.github.com/gruntwork-io/terragrunt/pull/5370) - chore: Dropping more utils by [@&#8203;yhakbar](https://redirect.github.com/yhakbar) in [#&#8203;5300](https://redirect.github.com/gruntwork-io/terragrunt/pull/5300) - chore: Lint everything when linting by [@&#8203;yhakbar](https://redirect.github.com/yhakbar) in [#&#8203;5344](https://redirect.github.com/gruntwork-io/terragrunt/pull/5344) - chore: Remove `RunTarget` from `options` by [@&#8203;yhakbar](https://redirect.github.com/yhakbar) in [#&#8203;5264](https://redirect.github.com/gruntwork-io/terragrunt/pull/5264) - chore: Undo `-all` and `-graph` wrap by [@&#8203;yhakbar](https://redirect.github.com/yhakbar) in [#&#8203;5257](https://redirect.github.com/gruntwork-io/terragrunt/pull/5257) - chore: move engine to internal package by [@&#8203;denis256](https://redirect.github.com/denis256) in [#&#8203;5340](https://redirect.github.com/gruntwork-io/terragrunt/pull/5340) - chore: scripts directories cleanup by [@&#8203;denis256](https://redirect.github.com/denis256) in [#&#8203;5343](https://redirect.github.com/gruntwork-io/terragrunt/pull/5343) - chore: Addressing [#&#8203;5355](https://redirect.github.com/gruntwork-io/terragrunt/issues/5355) feedback by [@&#8203;yhakbar](https://redirect.github.com/yhakbar) in [#&#8203;5363](https://redirect.github.com/gruntwork-io/terragrunt/pull/5363) - chore: release files signing by [@&#8203;denis256](https://redirect.github.com/denis256) in [#&#8203;5291](https://redirect.github.com/gruntwork-io/terragrunt/pull/5291) - chore: pkg packages organisation by [@&#8203;denis256](https://redirect.github.com/denis256) in [#&#8203;5358](https://redirect.github.com/gruntwork-io/terragrunt/pull/5358) - chore: internal packages update by [@&#8203;denis256](https://redirect.github.com/denis256) in [#&#8203;5360](https://redirect.github.com/gruntwork-io/terragrunt/pull/5360) - chore: moved cli package to internal/cli by [@&#8203;denis256](https://redirect.github.com/denis256) in [#&#8203;5345](https://redirect.github.com/gruntwork-io/terragrunt/pull/5345) - chore: go 1.25.5 version update by [@&#8203;denis256](https://redirect.github.com/denis256) in [#&#8203;5339](https://redirect.github.com/gruntwork-io/terragrunt/pull/5339) - build(deps): bump [@&#8203;smithy/config-resolver](https://redirect.github.com/smithy/config-resolver) from 4.1.4 to 4.4.5 in /docs-starlight/src/fixtures/terralith-to-terragrunt/app/best-cat by [@&#8203;dependabot](https://redirect.github.com/dependabot)\[bot] in [#&#8203;5328](https://redirect.github.com/gruntwork-io/terragrunt/pull/5328) **Full Changelog**: <https://github.com/gruntwork-io/terragrunt/compare/v0.97.2...v0.98> ### [`v0.97.2`](https://redirect.github.com/gruntwork-io/terragrunt/releases/tag/v0.97.2) [Compare Source](https://redirect.github.com/gruntwork-io/terragrunt/compare/v0.97.1...v0.97.2) #### 🏎️ Performance Improvements ##### Partial parse used for `get_working_dir()` To assess where Terragrunt is going to run OpenTofu, it needs partially parsed information from the relevant `terragrunt.hcl` file of the unit running the HCL `get_working_dir()` function. The function was performing a full parse of the `terragrunt.hcl` file, which can be slow for users with large HCL configurations. Given that the parse only requires access to the value of `source` in the `terraform` block, a partial parse is now performed by the function, only looking at the contents of the `terraform` block, improving performance significantly. #### 🐛 Bug Fixes ##### False positive parsing errors suppressed When parsing an include that defined dependencies, the HCL parser used by Terragrunt would emit spurious errors that are internally ignored. Those messages are now suppressed. ##### Signal propagation for interrupts fixed A bug in how Terragrunt forwarded signals to processes it spawned (like running `tofu`) resulted in underlying processes receiving `SIGKILL` signals rather than the original signal (e.g. `SIGINT`) sent to the Terragrunt process. That has been fixed. #### 🧹 Chores ##### Avoiding `contextcheck` suppression While not changing much functionally in Terragrunt, this release did involve quite a lot of changes to Terragrunt internals. The majority of these changes related to better propagation of the Golang \[[context](https://pkg.go.dev/context)]\(<https://pkg.go.dev/context>) object to better obey Golang best practices. These issues were reported by the `contextcheck` linter in the codebase, but the findings were suppressed due to the scope of work required to address them. These changes should make it so that context is propagated correctly more reliably in the codebase, increasing the usefulness of things like OpenTelemetry tracing and reduced resource usage. Note that some public function signatures have changed in the Terragrunt codebase, which may be a breaking change to users consuming Terragrunt as a library. Given that we do not offer any stability guarantees for usage of Terragrunt as a library, these changes are still to be included in a patch release. #### What's Changed - perf: Using a partial parse for `get_working_dir()` by [@&#8203;yhakbar](https://redirect.github.com/yhakbar) in [#&#8203;5318](https://redirect.github.com/gruntwork-io/terragrunt/pull/5318) - fix: false positive parsing errors by [@&#8203;denis256](https://redirect.github.com/denis256) in [#&#8203;5258](https://redirect.github.com/gruntwork-io/terragrunt/pull/5258) - fix: Fixing signal propagation issues by [@&#8203;yhakbar](https://redirect.github.com/yhakbar) in [#&#8203;5326](https://redirect.github.com/gruntwork-io/terragrunt/pull/5326) - fix: Locking during run ensure calls by [@&#8203;yhakbar](https://redirect.github.com/yhakbar) in [#&#8203;5312](https://redirect.github.com/gruntwork-io/terragrunt/pull/5312) - chore: Avoiding `contextcheck` suppression by [@&#8203;yhakbar](https://redirect.github.com/yhakbar) in [#&#8203;5320](https://redirect.github.com/gruntwork-io/terragrunt/pull/5320) - chore: Fixing flaky tests by [@&#8203;yhakbar](https://redirect.github.com/yhakbar) in [#&#8203;5316](https://redirect.github.com/gruntwork-io/terragrunt/pull/5316) - chore: Adding flake utility by [@&#8203;yhakbar](https://redirect.github.com/yhakbar) in [#&#8203;5311](https://redirect.github.com/gruntwork-io/terragrunt/pull/5311) - chore: Cleaning up HCL fn spans by [@&#8203;yhakbar](https://redirect.github.com/yhakbar) in [#&#8203;5315](https://redirect.github.com/gruntwork-io/terragrunt/pull/5315) - build(deps): bump github.com/cloudflare/circl from 1.3.3 to 1.6.1 in /test/flake by [@&#8203;dependabot](https://redirect.github.com/dependabot)\[bot] in [#&#8203;5324](https://redirect.github.com/gruntwork-io/terragrunt/pull/5324) - build(deps): bump golang.org/x/oauth2 from 0.25.0 to 0.27.0 in /test/flake by [@&#8203;dependabot](https://redirect.github.com/dependabot)\[bot] in [#&#8203;5323](https://redirect.github.com/gruntwork-io/terragrunt/pull/5323) - build(deps): bump golang.org/x/crypto from 0.7.0 to 0.45.0 in /test/flake by [@&#8203;dependabot](https://redirect.github.com/dependabot)\[bot] in [#&#8203;5322](https://redirect.github.com/gruntwork-io/terragrunt/pull/5322) **Full Changelog**: <https://github.com/gruntwork-io/terragrunt/compare/v0.97.1...v0.97.2> ### [`v0.97.1`](https://redirect.github.com/gruntwork-io/terragrunt/releases/tag/v0.97.1) [Compare Source](https://redirect.github.com/gruntwork-io/terragrunt/compare/v0.97.0...v0.97.1) #### ✨ New Features ##### All HCL functions instrumented with OpenTelemetry All Terragrunt HCL functions now emit OpenTelemetry spans when they run, making it easier to understand HCL function usage and performance. ##### HCL parsing telemetry improved Additional fidelity has been added to traces emitted during parsing to give insight as to why configuration parsing is being performed, and how. #### 🐛 Bug Fixes ##### `plan -destroy` called correctly for `--filter-affected` A bug in the logic for `--filter-affected` resulted in removed units getting planned/applied instead of being destroyed when users supplied `--filter-allow-destroy`. That bug has been fixed. ##### Nested spans in track parents appropriately even when the `TRACEPARENT` environment variable is used. A bug in the logic for propagating `TRACEPARENT` as the ultimate parent of traces started in Terragrunt prevented child traces from properly tracking parent spans. That bug has been fixed. ##### Reports on runs in worktrees now use relative directories to worktree root Instead of displaying runs of units in Git worktrees during Git-based filter expression runs with the absolute path of their directories in a temporary directory, they now display with the path to the unit relative to the root of the worktree. ##### Unnecessary relationship discovery prevented Discovery of relationships between units has been made opt-in in the discovery process. This will result in no changes to usage of commands like `run --all`, but will significantly improve the performance of commands like `list` and `stack generate`. #### What's Changed - feat: Adding spans for HCL functions by [@&#8203;yhakbar](https://redirect.github.com/yhakbar) in [#&#8203;5306](https://redirect.github.com/gruntwork-io/terragrunt/pull/5306) - feat: Increasing volume and fidelity of config parse telemetry by [@&#8203;yhakbar](https://redirect.github.com/yhakbar) in [#&#8203;5309](https://redirect.github.com/gruntwork-io/terragrunt/pull/5309) - fix: Fixing nested spans by [@&#8203;yhakbar](https://redirect.github.com/yhakbar) in [#&#8203;5305](https://redirect.github.com/gruntwork-io/terragrunt/pull/5305) - fix: Fixing `plan -destroy` for `--filter-affected` by [@&#8203;yhakbar](https://redirect.github.com/yhakbar) in [#&#8203;5295](https://redirect.github.com/gruntwork-io/terragrunt/pull/5295) - fix: Fixing worktree reports by [@&#8203;yhakbar](https://redirect.github.com/yhakbar) in [#&#8203;5308](https://redirect.github.com/gruntwork-io/terragrunt/pull/5308) - fix: Avoiding unnecessary relationship discovery by [@&#8203;yhakbar](https://redirect.github.com/yhakbar) in [#&#8203;5313](https://redirect.github.com/gruntwork-io/terragrunt/pull/5313) - chore: Dropping usage of `MapToSlice` and `StringListInsert` by [@&#8203;yhakbar](https://redirect.github.com/yhakbar) in [#&#8203;5297](https://redirect.github.com/gruntwork-io/terragrunt/pull/5297) - docs: Adding ambassadors by [@&#8203;karlcarstensen](https://redirect.github.com/karlcarstensen) in [#&#8203;5296](https://redirect.github.com/gruntwork-io/terragrunt/pull/5296) - docs: Ambassador Lorelei by [@&#8203;karlcarstensen](https://redirect.github.com/karlcarstensen) in [#&#8203;5302](https://redirect.github.com/gruntwork-io/terragrunt/pull/5302) **Full Changelog**: <https://github.com/gruntwork-io/terragrunt/compare/v0.97.0...v0.97.1> ### [`v0.97.0`](https://redirect.github.com/gruntwork-io/terragrunt/releases/tag/v0.97.0) [Compare Source](https://redirect.github.com/gruntwork-io/terragrunt/compare/v0.96.1...v0.97.0) #### ⚒️ Breaking Changes ##### The `--queue-strict-include` flag is deprecated Terragrunt no longer automatically includes dependencies of included units. As such the `--queue-strict-include` flag is no longer useful in the Terragrunt CLI. The flag has been deprecated, and no longer does anything. This flag will not be removed before 2.0. ##### Run report no longer reports `--queue-exclude-dir` as a reason for exclusion Run reports no longer report on units excluded from runs as a consequence of the `--queue-exclude-dir` flag. ##### The `--units-that-include` flag is deprecated The `--units-that-include` flag is now an alias for the `reading=` attribute filter, just like the `--queue-include-units-reading` flag. Given that the two flags no longer differ in functionality, and that the functionality of the `--units-that-include` is no longer strictly including units that are included, the flag has been deprecated. ##### The `double-star` strict control is complete The globbing behavior of Terragrunt in CLI flags has been updated to match all paths when ending with a trailing `**` . #### 🧪 Experiments Completed ##### The `filter-flag` experiment is completed The `filter-flag` experiment is completed, and the `--filter` flag is now generally available. You can use filter expressions as a single unified API for controlling the Run Queue, replacing the need to use the following CLI flags: | Legacy —queue flag | Equivalent —filter expression | | ---------------------------------------- | --------------------------------- | | `—-queue-include-dir=path` | `—-filter='{./path}'` | | `—-queue-exclude-dir=path` | `—-filter='!{./path}'` | | `--queue-include-units-reading=root.hcl` | `--filter='reading=root.hcl'` | | `--units-that-include=root.hcl` | `--filter='reading=root.hcl'` | | `--queue-include-external-dependencies` | `--filter='{./**}...'` | | `--queue-excludes-file=excludes.txt` | `--filters-file='filters.txt'` \* | | `--graph` | `--filter='...{.}'` | - Note that the file used for the `--queue-excludes-file` does not directly translate to the kind of file you can use for a `--filters-file`. To learn more, see the documentation. The table above also explains the aliasing that has been done internally to replace queue flags with their filter equivalents. The aliasing for these queue flags is present purely for backwards compatibility purposes, but they are not going to emit deprecation warnings, and will not be removed before the Terragrunt 1.0 release. You are heavily encouraged to adopt the new `--filter` flag for your infrastructure targeting needs as soon as feasible in your workflows. It will offer a significantly more flexible and powerful experience. To learn more see the [Filters feature documentation](https://terragrunt.gruntwork.io/docs/features/filter). #### 🐛 Bug Fixes ##### The `get_original_terragrunt_dir()` function is now supported in `terragrunt.stack.hcl` files When authoring explicit stacks, using the `get_original_terragrunt_dir()` HCL function in `terragrunt.stack.hcl` files will now return the directory where the `terragrunt.stack.hcl` file lives, even when the configuration is read from another stack/unit using `read_terragrunt_config()`. ##### Using Git-based expressions with the `--out-dir` flag is fixed When using Git-based expressions using the `--filter` flag, the relative path of units relative to their respective Git worktree roots is used for determining where the plan file will be saved, rather than a path in the relevant Git worktree. ##### Color for output fetching is suppressed more reliably Terragrunt will use `tofu output -json` / `terraform output -json` more reliably when users expect a lack of colors (like when colors are suppressed for Terragrunt). #### What's Changed - fix: Using `testing/synctest` to make `TestWriteUnitLevelSummary` more reliable by [@&#8203;yhakbar](https://redirect.github.com/yhakbar) in [#&#8203;5253](https://redirect.github.com/gruntwork-io/terragrunt/pull/5253) - fix: Fixing report run duplication error by [@&#8203;yhakbar](https://redirect.github.com/yhakbar) in [#&#8203;5252](https://redirect.github.com/gruntwork-io/terragrunt/pull/5252) - fix: improved log error messages by [@&#8203;denis256](https://redirect.github.com/denis256) in [#&#8203;5256](https://redirect.github.com/gruntwork-io/terragrunt/pull/5256) - fix: `get_original_terragrunt_dir` during stack generate by [@&#8203;philipmckenna-symphony](https://redirect.github.com/philipmckenna-symphony) in [#&#8203;5176](https://redirect.github.com/gruntwork-io/terragrunt/pull/5176) - fix: saving of plan in git based filtering by [@&#8203;denis256](https://redirect.github.com/denis256) in [#&#8203;5288](https://redirect.github.com/gruntwork-io/terragrunt/pull/5288) - fix: add no color for dependency fetching by [@&#8203;denis256](https://redirect.github.com/denis256) in [#&#8203;5285](https://redirect.github.com/gruntwork-io/terragrunt/pull/5285) - fix: added git worktree cleanup on errors by [@&#8203;denis256](https://redirect.github.com/denis256) in [#&#8203;5254](https://redirect.github.com/gruntwork-io/terragrunt/pull/5254) - docs: Adding ambassador by [@&#8203;karlcarstensen](https://redirect.github.com/karlcarstensen) in [#&#8203;5261](https://redirect.github.com/gruntwork-io/terragrunt/pull/5261) - docs: Adding ambassador by [@&#8203;karlcarstensen](https://redirect.github.com/karlcarstensen) in [#&#8203;5259](https://redirect.github.com/gruntwork-io/terragrunt/pull/5259) - docs: Adding announcement banner by [@&#8203;karlcarstensen](https://redirect.github.com/karlcarstensen) in [#&#8203;5260](https://redirect.github.com/gruntwork-io/terragrunt/pull/5260) - docs: Documenting backport of queue flags into filter flags by [@&#8203;yhakbar](https://redirect.github.com/yhakbar) in [#&#8203;5263](https://redirect.github.com/gruntwork-io/terragrunt/pull/5263) - docs: Adding ambassador by [@&#8203;karlcarstensen](https://redirect.github.com/karlcarstensen) in [#&#8203;5266](https://redirect.github.com/gruntwork-io/terragrunt/pull/5266) - chore: Cleaning up test symlinks resolution by [@&#8203;yhakbar](https://redirect.github.com/yhakbar) in [#&#8203;5251](https://redirect.github.com/gruntwork-io/terragrunt/pull/5251) - chore: Dropping `ListContains` and `ListEquals` and using standard library instead by [@&#8203;yhakbar](https://redirect.github.com/yhakbar) in [#&#8203;5221](https://redirect.github.com/gruntwork-io/terragrunt/pull/5221) - chore: Adding debug log for assume already applied by [@&#8203;yhakbar](https://redirect.github.com/yhakbar) in [#&#8203;5198](https://redirect.github.com/gruntwork-io/terragrunt/pull/5198) - chore: Removing latest Terraform OSS workflows by [@&#8203;yhakbar](https://redirect.github.com/yhakbar) in [#&#8203;5262](https://redirect.github.com/gruntwork-io/terragrunt/pull/5262) - chore: Backporting queue flags into filter flags by [@&#8203;yhakbar](https://redirect.github.com/yhakbar) in [#&#8203;5241](https://redirect.github.com/gruntwork-io/terragrunt/pull/5241) - chore: on demand no proxy build execution by [@&#8203;denis256](https://redirect.github.com/denis256) in [#&#8203;5277](https://redirect.github.com/gruntwork-io/terragrunt/pull/5277) - chore: opentelemetry and aws dependencies update by [@&#8203;denis256](https://redirect.github.com/denis256) in [#&#8203;5279](https://redirect.github.com/gruntwork-io/terragrunt/pull/5279) #### New Contributors - [@&#8203;philipmckenna-symphony](https://redirect.github.com/philipmckenna-symphony) made their first contribution in [#&#8203;5176](https://redirect.github.com/gruntwork-io/terragrunt/pull/5176) **Full Changelog**: <https://github.com/gruntwork-io/terragrunt/compare/v0.96.1..v.0.97.0> ### [`v0.96.1`](https://redirect.github.com/gruntwork-io/terragrunt/releases/tag/v0.96.1) [Compare Source](https://redirect.github.com/gruntwork-io/terragrunt/compare/v0.96.0...v0.96.1) #### 🧪 Experiments Updated ##### The `--filter-affected` flag has more robust determination of the default branch in a Git repository The `--filter-affected` flag will now use Git plumbing to interrogate the default branch as considered by the remote repository before falling back to interrogating local configurations for determination of a default branch (remember that you must use the [filter-flag experiment](https://terragrunt.gruntwork.io/docs/reference/experiments/#filter-flag) to try this out). ```bash # This is checked first $ git rev-parse --abbrev-ref origin/HEAD # Followed by this $ git ls-remote --symref origin HEAD # Followed with this $ git config init.defaultBranch # If none of the above succeed, the default branch is assumed to be `main`. ``` ##### Git-based filter expressions now warn users when using local state Usage of `--filter` Git-based expressions in combination with local state will now emit a warning, recommending usage of remote states (remember that you must use the [filter-flag experiment](https://terragrunt.gruntwork.io/docs/reference/experiments/#filter-flag) to try this out). ```bash $ terragrunt run --all --filter '[HEAD~1...HEAD]' -- plan 09:30:38.017 WARN One or more units discovered using Git-based filter expressions (e.g. [HEAD~1...HEAD]) do not have a remote_state configuration. This may result in unexpected outcomes, such as outputs for dependencies returning empty. It is strongly recommended to use remote state when working with Git-based filter expressions. ``` See the warning at the [bottom of Git-based expressions documentation](https://terragrunt.gruntwork.io/docs/features/filter/#git-based-expressions) for more information. ##### OpenTelemetry traces added for filter evaluation Filter evaluation now emits OpenTelemetry spans and metrics, including filter resolution details, evaluation duration, and filtering scope. This helps teams analyze performance and pinpoint bottlenecks in filtering with large Terragrunt repositories. <img width="1891" height="493" alt="filter-otel-traces" src="https://github.com/user-attachments/assets/8fbfb5d2-d124-44a5-acb3-33add4c52533" /> #### 🐛 Bug Fixes ##### Path-based filters targeting external paths fixed A bug in the parsing of path-based filter expressions in the `--filter` flag of the [filter-flag experiment](https://terragrunt.gruntwork.io/docs/reference/experiments/#filter-flag) prevented parsing of path-based filters for external paths (e.g. `--filter ../external-dir`). This bug has been fixed. ##### HTTPS Git CAS URLs fixed A bug in the parsing of source URLs with forced usage of the Git protocol (e.g. `git::https://github.com/acme/catalog`) prevented using the [cas experiment](https://terragrunt.gruntwork.io/docs/reference/experiments/#cas) with HTTPS Git URLs with forced usage of the Git protocol. This bug has been fixed. ##### Regression of support for root `terragrunt.hcl` fixed A bug in the processing of `--queue-exclude-dir` resulted in prefix based matching of non-glob expressions in `--queue-exclude-dir` values. This broke backwards compatibility for users with a root `terragrunt.hcl` file instead of a differently named file for the root include (e.g. `root.hcl`). This bug has been fixed. Note that you are still advised to [migrate away from using a root terragrunt.hcl](https://terragrunt.gruntwork.io/docs/migrate/migrating-from-root-terragrunt-hcl/) as soon as possible for your team. We will maintain backwards compatibility until at least 2.0, however. #### What's Changed - feat: add opentelemtry integration in filter flag by [@&#8203;denis256](https://redirect.github.com/denis256) in [#&#8203;5247](https://redirect.github.com/gruntwork-io/terragrunt/pull/5247) - feat: Adding warnings for local state usage with Git-based expressions by [@&#8203;yhakbar](https://redirect.github.com/yhakbar) in [#&#8203;5245](https://redirect.github.com/gruntwork-io/terragrunt/pull/5245) - feat: Use more robust default branch detection in Git-based expressions by [@&#8203;yhakbar](https://redirect.github.com/yhakbar) in [#&#8203;5243](https://redirect.github.com/gruntwork-io/terragrunt/pull/5243) - fix: Fixing parsing of external filters by [@&#8203;yhakbar](https://redirect.github.com/yhakbar) in [#&#8203;5238](https://redirect.github.com/gruntwork-io/terragrunt/pull/5238) - fix: Fixing HTTPS CAS URLs by [@&#8203;yhakbar](https://redirect.github.com/yhakbar) in [#&#8203;5240](https://redirect.github.com/gruntwork-io/terragrunt/pull/5240) - fix: Fixing warnings for how to reproduce tofu runs by [@&#8203;yhakbar](https://redirect.github.com/yhakbar) in [#&#8203;5246](https://redirect.github.com/gruntwork-io/terragrunt/pull/5246) - fix: Fixing regression with support for include of root `terragrunt.hcl` by [@&#8203;yhakbar](https://redirect.github.com/yhakbar) in [#&#8203;5249](https://redirect.github.com/gruntwork-io/terragrunt/pull/5249) - chore: Verify `--queue-include-external` isn't necessary when using the `--filter` flag by [@&#8203;yhakbar](https://redirect.github.com/yhakbar) in [#&#8203;5216](https://redirect.github.com/gruntwork-io/terragrunt/pull/5216) - chore: Verify `--filter` results in minimal parsing by [@&#8203;yhakbar](https://redirect.github.com/yhakbar) in [#&#8203;5229](https://redirect.github.com/gruntwork-io/terragrunt/pull/5229) - chore: Dropping `util.JoinPath` by [@&#8203;yhakbar](https://redirect.github.com/yhakbar) in [#&#8203;5219](https://redirect.github.com/gruntwork-io/terragrunt/pull/5219) - docs: Cleaning up some docs by [@&#8203;yhakbar](https://redirect.github.com/yhakbar) in [#&#8203;5239](https://redirect.github.com/gruntwork-io/terragrunt/pull/5239) **Full Changelog**: <https://github.com/gruntwork-io/terragrunt/compare/v0.96.0...v0.96.1> ### [`v0.96.0`](https://redirect.github.com/gruntwork-io/terragrunt/releases/tag/v0.96.0) [Compare Source](https://redirect.github.com/gruntwork-io/terragrunt/compare/v0.95.1...v0.96.0) #### 🛠️ Breaking Changes ##### The `--no-destroy-dependencies-check` flag has been deprecated The default behavior of Terragrunt with respect to checking dependents during destroys has been inverted. As a consequence the `--no-destroy-dependencies-check` has been deprecated, and a new `--destroy-dependencies-check` flag has been introduced. Previously, Terragrunt would automatically parse all configurations that *might* depend on a unit being destroyed to warn users that the destroyed configuration might orphan other units that depend on it. This was frequently undesirable behavior due to the fact that it introduced additional unnecessary work (parsing all HCL configurations unnecessarily), and could introduce errors if users had unrelated invalid HCL configurations. Terragrunt now requires that users *opt-in* to this behavior via the new `--destroy-dependencies-check` flag, which enables the destroy check, and will not perform the destroy check by default. ```bash terragrunt run --destroy-dependencies-check -- destroy ``` To learn more, see the [no-destroy-dependencies-check](https://terragrunt.gruntwork.io/docs/reference/strict-controls/#no-destroy-dependencies-check) strict control. ##### The `--disable-command-validation` flag has been deprecated Terragrunt no longer performs command name validation when passing commands to OpenTofu/Terraform from Terragrunt when using the `run` command. This makes the `--disable-command-validation` flag unnecessary, as the lack of validation is now the default behavior. Previously, Terragrunt had no way to explicitly indicate that a command being used on the Terragrunt CLI was intended as a passthrough to the OpenTofu/Terraform CLI, so it was important that validation be done on the command being supplied on the Terragrunt CLI. Since completion of the [CLI Redesign](https://redirect.github.com/gruntwork-io/terragrunt/issues/3445), this has changed significantly. Users now have explicit shortcuts on the Terragrunt CLI for common OpenTofu/Terraform commands and an explicit interface for passing through OpenTofu/Terraform commands to the OpenTofu/Terraform CLIs using the `run` command. By removing this validation, Terragrunt will now automatically support new OpenTofu/Terraform commands in future versions of the tools and allow for greater flexibility in [IaC Engines](https://terragrunt.gruntwork.io/docs/features/engine/), as novel commands can be introduced. To learn more, see the [disable-command-validation](https://terragrunt.gruntwork.io/docs/reference/strict-controls/#disable-command-validation) strict control. ##### The `--experimental-engine` flag now enables the `iac-engine` experiment The experimental [IaC Engine](https://terragrunt.gruntwork.io/docs/features/engine/) feature was introduced in Terragrunt prior to the introduction of the experiment system. As such, it wasn’t enabled when users enabled experiment mode, and didn’t have a dedicated section in the [experiments](https://terragrunt.gruntwork.io/docs/reference/experiments/) docs. The `--experimental-engine` flag is now an alias for explicitly enabling the `iac-engine` experiment, and using IaC Engines will be allowed when using Terragrunt in experiment mode. This increases consistency with how experimental features are managed in Terragrunt, and reduces the surface area users have to be aware of in the Terragrunt CLI. ```bash terragrunt run --experiment=iac-engine ``` Note that you can explicitly disable usage of engines now with the `--no-engine` flag, even when the experiment is active. ```bash terragrunt run --experiment=iac-engine --no-engine ``` To learn more, see the [iac-engine](https://terragrunt.gruntwork.io/docs/reference/experiments/#iac-engine) experiment. ##### The `--dependency-fetch-output-from-state` flag now enables the `dependency-fetch-output-from-state` experiment The experimental [—dependency-fetch-output-from-state](https://terragrunt.gruntwork.io/docs/reference/cli/commands/run/#dependency-fetch-output-from-state) flag was introduced in Terragrunt prior to the introduction of the experiment system. As such, it wasn’t enabled when users enabled experiment mode, and didn’t have a dedicated section in the [experiments](https://terragrunt.gruntwork.io/docs/reference/experiments/) docs. The `--dependency-fetch-output-from-state` flag is now an alias for explicitly enabling the `dependency-fetch-output-from-state` experiment, and Terragrunt will automatically attempt to fetch outputs from backend state when in experiment mode. This increases consistency with how experimental features are managed in Terragrunt, and reduces the surface area users have to be aware of in the Terragrunt CLI. ```bash terragrunt run --experiment=dependency-fetch-output-from-state ``` Note that you can explicitly disable fetching output from state with the `--no-dependency-fetch-output-from-state` flag, even when the experiment is active. ```bash terragrunt run --experiment=dependency-fetch-output-from-state --no-dependency-fetch-output-from-state ``` To learn more, see the [dependency-fetch-output-from-state](https://terragrunt.gruntwork.io/docs/reference/experiments/#dependency-fetch-output-from-state) experiment. #### 🧪 Experiments Updated ##### The `filter-flag` experiment now supports the `--filters-file` flag The `--filters-file` flag has been introduced to allow for the application of multiple filters as defined in a newline-delimited text file, similar to the existing `--excludes-file` flag (remember that you must use the [filter-flag](https://terragrunt.gruntwork.io/docs/reference/experiments/#filter-flag) experiment to try this). ```bash # custom-filters.txt !./unstable/** ``` ```bash $ terragrunt find --filters-file custom-filters.txt # No results in `./unstable` discovered. ``` When the `filter-flag` experiment is active, Terragrunt will automatically parse and apply filters found in a `.terragrunt-filters` file, similar to how it automatically parses and applies excludes found in a `.terragrunt-excludes` file. ```bash # .terragrunt-filters !./unstable/** ``` ```bash # Note that it only does this by default when the experiment is active. terragrunt find # Still no results in `./unstable` discovered. ``` To explicitly disable usage of filter files (including the automatic `.terragrunt-filters` file), use the `--no-filters-file` flag. ```bash # .terragrunt-filters !./unstable/** ``` ```bash # Note that it only does this by default when the experiment is active. terragrunt find --no-filters-file # This _will_ allow results in `./unstable` to be discovered. ``` Unlike the `--excludes-file`, usage of the `--filters-file` flag also allows for *always* filtering for particular configurations. ```bash # .terragrunt-filters ./always-include/** ``` To learn more, see the [filters file documentation](https://terragrunt.gruntwork.io/docs/reference/cli/commands/run/#the-filters-file). #### 🐛 Bug Fixes ##### Unnecessary `.terragrunt-cache` directory no longer generated in `run --all` runs Fixed a regression where `run --all` would create empty `.terragrunt-cache` directories in the current working directory, even when not needed. #### What's Changed - feat: Adding `--destroy-dependencies-check` by [@&#8203;yhakbar](https://redirect.github.com/yhakbar) in [#&#8203;5204](https://redirect.github.com/gruntwork-io/terragrunt/pull/5204) - feat: Adding `--filters-file` flag by [@&#8203;yhakbar](https://redirect.github.com/yhakbar) in [#&#8203;5111](https://redirect.github.com/gruntwork-io/terragrunt/pull/5111) - feat: Removing support for `--disable-command-validation` by [@&#8203;yhakbar](https://redirect.github.com/yhakbar) in [#&#8203;5189](https://redirect.github.com/gruntwork-io/terragrunt/pull/5189) - feat: Add `iac-engine` experiment by [@&#8203;yhakbar](https://redirect.github.com/yhakbar) in [#&#8203;5203](https://redirect.github.com/gruntwork-io/terragrunt/pull/5203) - feat: Add `dependency-fetch-output-from-state` experiment by [@&#8203;yhakbar](https://redirect.github.com/yhakbar) in [#&#8203;5201](https://redirect.github.com/gruntwork-io/terragrunt/pull/5201) - fix: Remove unnecessary `.terragrunt-cache` dir at the stack level by [@&#8203;yhakbar](https://redirect.github.com/yhakbar) in [#&#8203;5231](https://redirect.github.com/gruntwork-io/terragrunt/pull/5231) - docs: Documenting `--filters-file` flag by [@&#8203;yhakbar](https://redirect.github.com/yhakbar) in [#&#8203;5112](https://redirect.github.com/gruntwork-io/terragrunt/pull/5112) - docs: Update terminology from 'module' to 'unit' in scaffold.md by [@&#8203;josh-padnick](https://redirect.github.com/josh-padnick) in [#&#8203;5121](https://redirect.github.com/gruntwork-io/terragrunt/pull/5121) - docs: Fix Runner Pool description in terminology section by [@&#8203;maddawik](https://redirect.github.com/maddawik) in [#&#8203;5236](https://redirect.github.com/gruntwork-io/terragrunt/pull/5236) - build(deps): bump actions/upload-artifact from 5 to 6 by [@&#8203;dependabot](https://redirect.github.com/dependabot)\[bot] in [#&#8203;5233](https://redirect.github.com/gruntwork-io/terragrunt/pull/5233) - build(deps): bump actions/download-artifact from 6 to 7 by [@&#8203;dependabot](https://redirect.github.com/dependabot)\[bot] in [#&#8203;5235](https://redirect.github.com/gruntwork-io/terragrunt/pull/5235) - build(deps): bump actions/cache from 4 to 5 by [@&#8203;dependabot](https://redirect.github.com/dependabot)\[bot] in [#&#8203;5234](https://redirect.github.com/gruntwork-io/terragrunt/pull/5234) #### New Contributors - [@&#8203;maddawik](https://redirect.github.com/maddawik) made their first contribution in [#&#8203;5236](https://redirect.github.com/gruntwork-io/terragrunt/pull/5236) **Full Changelog**: <https://github.com/gruntwork-io/terragrunt/compare/v0.95.1...v0.96.0> ### [`v0.95.1`](https://redirect.github.com/gruntwork-io/terragrunt/releases/tag/v0.95.1) [Compare Source](https://redirect.github.com/gruntwork-io/terragrunt/compare/v0.95.0...v0.95.1) #### 🧪 Experiments Updated ##### **The `filter-flag` experiment now supports the `--filter-affected` flag** The `--filter-affected` flag has been introduced as an convenience alias for `--filter [main...HEAD]` (remember that you must use the [filter-flag](https://terragrunt.gruntwork.io/docs/reference/experiments/#filter-flag) experiment to try this). ```bash terragrunt find --filter-affected ``` Note that if you have local Git configurations that results in a different branch being your default branch, that branch will be used instead of `main`. #### 🐛 Bug Fixes ##### Integration of `--queue-strict-include` with `--queue-include-units-reading` fixed A regression in `--queue-strict-include` resulted in empty run queues when using a combination of `--queue-strict-include` with `--queue-include-units-reading`. That bug has been resolved. ##### Integration of `--source` with `run --all` fixed A regression in `--source` prevented it from working correctly in combination with `run --all` , resulting in empty run queues. That bug has been resolved. ##### Integration of Git-expressions with explicit stacks A bug in the implementation of explicit stack generation for Git-expressions prevented stacks from being generated in Git worktrees when using Git-expressions in the `filter-flag` experiment. That bug has been resolved. #### 🧹 Chores ##### Dependencies updates - cloud.google.com/go/storage —> v1.58.0 - github.com/aws/aws-sdk-go-v2 —> v1.41.0 - github.com/hashicorp/go-version —> v1.8.0 - github.com/aws/smithy-go —> v1.24.0 #### What's Changed - feat: Adding `--filter-affected` flag by [@&#8203;yhakbar](https://redirect.github.com/yhakbar) in [#&#8203;5109](https://redirect.github.com/gruntwork-io/terragrunt/pull/5109) - fix: Cleaning up `TestExcludeDirs` tests by [@&#8203;yhakbar](https://redirect.github.com/yhakbar) in [#&#8203;5215](https://redirect.github.com/gruntwork-io/terragrunt/pull/5215) - fix: worktree tests simplification by [@&#8203;denis256](https://redirect.github.com/denis256) in [#&#8203;5217](https://redirect.github.com/gruntwork-io/terragrunt/pull/5217) - chore: Re-enabling `TestAwsDocsTerralithToTerragruntGuide` test by [@&#8203;yhakbar](https://redirect.github.com/yhakbar) in [#&#8203;5220](https://redirect.github.com/gruntwork-io/terragrunt/pull/5220) - fix: Fixing integration of `run --all` with `--source` by [@&#8203;yhakbar](https://redirect.github.com/yhakbar) in [#&#8203;5209](https://redirect.github.com/gruntwork-io/terragrunt/pull/5209) - fix: Fixing Git expressions with explicit stacks by [@&#8203;yhakbar](https://redirect.github.com/yhakbar) in [#&#8203;5223](https://redirect.github.com/gruntwork-io/terragrunt/pull/5223) - fix: Fixing `--queue-strict-include` integration with `--queue-include-units-reading` by [@&#8203;yhakbar](https://redirect.github.com/yhakbar) in [#&#8203;5222](https://redirect.github.com/gruntwork-io/terragrunt/pull/5222) - fix: improved dependency config path validation by [@&#8203;denis256](https://redirect.github.com/denis256) in [#&#8203;5212](https://redirect.github.com/gruntwork-io/terragrunt/pull/5212) - docs: Documenting `--filter-affected` by [@&#8203;yhakbar](https://redirect.github.com/yhakbar) in [#&#8203;5110](https://redirect.github.com/gruntwork-io/terragrunt/pull/5110) - docs: Fixing Git-based docs by [@&#8203;yhakbar](https://redirect.github.com/yhakbar) in [#&#8203;5218](https://redirect.github.com/gruntwork-io/terragrunt/pull/5218) - chore: go cloud dependencies update by [@&#8203;denis256](https://redirect.github.com/denis256) in [#&#8203;5183](https://redirect.github.com/gruntwork-io/terragrunt/pull/5183) **Full Changelog**: <https://github.com/gruntwork-io/terragrunt/compare/v0.95.0...v0.95.1> ### [`v0.95.0`](https://redirect.github.com/gruntwork-io/terragrunt/releases/tag/v0.95.0) [Compare Source](https://redirect.github.com/gruntwork-io/terragrunt/compare/v0.94.0...v0.95.0) #### 🛠️ Breaking Changes ##### The `--queue-exclude-external` flag has been deprecated Previously, Terragrunt would automatically pull in external dependencies (dependencies outside the current working directory when running `terragrunt run --all`) into the run queue. To prevent this behavior, users had to manually supply the `--queue-exclude-external` flag. This has caused significant confusion and unexpected behavior for users over the duration of it’s existence in the Terragrunt CLI. To prevent this unexpected behavior for users and follow the principle of least surprise, this flag has been deprecated and its behavior is now the default in Terragrunt. To explicitly request inclusion of external dependencies in the run queue, use the [—queue-include-external](https://terragrunt.gruntwork.io/docs/reference/cli/commands/run/#queue-include-external) flag. #### ⚙️ Process Updates ##### OpenTofu 1.11.x added to compatibility matrix We are now continuously testing against OpenTofu 1.11.1 in our Continuous Integration testing, and have updated the [compatibility matrix](https://terragrunt.gruntwork.io/docs/reference/supported-versions/) to reflect that. #### 🧪 Updated Experiments ##### The `filter-flag` experiment now supports Git-based expressions The `--filter` flag can now be used to filter units based on changes in Git history (remember that you must use the [filter-flag](https://terragrunt.gruntwork.io/docs/reference/experiments/#filter-flag) experiment to try this). ```bash # Compare between two references terragrunt find --filter '[main...HEAD]' # Shorthand: compare reference to HEAD terragrunt find --filter '[main]' # Compare between specific commits terragrunt find --filter '[abc123...def456]' # Compare between tags terragrunt find --filter '[v1.0.0...v2.0.0]' # Compare using relative references terragrunt find --filter '[HEAD~1...HEAD]' # Compare between branches terragrunt find --filter '[feature-branch...main]' ``` For more information, see the dedicated documentation on [Git-Based Filtering](https://terragrunt.gruntwork.io/docs/features/filter/#git-based-filtering). #### 🐛 Bug Fixes ##### Units now properly flush stdout in `run --all` A regression in unit stdout flushing caused stdout for unit logs to hang pending resolution of `run --all` runs. This regression has been fixed to ensure that logs are streamed in real time again. ##### Queue entries now properly run, even if dependent units are excluded A bug in run queue optimization made it so that excluding the dependent of a unit within a multi-unit run queue would incorrectly exclude the dependency unit from the run queue. This bug has been resolved, and units are now properly included, even if their dependents are excluded. ##### Provider cache server only contacts relevant registries The provider cache server was incorrectly establishing a connection with multiple registries even though only one registry for a given IaC tool run by Terragrunt. For users with network-restricted environments, this could cause problems. Terragrunt will now only contact the relevant registry for a given IaC tool unless users explicitly request for usage of multiple registries. #### 📖 Documentation Updates ##### Provider cache server no longer documented as experimental The [Provider Cache Server](https://terragrunt.gruntwork.io/docs/features/provider-cache-server/) has been used in production by a good portion of the Terragrunt community based on voluntary community reporting. The need for the feature is also mitigated by advances in OpenTofu that makes the [Automatic Provider Cache Dir](https://terragrunt.gruntwork.io/docs/features/auto-provider-cache-dir/) the default solution all Terragrunt users using OpenTofu ≥ v1.10.0. As such, the Provider Cache Server has been promoted to a generally available feature that is exclusively opt-in for users that cannot benefit from the Automatic Provider Cache Dir feature, or are better served by the Provider Cache Server due to scale or platform limitations. #### What's Changed - feat: Adding --filter Git support by [@&#8203;denis256](https://redirect.github.com/denis256) in [#&#8203;5166](https://redirect.github.com/gruntwork-io/terragrunt/pull/5166) - feat: Adding `--filter-allow-destroy` flag by [@&#8203;yhakbar](https://redirect.github.com/yhakbar) in [#&#8203;5210](https://redirect.github.com/gruntwork-io/terragrunt/pull/5210) - fix: filter git improvements by [@&#8203;denis256](https://redirect.github.com/denis256) in [#&#8203;5184](https://redirect.github.com/gruntwork-io/terragrunt/pull/5184) - fix: Remove outdated Bun/Node locking by [@&#8203;yhakbar](https://redirect.github.com/yhakbar) in [#&#8203;5186](https://redirect.github.com/gruntwork-io/terragrunt/pull/5186) - fix: unit output flushing by [@&#8203;denis256](https://redirect.github.com/denis256) in [#&#8203;5193](https://redirect.github.com/gruntwork-io/terragrunt/pull/5193) - fix: Only call necessary registries based on OpenTofu/Terraform usage by [@&#8203;yhakbar](https://redirect.github.com/yhakbar) in [#&#8203;5196](https://redirect.github.com/gruntwork-io/terragrunt/pull/5196) - fix: Ensure queue entries are still marked as ready if they have dependencies/dependents that are excluded by [@&#8203;yhakbar](https://redirect.github.com/yhakbar) in [#&#8203;5194](https://redirect.github.com/gruntwork-io/terragrunt/pull/5194) - fix: Temporarily skipping `TestAwsDocsTerralithToTerragruntGuide` until we get a new release by [@&#8203;yhakbar](https://redirect.github.com/yhakbar) in [#&#8203;5208](https://redirect.github.com/gruntwork-io/terragrunt/pull/5208) - fix: runner pool external dependencies inclusion fix by [@&#8203;denis256](https://redirect.github.com/denis256) in [#&#8203;5199](https://redirect.github.com/gruntwork-io/terragrunt/pull/5199) - docs: Nav revisions by [@&#8203;karlcarstensen](https://redirect.github.com/karlcarstensen) in [#&#8203;5172](https://redirect.github.com/gruntwork-io/terragrunt/pull/5172) - docs: Updating documentation around the provider cache server by [@&#8203;yhakbar](https://redirect.github.com/yhakbar) in [#&#8203;5190](https://redirect.github.com/gruntwork-io/terragrunt/pull/5190) - docs: Documenting stacks limitations by [@&#8203;yhakbar](https://redirect.github.com/yhakbar) in [#&#8203;5188](https://redirect.github.com/gruntwork-io/terragrunt/pull/5188) - docs: Adding new ambassador by [@&#8203;karlcarstensen](https://redirect.github.com/karlcarstensen) in [#&#8203;5211](https://redirect.github.com/gruntwork-io/terragrunt/pull/5211) - docs: Documenting `--filter` Git support by [@&#8203;yhakbar](https://redirect.github.com/yhakbar) in [#&#8203;5108](https://redirect.github.com/gruntwork-io/terragrunt/pull/5108) - chore: Adding `--queue-exclude-dir` / `--filter` equivalence test by [@&#8203;yhakbar](https://redirect.github.com/yhakbar) in [#&#8203;5078](https://redirect.github.com/gruntwork-io/terragrunt/pull/5078) - chore: Upgrade to Opentofu 1.11 by [@&#8203;denis256](https://redirect.github.com/denis256) in [#&#8203;5214](https://redirect.github.com/gruntwork-io/terragrunt/pull/5214) - build(deps): bump actions/checkout from 5 to 6 by [@&#8203;dependabot](https://redirect.github.com/dependabot)\[bot] in [#&#8203;5141](https://redirect.github.com/gruntwork-io/terragrunt/pull/5141) - build(deps): bump DavidAnson/markdownlint-cli2-action from 20 to 21 by [@&#8203;dependabot](https://redirect.github.com/dependabot)\[bot] in [#&#8203;5140](https://redirect.github.com/gruntwork-io/terragrunt/pull/5140) - build(deps): bump mikepenz/action-junit-report from 5 to 6 by [@&#8203;dependabot](https://redirect.github.com/dependabot)\[bot] in [#&#8203;5046](https://redirect.github.com/gruntwork-io/terragrunt/pull/5046) **Full Changelog**: <https://github.com/gruntwork-io/terragrunt/compare/v0.94.0...v0.95.0> ### [`v0.94.0`](https://redirect.github.com/gruntwork-io/terragrunt/releases/tag/v0.94.0) [Compare Source](https://redirect.github.com/gruntwork-io/terragrunt/compare/v0.93.13...v0.94.0) #### ✨ Features - Terraform 1.14: We are now testing Terragrunt against Terraform 1.14 and is confirmed to be working. NOTE: Although this release is marked as backward incompatible, it is functionally compatible as nothing has been changed in Terragrunt internals. The minor version release is useful to mark the change in Terraform version that is being tested. #### What's Changed - chore: add support for Terraform 1.14 by [@&#8203;denis256](https://redirect.github.com/denis256) in [#&#8203;5180](https://redirect.github.com/gruntwork-io/terragrunt/pull/5180) - feat: use common logic for discovery and runner pool by [@&#8203;denis256](https://redirect.github.com/denis256) in [#&#8203;5100](https://redirect.github.com/gruntwork-io/terragrunt/pull/5100) **Full Changelog**: <https://github.com/gruntwork-io/terragrunt/compare/v0.93.13...v0.94.0> ### [`v0.93.13`](https://redirect.github.com/gruntwork-io/terragrunt/releases/tag/v0.93.13) [Compare Source](https://redirect.github.com/gruntwork-io/terragrunt/compare/v0.93.12...v0.93.13) #### 🐛 Bug Fixes ##### Catalog module source URL construction Fixed malformed version-pinned catalog module URLs where `TerraformSourcePath()` incorrectly placed `//moduleDir` after `?ref=`, ensuring correct root and submodule URL formatting. #### What's Changed - fix(catalog): build valid module source URLs for version-pinned modules by [@&#8203;rvelichkov](https://redirect.github.com/rvelichkov) in [#&#8203;5174](https://redirect.github.com/gruntwork-io/terragrunt/pull/5174) - docs: add two additional ambassadors by [@&#8203;karlcarstensen](https://redirect.github.com/karlcarstensen) in [#&#8203;5164](https://redirect.github.com/gruntwork-io/terragrunt/pull/5164) **Full Changelog**: <https://github.com/gruntwork-io/terragrunt/compare/v0.93.12...v0.93.13> ### [`v0.93.12`](https://redirect.github.com/gruntwork-io/terragrunt/releases/tag/v0.93.12) [Compare Source](https://redirect.github.com/gruntwork-io/terragrunt/compare/v0.93.11...v0.93.12) #### 🐛 Bug Fixes ##### False positive errors during dependent units discovery Reduced false-positive log messages emitted while discovering dependent units during destroy operations. #### What's Changed - Terragrunt Ambassadors by [@&#8203;karlcarstensen](https://redirect.github.com/karlcarstensen) in [#&#8203;5138](https://redirect.github.com/gruntwork-io/terragrunt/pull/5138) - Adding Terragrunt Scale FAQ by [@&#8203;karlcarstensen](https://redirect.github.com/karlcarstensen) in [#&#8203;5147](h </details> --- ### Configuration 📅 **Schedule**: Branch creation - "before 9am on tuesday" (UTC), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/immich-app/immich). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi4xOS45IiwidXBkYXRlZEluVmVyIjoiNDIuOTIuMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiY2hhbmdlbG9nOnNraXAiLCJkZXBlbmRlbmNpZXMiLCJyZW5vdmF0ZSJdfQ==--> --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
OVERLORD added the pull-request label 2026-02-05 16:28:05 +03:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: immich-app/immich#17819