spack find
now displays variants and other spec constraints (#13596)
If you do this in a spack environment: spack add hdf5+hl hdf5+hl will be the root added to the `spack.yaml` file, and you should really expect `hdf5+hl` to display as a root in the environment. - [x] Add decoration to roots so that you can see the details about what is required to build. - [x] Add a test.
This commit is contained in:
parent
527d639b0e
commit
b77974e986
3 changed files with 23 additions and 4 deletions
|
@ -331,7 +331,7 @@ def get_arg(name, default=None):
|
|||
|
||||
format_string = get_arg('format', None)
|
||||
if format_string is None:
|
||||
nfmt = '{namespace}.{name}' if namespace else '{name}'
|
||||
nfmt = '{fullname}' if namespace else '{name}'
|
||||
ffmt = ''
|
||||
if full_compiler or flags:
|
||||
ffmt += '{%compiler.name}'
|
||||
|
|
|
@ -165,10 +165,18 @@ def display_env(env, args, decorator):
|
|||
tty.msg('No root specs')
|
||||
else:
|
||||
tty.msg('Root specs')
|
||||
# TODO: Change this to not print extraneous deps and variants
|
||||
|
||||
# Roots are displayed with variants, etc. so that we can see
|
||||
# specifically what the user asked for.
|
||||
cmd.display_specs(
|
||||
env.user_specs, args,
|
||||
decorator=lambda s, f: color.colorize('@*{%s}' % f))
|
||||
env.user_specs,
|
||||
args,
|
||||
decorator=lambda s, f: color.colorize('@*{%s}' % f),
|
||||
namespace=True,
|
||||
show_flags=True,
|
||||
show_full_compiler=True,
|
||||
variants=True
|
||||
)
|
||||
print()
|
||||
|
||||
if args.show_concretized:
|
||||
|
|
|
@ -615,6 +615,17 @@ def test_env_blocks_uninstall(mock_stage, mock_fetch, install_mockery):
|
|||
assert 'used by the following environments' in out
|
||||
|
||||
|
||||
def test_roots_display_with_variants():
|
||||
env('create', 'test')
|
||||
with ev.read('test'):
|
||||
add('boost+shared')
|
||||
|
||||
with ev.read('test'):
|
||||
out = find(output=str)
|
||||
|
||||
assert "boost +shared" in out
|
||||
|
||||
|
||||
def test_uninstall_removes_from_env(mock_stage, mock_fetch, install_mockery):
|
||||
env('create', 'test')
|
||||
with ev.read('test'):
|
||||
|
|
Loading…
Reference in a new issue