Error when an anonymous spec is required for a virtual package (#49385)
When requiring a constraint on a virtual package, it makes little sense to use anonymous specs, and our documentation shows no example of requirements on virtual packages starting with `^`. Right now, due to how `^` is implemented in the solver, writing: ```yaml mpi: require: "^openmpi" ``` is equivalent to the more correct form: ```yaml mpi: require: "openmpi" ``` but the situation will change when `%` will shift its meaning to be a direct dependency. To avoid later errors that are both unclear, and quite slow to get to the user, this commit makes anonymous specs under virtual requirements an error, and shows a clear error message pointing to the file and line where the spec needs to be changed. Signed-off-by: Massimiliano Culpo <massimiliano.culpo@gmail.com>
This commit is contained in:

committed by
GitHub

parent
4cb4634c74
commit
d352b71df0
@@ -25,7 +25,7 @@ spack:
|
||||
# Minimize LLVM
|
||||
variants: ~lldb~lld~libomptarget~polly~gold libunwind=none compiler-rt=none
|
||||
libllvm:
|
||||
require: ["^llvm"]
|
||||
require: ["llvm"]
|
||||
visit:
|
||||
require: ["@3.4.1"]
|
||||
|
||||
|
Reference in New Issue
Block a user