New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
concretize fails in develop environment when dependencies are also under development #26295
Comments
ping @haampie |
@becker33 once more I would propose to make the specs in the spack:
specs:
- sirius ^kokkos ^nlcglib
develop:
kokkos:
path: /path/to/kokkos
spec: kokkos@develop%clang
nlcglib:
path: /path/to/nlcglib
spec: nlcglib@develop%clang
sirius:
path: /path/to/SIRIUS
spec: sirius@develop+nlcglib%gcc as a workaround? That doesn't look great to me :( If you translate this environment literally into the syntax from the develop-specs-not-packages PR #22087 and run concretize, you get this behavior: spack:
specs:
- sirius
develop:
- spec: kokkos@develop%clang
path: /path/to/kokkos
- spec: nlcglib@develop%clang
path: /path/to/nlcglib--wt-gpu-memory
- spec: sirius@develop+nlcglib%gcc
path: /path/to/SIRIUS--wt-nlcg-gpu-memory from the warnings it's clear that the spack:
specs:
- sirius@develop+nlcglib%gcc ^kokkos@develop%clang ^nlcglib@develop%clang
develop:
- spec: kokkos
path: /path/to/kokkos
- spec: nlcglib
path: /path/to/nlcglib--wt-gpu-memory
- spec: sirius
path: /path/to/SIRIUS--wt-nlcg-gpu-memory and then it concretizes without warning to
which to me seems much easier to understand |
From a discussion with @psakievich: You could also concretize the devs specs like However, in the same discussion we agreed that it'd be nice to be able to compare a dev spec with a stable non-dev spec in one and the same environment, which would be impossible when the dev spec is always imposed as a constraint to the root specs. |
Yes I think that would be going in the wrong direction because we end up constraining what develop specs can do and limit opportunities for future growth. Spack has all the infrastructure to do multiple develop builds with variants of the same spec in one environment, and a scalable build system to boot. It would be a shame to handicap develop specs with a change like this. |
Another idea that follows the spirit of #22087 is to allow users to put the |
Here is a closely related example which fails and for which the above described workaround doesn't help:
fails when using clingo with |
Steps to reproduce
For the following develop environment with the linear chain of dependencies
sirius -> nlcglib -> kokkos
(all under development):Concretization fails with the following error (apparently coming from nlcglib, the first dependency of the root package sirius):
If
^nlcglib@develop
is appended to the root spec of sirius, it will complain with the same message about the latest version of kokkos not matching develop.Error message
Information on your system
General information
spack debug report
and reported the version of Spack/Python/PlatformThe text was updated successfully, but these errors were encountered: