summaryrefslogtreecommitdiff
path: root/README.md
diff options
context:
space:
mode:
authorHarmen Stoppels <harmenstoppels@gmail.com>2022-10-25 16:47:50 +0200
committerGitHub <noreply@github.com>2022-10-25 16:47:50 +0200
commit09e0bd55c2ab2d4678efc693c3d3b79ef7c238f4 (patch)
tree063e5f885811c9817d0219e8bca89a1232f4f3f2 /README.md
parent00ae74f40e4ac918f4826bf3fb61da6f28af5051 (diff)
downloadspack-09e0bd55c2ab2d4678efc693c3d3b79ef7c238f4.tar.gz
spack-09e0bd55c2ab2d4678efc693c3d3b79ef7c238f4.tar.bz2
spack-09e0bd55c2ab2d4678efc693c3d3b79ef7c238f4.tar.xz
spack-09e0bd55c2ab2d4678efc693c3d3b79ef7c238f4.zip
spec.py: prefer transitive link and direct build/run/test deps (#33498)
Due to reuse concretization, we may generate DAGs with two occurrences of the same package corresponding to distinct specs. This happens when build dependencies are reused, since their dependencies are ignored in concretization. This caused a regression, for example: `spec['openssl']` would take the 'openssl' of the build dep `cmake`, instead of the direct `openssl` dependency, simply because the edge to `cmake` was traversed first and we do depth first traversal. One solution that was discussed is to limit `spec[name]` to just direct deps, or direct deps + transitive link deps, but this is too breaking. Instead, this PR simply prioritizes transitive link and direct build/run/test deps, and then falls back to a full DAG traversal. So, it's just about order of iteration.
Diffstat (limited to 'README.md')
0 files changed, 0 insertions, 0 deletions