Skip to content

Conversation

@atmask
Copy link

@atmask atmask commented Nov 27, 2025

Description

Fixes #5124 .

The --queue-exclude-dir flag was not preventing the parsing of excluded directories during dependency discovery. This caused parsing errors when using Terragrunt stacks with template modules whose terragrunt.hcl files reference stack-specific values (e.g., ${values.env}, ${values.project}).

Why this was an issue:

  • Template modules in stacks often use variables that only exist in the generated stack context
  • During discovery, Terragrunt would still parse excluded directories even though they were excluded from execution
  • This caused parsing failures because the stack variables weren't available outside their stack context
  • Users couldn't effectively exclude template directories to avoid these errors

Available workarounds were the use of

  • --queue-include-dir in tandem with --queue-strict-include
  • Adding a mock set of values into a terragrunt.values.hcl in the module to statisfy the parsing during discovery

Solution

Commit f3f7dd7: Core Implementation

  • Added shouldSkipParsing() method to check if a component matches exclude patterns
  • Modified parseConcurrently() to skip parsing for components that match --queue-exclude-dir patterns
  • Excluded directories are still discovered (for reporting) but never parsed

Commit 7f08f13: Test Coverage

  • Added TestStacksGenerateExcludeModuleWithStackVariablesintegration test
  • Created test fixture with template modules using stack variables (${values.env})
  • Verifies that --queue-exclude-dir '**/module' in tandem with the fix prevents parsing errors while still processing generated stack units

Note: I reverted the fix after adding the test and validated that it accurately fails prior to commit f3f7dd7 with expected errors and is resolved after the proposed changes

Testing

Run the new integration test:

go test -v -run TestStacksGenerateExcludeModuleWithStackVariables ./test

The test verifies that:

  • Template modules with stack variables can be excluded without parsing errors
  • Generated stack units are still properly discovered and processed
  • The --queue-exclude-dir flag works as expected in stack workflows

All tests defined in discovery_test.go pass

TODOs

Read the Gruntwork contribution guidelines.

  • I authored this code entirely myself
  • I am submitting code based on open source software (e.g. MIT, MPL-2.0, Apache)]
  • N/A: I am adding or upgrading a dependency or adapted code and confirm it has a compatible open source license
  • N/A (Bug fix): Update the docs.
  • Run the relevant tests successfully, including pre-commit checks.
  • Include release notes. If this PR is backward incompatible, include a migration guide.

Release Notes (draft)

Discovery phase no longer parses directories matched by --queue-include-dir glob mitigating failures from the use of values referenced in generated stacks

Summary by CodeRabbit

  • New Features

    • Directory exclusion via --queue-exclude-dir: excluded directories are still discovered/reported but skipped during parsing.
  • Tests

    • Added an integration test validating exclude-dir behavior with stack/template modules and stack variables.
  • Chores

    • Added stack/module fixture files demonstrating template modules that should be excluded to avoid parsing errors.

✏️ Tip: You can customize this high-level summary in your review settings.

@vercel
Copy link

vercel bot commented Nov 27, 2025

@atmask is attempting to deploy a commit to the Gruntwork Team on Vercel.

A member of the Team first needs to authorize it.

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Nov 27, 2025

📝 Walkthrough

Walkthrough

Skips parsing of discovered components whose paths match configured exclude-directory patterns while still discovering and reporting them; wires ExcludeDirs into discovery; adds fixtures and an integration test validating excluded template modules are discovered but not parsed.

Changes

Cohort / File(s) Summary
Discovery parsing change
internal/discovery/discovery.go
Adds private helper shouldSkipParsing and integrates it into parseConcurrently so components matching precompiled exclude patterns are skipped during parsing (logged at debug) but remain discovered/reported.
Runnerpool → discovery wiring
internal/runner/runnerpool/builder.go
Passes ExcludeDirs to discovery via WithExcludeDirs when non-empty and updates comments/flow to reflect discovery reports excluded units while skipping their parse.
Test fixtures (template module stack)
test/fixtures/stacks/exclude-template-module/live/project-A/..., test/fixtures/stacks/exclude-template-module/live/project-B/...
Adds fixture trees for project-A and project-B, including module/main.tf (adds variable "environment" and output "environment"), module/terragrunt.hcl, and terragrunt.stack.hcl describing staging/production units that source the module.
Integration test
test/integration_stacks_test.go
Adds testFixtureStackExcludeTemplateModule constant and TestStacksGenerateExcludeModuleWithStackVariables to assert --queue-exclude-dir excludes template modules from parsing while queued units remain correct.

Sequence Diagram(s)

sequenceDiagram
    participant Client
    participant Discovery
    participant ExcludeChecker
    participant Parser

    Client->>Discovery: Start discovery (with ExcludeDirs)
    Discovery->>ExcludeChecker: Evaluate discovered component path
    alt matches exclude pattern
        ExcludeChecker-->>Discovery: mark as excluded (skip parsing)
        Note right of Discovery `#dfefff`: Component is discovered and reported\nbut not parsed
    else not excluded
        ExcludeChecker-->>Discovery: allow parsing
        Discovery->>Parser: enqueue parse task
        Parser->>Parser: parse component config
    end
    Discovery->>Client: return discovery results (includes excluded entries)
Loading

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

  • Review focus:
    • correctness and edge cases of exclude-pattern matching in shouldSkipParsing
    • that excluded units remain present in discovery/report outputs
    • interaction with external-dependency discovery and existing runner expectations

Possibly related PRs

Suggested reviewers

  • ThisGuyCodes
  • denis256
  • yhakbar

Pre-merge checks and finishing touches

❌ Failed checks (1 warning)
Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 25.00% which is insufficient. The required threshold is 80.00%. You can run @coderabbitai generate docstrings to improve docstring coverage.
✅ Passed checks (4 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly and specifically describes the main change: preventing parsing of excluded directories during the discovery phase, which directly addresses the core issue.
Description check ✅ Passed The PR description is comprehensive and well-structured, covering the problem, root cause, implementation details across two commits, test coverage, and release notes as required by the template.
Linked Issues check ✅ Passed The PR implementation directly addresses issue #5124 by adding shouldSkipParsing() to skip parsing excluded directories while preserving discovery for reporting, fully meeting the stated requirements.
Out of Scope Changes check ✅ Passed All changes are scoped to fixing issue #5124: core implementation in discovery.go and builder.go, test fixture setup, and integration test. No unrelated changes detected.
✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment

📜 Recent review details

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between c39f4a7 and 49aaa62.

📒 Files selected for processing (7)
  • test/fixtures/stacks/exclude-template-module/live/project-A/module/main.tf (1 hunks)
  • test/fixtures/stacks/exclude-template-module/live/project-A/module/terragrunt.hcl (1 hunks)
  • test/fixtures/stacks/exclude-template-module/live/project-A/terragrunt.stack.hcl (1 hunks)
  • test/fixtures/stacks/exclude-template-module/live/project-B/module/main.tf (1 hunks)
  • test/fixtures/stacks/exclude-template-module/live/project-B/module/terragrunt.hcl (1 hunks)
  • test/fixtures/stacks/exclude-template-module/live/project-B/terragrunt.stack.hcl (1 hunks)
  • test/integration_stacks_test.go (2 hunks)
🚧 Files skipped from review as they are similar to previous changes (5)
  • test/fixtures/stacks/exclude-template-module/live/project-A/module/main.tf
  • test/fixtures/stacks/exclude-template-module/live/project-B/terragrunt.stack.hcl
  • test/fixtures/stacks/exclude-template-module/live/project-A/module/terragrunt.hcl
  • test/fixtures/stacks/exclude-template-module/live/project-B/module/terragrunt.hcl
  • test/integration_stacks_test.go
🧰 Additional context used
🧠 Learnings (1)
📚 Learning: 2025-11-03T04:40:01.000Z
Learnt from: ThisGuyCodes
Repo: gruntwork-io/terragrunt PR: 5041
File: test/fixtures/hclvalidate/valid/duplicate-attributes-in-required-providers/main.tf:2-7
Timestamp: 2025-11-03T04:40:01.000Z
Learning: In the terragrunt repository, test fixtures under test/fixtures/hclvalidate/valid/ are intentionally testing that INPUT validation succeeds even when Terraform code contains syntax errors or other issues unrelated to input validation (e.g., duplicate attributes, circular references, invalid locals). The "valid" designation means "valid for input validation purposes" not "syntactically valid Terraform/OpenTofu code".

Applied to files:

  • test/fixtures/stacks/exclude-template-module/live/project-A/terragrunt.stack.hcl
🔇 Additional comments (2)
test/fixtures/stacks/exclude-template-module/live/project-B/module/main.tf (1)

1-8: Fixture module is correctly structured.

This reusable Terraform module properly accepts an environment input and exposes it as an output, which is exactly what the test scenario requires for validating excluded-dir behavior.

test/fixtures/stacks/exclude-template-module/live/project-A/terragrunt.stack.hcl (1)

1-18: Fixture correctly models the excluded-module scenario.

The stack configuration properly demonstrates the use case: a template module sourced from two units with stack-specific values (env). This fixtures validates that the PR's solution—discovering but not parsing excluded directories—resolves the parsing failure that would occur if the module were parsed outside its stack context.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@atmask atmask changed the title Issue 5124 do not parse excluded Do not parse excluded dirs during discovery phase Nov 27, 2025
@atmask atmask changed the title Do not parse excluded dirs during discovery phase fix: Do not parse excluded dirs during discovery phase Nov 27, 2025
Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 0

🧹 Nitpick comments (3)
test/fixtures/stacks/exclude-template-module/live/project-A/module/terragrunt.hcl (1)

1-20: Tidy minor comment typos for clarity

The behavior here (cross‑project dependency plus values.env input) matches the intended scenario. Two tiny nits you might consider cleaning up:

  • Line 1: dpeendencydependency.
  • Lines 16–17: the comment talks about ${values} but the code actually uses values.env; aligning the wording would reduce potential confusion for future readers.
internal/runner/runnerpool/builder.go (1)

68-72: ExcludeDirs wiring into discovery matches intended behavior

Passing terragruntOptions.ExcludeDirs into NewDiscovery via WithExcludeDirs is the right place to ensure components matched by --queue-exclude-dir are still discovered but skipped during parsing.

One small polish point: the later comment on Lines 86–87 (“Exclude patterns are handled by the unit resolver…”) now overlaps with the new comment here. Consider rephrasing those two comments together (e.g., noting that discovery uses ExcludeDirs to skip parsing while the resolver uses them for reporting/queuing) so future readers see a single, consistent story about how excludes flow through the system.

test/integration_stacks_test.go (1)

130-150: New integration test correctly guards the regression; tighten comments/expectations

The test setup and command look solid:

  • Uses the new fixture path and CopyEnvironment/CleanupTerraformFolder in the same way as other stack tests.
  • Runs terragrunt stack run plan with --queue-exclude-dir '**/module' from the live root, matching the scenario from the linked issue.
  • Asserts that all four generated units for project A/B, staging/production, appear in the execution queue and that the command succeeds, which would have failed before the fix.

A couple of small refinements you might consider:

  • Line 145’s comment says “only the app unit is in the execution queue (not the module-based one)”, but we actually assert four units here. Rewording this to something like “only the generated stack units are queued (template modules are excluded)” would be clearer.
  • Optionally, to make the regression more explicit, you could also assert that stderr does not contain the original failure message (e.g., There is no variable named "values"), or that no module/ paths appear as units, which would more directly encode the previous bug behavior.
📜 Review details

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 30c5e92 and 7f08f13.

📒 Files selected for processing (9)
  • internal/discovery/discovery.go (2 hunks)
  • internal/runner/runnerpool/builder.go (1 hunks)
  • test/fixtures/stacks/exclude-template-module/live/project-A/module/main.tf (1 hunks)
  • test/fixtures/stacks/exclude-template-module/live/project-A/module/terragrunt.hcl (1 hunks)
  • test/fixtures/stacks/exclude-template-module/live/project-A/terragrunt.stack.hcl (1 hunks)
  • test/fixtures/stacks/exclude-template-module/live/project-B/module/main.tf (1 hunks)
  • test/fixtures/stacks/exclude-template-module/live/project-B/module/terragrunt.hcl (1 hunks)
  • test/fixtures/stacks/exclude-template-module/live/project-B/terragrunt.stack.hcl (1 hunks)
  • test/integration_stacks_test.go (2 hunks)
🧰 Additional context used
📓 Path-based instructions (1)
**/*.go

⚙️ CodeRabbit configuration file

Review the Go code for quality and correctness. Make sure that the Go code follows best practices, is performant, and is easy to understand and maintain.

Files:

  • internal/runner/runnerpool/builder.go
  • internal/discovery/discovery.go
  • test/integration_stacks_test.go
🧠 Learnings (2)
📚 Learning: 2025-11-03T04:40:01.000Z
Learnt from: ThisGuyCodes
Repo: gruntwork-io/terragrunt PR: 5041
File: test/fixtures/hclvalidate/valid/duplicate-attributes-in-required-providers/main.tf:2-7
Timestamp: 2025-11-03T04:40:01.000Z
Learning: In the terragrunt repository, test fixtures under test/fixtures/hclvalidate/valid/ are intentionally testing that INPUT validation succeeds even when Terraform code contains syntax errors or other issues unrelated to input validation (e.g., duplicate attributes, circular references, invalid locals). The "valid" designation means "valid for input validation purposes" not "syntactically valid Terraform/OpenTofu code".

Applied to files:

  • test/fixtures/stacks/exclude-template-module/live/project-A/terragrunt.stack.hcl
  • test/fixtures/stacks/exclude-template-module/live/project-B/module/terragrunt.hcl
  • test/integration_stacks_test.go
📚 Learning: 2025-02-10T23:20:04.295Z
Learnt from: yhakbar
Repo: gruntwork-io/terragrunt PR: 3868
File: docs-starlight/patches/@astrojs%[email protected]:33-33
Timestamp: 2025-02-10T23:20:04.295Z
Learning: In Terragrunt projects, all `.hcl` files can be assumed to be Terragrunt configurations by default, with specific exceptions like `.terraform.lock.hcl` that need explicit handling.

Applied to files:

  • test/fixtures/stacks/exclude-template-module/live/project-B/terragrunt.stack.hcl
  • test/fixtures/stacks/exclude-template-module/live/project-B/module/terragrunt.hcl
🧬 Code graph analysis (2)
internal/discovery/discovery.go (3)
internal/component/component.go (1)
  • Component (23-46)
util/file.go (1)
  • CanonicalPath (88-99)
pkg/log/log.go (1)
  • Debugf (72-74)
test/integration_stacks_test.go (2)
test/helpers/package.go (3)
  • CleanupTerraformFolder (882-889)
  • CopyEnvironment (89-105)
  • RunTerragruntCommandWithOutput (1007-1011)
util/file.go (1)
  • JoinPath (626-628)
🔇 Additional comments (8)
test/fixtures/stacks/exclude-template-module/live/project-B/module/terragrunt.hcl (1)

1-9: Fixture correctly exercises stack-only values usage

This module config is minimal and correctly uses values.env to trigger the previous parsing issue when module/ isn’t excluded. Looks good as a focused regression fixture.

test/fixtures/stacks/exclude-template-module/live/project-A/module/main.tf (1)

1-7: Straightforward variable/output wiring

Defining environment as a string variable and re‑exposing it via an output is idiomatic and sufficient for the fixture’s needs.

test/fixtures/stacks/exclude-template-module/live/project-B/terragrunt.stack.hcl (1)

1-18: Stack fixture matches intended exclusion scenario

The two units (staging, production) sourcing ./module with values.env set provide a clear template‑module stack for exercising the exclude‑dir behavior. Comments accurately describe why module/ must be excluded.

test/fixtures/stacks/exclude-template-module/live/project-B/module/main.tf (1)

1-7: Symmetric variable/output definition is fine

Mirroring Project A’s environment variable/output keeps the fixtures consistent and is sufficient for the dependency/mocking use case.

test/fixtures/stacks/exclude-template-module/live/project-A/terragrunt.stack.hcl (1)

1-18: Project A stack fixture aligns with Project B and test expectations

Defining staging and production units that source ./module and set values.env matches the pattern used for Project B and lines up with the integration test’s expectation of four generated units.

test/integration_stacks_test.go (1)

52-58: Fixture constant addition is consistent

Adding testFixtureStackExcludeTemplateModule follows the existing naming and layout pattern for stack fixtures and is correctly referenced by the new test.

internal/discovery/discovery.go (2)

905-924: LGTM! Clean implementation of parse-skipping logic.

The shouldSkipParsing method correctly implements the exclusion check with appropriate safeguards:

  • Early return when no patterns exist
  • Safe default (don't skip) when path canonicalization fails
  • Uses precompiled patterns for efficient matching

The approach aligns with the PR objective to skip parsing excluded directories while still discovering them for reporting.


943-948: LGTM! Correct integration of exclusion check.

The integration properly prevents parsing of excluded components while preserving discovery. The debug log message provides good visibility for troubleshooting, and the inline comment clearly explains the intended behavior.

This correctly implements the fix for issue #5124 where excluded directories were being parsed during discovery despite being excluded from execution.

@atmask atmask force-pushed the issue-5124-do-not-parse-excluded branch from 7f08f13 to c39f4a7 Compare November 27, 2025 01:20
Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 0

🧹 Nitpick comments (3)
internal/runner/runnerpool/builder.go (1)

68-72: ExcludeDirs wiring into discovery looks correct; consider updating comment to reflect new behavior

Passing terragruntOptions.ExcludeDirs via WithExcludeDirs is exactly what’s needed so discovery can decide not to parse excluded components while still discovering them. Functionally this aligns with the PR’s intent.

The later comment (“Exclude patterns are handled by the unit resolver to ensure proper reporting”) is now slightly misleading, since excludes are also honored earlier in discovery for parsing. Consider rewording it to clarify that:

  • discovery uses ExcludeDirs to skip parsing, and
  • the resolver still accounts for exclude patterns when building/reporting the final unit set.

Also applies to: 86-88

test/integration_stacks_test.go (1)

52-52: New exclude-template-module fixture and test are consistent with existing patterns

The new fixture constant and TestStacksGenerateExcludeModuleWithStackVariables follow the existing testing conventions (cleanup, CopyEnvironment, JoinPath, RunTerragruntCommandWithOutput, and stderr assertions) and clearly exercise the --queue-exclude-dir '**/module' behavior. The test validates both that:

  • the command no longer fails when template modules reference stack-only values, and
  • the expected stack units for project A and B appear in the execution queue.

Two small, optional tighten-ups:

  • The comment “Verify only the app unit is in the execution queue (not the module-based one)” doesn’t currently have a corresponding negative assertion. You could add an assert.NotContains on whatever module path would appear in stderr to fully lock in the behavior.
  • If there’s a single “app unit” conceptually, consider rephrasing the comment to match the four asserted units, or make it explicit that you’re checking for “only stack-generated units (no module/* units)”.

Also applies to: 130-150

test/fixtures/stacks/exclude-template-module/live/project-A/module/terragrunt.hcl (1)

1-20: Dependency wiring looks good; minor comment typo

The Terragrunt dependency on Project B’s stack and the use of values.env in both config_path and inputs correctly model a template module that must not be parsed outside the stack context, which is exactly what this PR is testing.

Only nit: the header comment has a typo (dpeendencydependency). If you touch this file again, it’s worth fixing for clarity:

# Project A dependency on Project B using values
📜 Review details

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 7f08f13 and c39f4a7.

📒 Files selected for processing (9)
  • internal/discovery/discovery.go (2 hunks)
  • internal/runner/runnerpool/builder.go (1 hunks)
  • test/fixtures/stacks/exclude-template-module/live/project-A/module/main.tf (1 hunks)
  • test/fixtures/stacks/exclude-template-module/live/project-A/module/terragrunt.hcl (1 hunks)
  • test/fixtures/stacks/exclude-template-module/live/project-A/terragrunt.stack.hcl (1 hunks)
  • test/fixtures/stacks/exclude-template-module/live/project-B/module/main.tf (1 hunks)
  • test/fixtures/stacks/exclude-template-module/live/project-B/module/terragrunt.hcl (1 hunks)
  • test/fixtures/stacks/exclude-template-module/live/project-B/terragrunt.stack.hcl (1 hunks)
  • test/integration_stacks_test.go (2 hunks)
🚧 Files skipped from review as they are similar to previous changes (4)
  • test/fixtures/stacks/exclude-template-module/live/project-B/terragrunt.stack.hcl
  • test/fixtures/stacks/exclude-template-module/live/project-A/terragrunt.stack.hcl
  • internal/discovery/discovery.go
  • test/fixtures/stacks/exclude-template-module/live/project-B/module/main.tf
🧰 Additional context used
📓 Path-based instructions (1)
**/*.go

⚙️ CodeRabbit configuration file

Review the Go code for quality and correctness. Make sure that the Go code follows best practices, is performant, and is easy to understand and maintain.

Files:

  • internal/runner/runnerpool/builder.go
  • test/integration_stacks_test.go
🧠 Learnings (2)
📚 Learning: 2025-02-10T23:20:04.295Z
Learnt from: yhakbar
Repo: gruntwork-io/terragrunt PR: 3868
File: docs-starlight/patches/@astrojs%[email protected]:33-33
Timestamp: 2025-02-10T23:20:04.295Z
Learning: In Terragrunt projects, all `.hcl` files can be assumed to be Terragrunt configurations by default, with specific exceptions like `.terraform.lock.hcl` that need explicit handling.

Applied to files:

  • test/fixtures/stacks/exclude-template-module/live/project-B/module/terragrunt.hcl
📚 Learning: 2025-11-03T04:40:01.000Z
Learnt from: ThisGuyCodes
Repo: gruntwork-io/terragrunt PR: 5041
File: test/fixtures/hclvalidate/valid/duplicate-attributes-in-required-providers/main.tf:2-7
Timestamp: 2025-11-03T04:40:01.000Z
Learning: In the terragrunt repository, test fixtures under test/fixtures/hclvalidate/valid/ are intentionally testing that INPUT validation succeeds even when Terraform code contains syntax errors or other issues unrelated to input validation (e.g., duplicate attributes, circular references, invalid locals). The "valid" designation means "valid for input validation purposes" not "syntactically valid Terraform/OpenTofu code".

Applied to files:

  • test/fixtures/stacks/exclude-template-module/live/project-B/module/terragrunt.hcl
  • test/integration_stacks_test.go
🧬 Code graph analysis (1)
test/integration_stacks_test.go (2)
test/helpers/package.go (3)
  • CleanupTerraformFolder (882-889)
  • CopyEnvironment (89-105)
  • RunTerragruntCommandWithOutput (1007-1011)
util/file.go (1)
  • JoinPath (626-628)
🔇 Additional comments (2)
test/fixtures/stacks/exclude-template-module/live/project-B/module/terragrunt.hcl (1)

1-9: Fixture correctly exercises values-only-in-stack context

This module intentionally references values.env so that standalone parsing would fail, which is exactly what the exclude-dir behavior is meant to protect against. The comments clearly document this; no changes needed.

test/fixtures/stacks/exclude-template-module/live/project-A/module/main.tf (1)

1-7: Terraform wiring for environment is straightforward and consistent

The variable and output definitions are minimal and correct for passing environment through this module in the stack fixtures.

@denis256
Copy link
Member

Failed on codespell

./test/fixtures/stacks/exclude-template-module/live/project-A/module/terragrunt.hcl:1: dpeendency ==> dependency

@atmask atmask force-pushed the issue-5124-do-not-parse-excluded branch from c39f4a7 to 49aaa62 Compare November 27, 2025 14:20
@atmask
Copy link
Author

atmask commented Nov 27, 2025

Failed on codespell

./test/fixtures/stacks/exclude-template-module/live/project-A/module/terragrunt.hcl:1: dpeendency ==> dependency

Thanks, fixed that typo and a misleading comment in the latest push.

@atmask
Copy link
Author

atmask commented Dec 3, 2025

@denis256 any chance I get another look at this when you're able?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

--queue-exclude-dir still parses excluded directories during dependency discovery, breaking explicit stack-based workflows

2 participants