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
@@ -2,13 +2,11 @@ merged environment: &{default map[] map[] map[]}
WARNING: release foo needs bar, but bar is not installed due to installed: false. Either mark bar as installed or remove bar from foo's needs
2 release(s) found in helmfile.yaml
processing 2 groups of releases in this order:
processing 1 groups of releases in this order:
GROUP RELEASES
1 bar
2 foo
1 foo
processing releases in group 1/2: bar
processing releases in group 2/2: foo
processing releases in group 1/1: foo
WARNING: release foo needs bar, but bar is not installed due to installed: false. Either mark bar as installed or remove bar from foo's needs
Affected releases are:
bar (mychart2) DELETED