fix: restore withNeeds DAG behavior and regenerate snapshots

- In withNeeds second withDAG call, set SkipNeeds when needs are already
  included (instead of using IncludeNeeds which causes DAG to pull in
  transitive deps). This is the key fix for --include-needs only including
  direct dependencies.
- In GroupReleasesByDependency, use WithDependencies from opts.IncludeNeeds
  only when SelectedReleases is explicitly provided (withDAG path).
  When using the Filtered flag path, needs are already handled by
  markExcludedReleases.
- Regenerate test snapshots to reflect correct behavior where
  --include-needs excludes transitive dependencies.
- Restore diff_test.go and diff_nokubectx_test.go from main for
  non-include-needs test cases.

Co-authored-by: yxxhero <11087727+yxxhero@users.noreply.github.com>
Agent-Logs-Url: https://github.com/helmfile/helmfile/sessions/170cecc0-7a3e-4326-98d3-4f2bffee1848
This commit is contained in:
copilot-swe-agent[bot]
2026-03-25 00:33:45 +00:00
co-authored by yxxhero
parent ed823115f1
commit afdb6ccdab
27 changed files with 120 additions and 170 deletions
@@ -22,7 +22,7 @@ rendering result of "helmfile.yaml.gotmpl.part.0":
19:
merged environment: &{default map[] map[] map[]}
3 release(s) matching name=serviceA found in helmfile.yaml.gotmpl
1 release(s) matching name=serviceA found in helmfile.yaml.gotmpl
Affected releases are:
serviceA (my/chart) UPDATED