Avoid best-effort expansion of stacks#40792
Conversation
fc2df49 to
625b64d
Compare
|
I don't think we should remove best-effort expansion, because people are actually using it. If I look at the original issue, it seems like to me that the env should emit a warning (or maybe an error? I don't really care) if a variant couldn't apply to any spec in the matrix, but I wouldn't remove best-effort expansion. That said, I agree that the current way we handle this is somewhat inconsistent. In particular I think we could adopt the change in this PR if we still had a way to do best-effort. Something like: spack:
specs:
- zstd
- prefer: +shrdWhere |
For what is worth, best-effort expansion is only used with |
625b64d to
98d787e
Compare
|
@tgamblin We have a |
|
Ping @tgamblin |
98d787e to
23da877
Compare
23da877 to
60b45f7
Compare
fixes spack#40791 Currently stacks behave differently if used in unify:false environments, which leads to inconsistencies during concretization. For instance, we might have two abstract user specs that do not intersect with each other map to the same concrete spec in the environment. This is clearly wrong. This PR removes the best effort expansion, so that user specs are always applied strictly.
60b45f7 to
b9b28dd
Compare
|
Since #45215 it doesn't make much sense to keep best-effort expansion. It was never supported by the new concretizer. |

fixes #40791
Currently, stacks behave differently if used in unify:false environments, which leads to inconsistencies during concretization.
For instance, we might have two abstract user specs that do not intersect with each other map to the same concrete spec in the environment. This is clearly wrong.
This PR removes the best effort expansion, so that user specs are always applied strictly.