bugfix: spack stacks mixed dependency and non-dep constraints (#12315)
Spack stacks drop invalid dependencies applied to packages by a
spec_list matrix operation
Without this fix, Spack would raise an error if orthogonal dependency
constraints and non-dependency constraints were applied to the same
package by a matrix and the dependency constraint was invalid for
that package. This is an error, fixed by this PR.
An example failing configuration:
spack:
definitions:
- packages: [libelf, hdf5+mpi]
- compilers: ['%gcc']
- mpis: [^openmpi]
specs:
- matrix:
- $packages
- $compilers
- $mpis
This commit is contained in:
committed by
Peter Scheibel
parent
a791234676
commit
36fbd6cf4c
@@ -1346,7 +1346,7 @@ def _concretize_from_constraints(spec_constraints):
|
||||
for d in invalid_msg.split()
|
||||
if d != 'or']
|
||||
invalid_deps = [c for c in spec_constraints
|
||||
if any(c.satisfies(invd)
|
||||
if any(c.satisfies(invd, strict=True)
|
||||
for invd in invalid_deps_string)]
|
||||
if len(invalid_deps) != len(invalid_deps_string):
|
||||
raise e
|
||||
|
||||
Reference in New Issue
Block a user