-
- Downloads
Spec.satisfies accesses Spec.concrete as property (#2928)
* Spec.satisfies accesses Spec.concrete as property Fixes #2760 When copying a spec, _concrete is always set to False for each dependency. "Spec.satisfies" was accessing the member "_concrete" directly instead of using the property "concrete". This means that if you copy a spec, the dependencies will be considered equal, but did not necessarily satisfy one another. Spec.satisfies is a prerequisite for a package to be considered an extension; as a consequence, an extension with run-time dependencies that were also extensions did not activate those extensions. This updates Spec.satisfies to avoid checking the cached member "_concrete" directly. * Added test to check for activation of dependency extension * Added test to check for transitive satisfiability between a spec and its copy
Showing
- lib/spack/spack/package.py 7 additions, 4 deletionslib/spack/spack/package.py
- lib/spack/spack/spec.py 2 additions, 2 deletionslib/spack/spack/spec.py
- lib/spack/spack/test/packages.py 7 additions, 0 deletionslib/spack/spack/test/packages.py
- lib/spack/spack/test/spec_semantics.py 8 additions, 0 deletionslib/spack/spack/test/spec_semantics.py
- var/spack/repos/builtin.mock/packages/extendee/package.py 39 additions, 0 deletionsvar/spack/repos/builtin.mock/packages/extendee/package.py
- var/spack/repos/builtin.mock/packages/extension1/package.py 39 additions, 0 deletionsvar/spack/repos/builtin.mock/packages/extension1/package.py
- var/spack/repos/builtin.mock/packages/extension2/package.py 41 additions, 0 deletionsvar/spack/repos/builtin.mock/packages/extension2/package.py
Loading
Please register or sign in to comment