helmfile/test/integration/test-cases/include-needs-transitive
yxxhero 47c7b75ba3 fix: --include-needs should only include direct dependencies (#1003)
--include-needs was incorrectly including transitive dependencies when
it should only include direct dependencies per the documentation.

The issue was that ChartPrepareOptions.IncludeTransitiveNeeds was being
set to c.IncludeNeeds() instead of c.IncludeTransitiveNeeds() in the
chart preparation phase for diff, template, lint, sync, and apply commands.

This fix ensures:
- --include-needs includes only direct dependencies
- --include-transitive-needs includes both direct and transitive dependencies

Fixes #1003

Signed-off-by: yxxhero <yxxhero@users.noreply.github.com>
Signed-off-by: yxxhero <aiopsclub@163.com>
(cherry picked from commit 7a2cbeebb8)
Signed-off-by: yxxhero <aiopsclub@163.com>
2026-03-13 13:21:48 +08:00
..
input fix: --include-needs should only include direct dependencies (#1003) 2026-03-13 13:21:48 +08:00
README.md fix: --include-needs should only include direct dependencies (#1003) 2026-03-13 13:21:48 +08:00

README.md

Test Case: include-needs vs include-transitive-needs

This test case validates the fix for issue #1003.

Issue

--include-needs flag was incorrectly including transitive dependencies when it should only include direct dependencies.

Expected Behavior

--include-needs

When selecting release3 with --include-needs:

  • Should include: release2 (direct dependency) and release3 (selected release)
  • Should NOT include: release1 (transitive dependency of release3 through release2)

--include-transitive-needs

When selecting release3 with --include-transitive-needs:

  • Should include: release1, release2, and release3 (all dependencies in the chain)

Dependency Chain

release1 (no dependencies)
    ↑
release2 (needs release1)
    ↑
release3 (needs release2)

Tests Performed

  1. helmfile template --include-needs - verifies only direct dependencies are included
  2. helmfile template --include-transitive-needs - verifies all dependencies are included
  3. helmfile lint --include-needs - verifies consistency across commands
  4. helmfile diff --include-needs - verifies consistency across commands

References