Enforce uniqueness of the version_weight atom per node
fixes #22565 This change enforces the uniqueness of the version_weight atom per node(Package) in the DAG. It does so by applying FTSE and adding an extra layer of indirection with the possible_version_weight/2 atom. Before this change it may have happened that for the same node two different version_weight/2 were in the answer set, each of which referred to a different spec with the same version, and their weights would sum up. This lead to unexpected result like preferring to build a new version of an external if the external version was older.
This commit is contained in:

committed by
Greg Becker

parent
ebbce40a88
commit
4ed5c366fa
@@ -0,0 +1,17 @@
|
||||
# Copyright 2013-2021 Lawrence Livermore National Security, LLC and other
|
||||
# Spack Project Developers. See the top-level COPYRIGHT file for details.
|
||||
#
|
||||
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
||||
class OldExternal(Package):
|
||||
"""A package that has an old version declared in packages.yaml"""
|
||||
|
||||
homepage = "https://www.example.com"
|
||||
url = "https://www.example.com/old-external.tar.gz"
|
||||
|
||||
version('1.2.0', '0123456789abcdef0123456789abcdef')
|
||||
version('1.1.4', '0123456789abcdef0123456789abcdef')
|
||||
version('1.1.3', '0123456789abcdef0123456789abcdef')
|
||||
version('1.1.2', '0123456789abcdef0123456789abcdef')
|
||||
version('1.1.1', '0123456789abcdef0123456789abcdef')
|
||||
version('1.1.0', '0123456789abcdef0123456789abcdef')
|
||||
version('1.0.0', '0123456789abcdef0123456789abcdef')
|
Reference in New Issue
Block a user