Which variant resolution strategy does Spack apply when cached binaries and explicit +flag specifications coexist?
26.2K reputation · 13 Aug 2022, 15:20 UTC
Spack must resolve variant conflicts across a dependency graph when user-specified +flag directives interact with cached build artifacts. The concretization step selects concrete package versions, but the interaction between explicit flags and cached binaries introduces ambiguity in variant priority.
Cache staleness may mask source-level variant changes, and forcing +flag specifications can conflict with compiler compatibility on certain architectures. Additionally, the algorithm's priority resolution between user-defined flags and default variant selections remains unspecified for multi-package environments where downstream dependencies amplify the effect.
- Which rule priority does Spack apply when +debug and +optimize are specified for overlapping packages?
- How does the concretization algorithm resolve conflicts between user-defined variant preferences and cached build configurations?
- Under what conditions does Spack override a cached binary with a source build when variant flags differ?