From b42ef1e7b8e46f1632b5d21dee0d5138fa659db4 Mon Sep 17 00:00:00 2001 From: Greg Becker Date: Wed, 30 Apr 2025 14:51:19 -0700 Subject: [PATCH] spack solve: respect unify:false config (#50243) ---------- Signed-off-by: Gregory Becker --- lib/spack/spack/cmd/solve.py | 41 ++++++++++++++++++++++++------------ 1 file changed, 27 insertions(+), 14 deletions(-) diff --git a/lib/spack/spack/cmd/solve.py b/lib/spack/spack/cmd/solve.py index cd210348ab5..e7698119a97 100644 --- a/lib/spack/spack/cmd/solve.py +++ b/lib/spack/spack/cmd/solve.py @@ -136,20 +136,7 @@ def solve(parser, args): setup_only = set(show) == {"asp"} unify = spack.config.get("concretizer:unify") allow_deprecated = spack.config.get("config:deprecated", False) - if unify != "when_possible": - # set up solver parameters - # Note: reuse and other concretizer prefs are passed as configuration - result = solver.solve( - specs, - out=output, - timers=args.timers, - stats=args.stats, - setup_only=setup_only, - allow_deprecated=allow_deprecated, - ) - if not setup_only: - _process_result(result, show, required_format, kwargs) - else: + if unify == "when_possible": for idx, result in enumerate( solver.solve_in_rounds( specs, @@ -166,3 +153,29 @@ def solve(parser, args): print("% END ROUND {0}\n".format(idx)) if not setup_only: _process_result(result, show, required_format, kwargs) + elif unify: + # set up solver parameters + # Note: reuse and other concretizer prefs are passed as configuration + result = solver.solve( + specs, + out=output, + timers=args.timers, + stats=args.stats, + setup_only=setup_only, + allow_deprecated=allow_deprecated, + ) + if not setup_only: + _process_result(result, show, required_format, kwargs) + else: + for spec in specs: + tty.msg("SOLVING SPEC:", spec) + result = solver.solve( + [spec], + out=output, + timers=args.timers, + stats=args.stats, + setup_only=setup_only, + allow_deprecated=allow_deprecated, + ) + if not setup_only: + _process_result(result, show, required_format, kwargs)