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:
		 Greg Becker
					Greg Becker
				
			
				
					committed by
					
						 Peter Scheibel
						Peter Scheibel
					
				
			
			
				
	
			
			
			 Peter Scheibel
						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