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:
		| @@ -331,7 +331,7 @@ def get_arg(name, default=None): | |||||||
|  |  | ||||||
|     format_string = get_arg('format', None) |     format_string = get_arg('format', None) | ||||||
|     if format_string is None: |     if format_string is None: | ||||||
|         nfmt = '{namespace}.{name}' if namespace else '{name}' |         nfmt = '{fullname}' if namespace else '{name}' | ||||||
|         ffmt = '' |         ffmt = '' | ||||||
|         if full_compiler or flags: |         if full_compiler or flags: | ||||||
|             ffmt += '{%compiler.name}' |             ffmt += '{%compiler.name}' | ||||||
|   | |||||||
| @@ -165,10 +165,18 @@ def display_env(env, args, decorator): | |||||||
|         tty.msg('No root specs') |         tty.msg('No root specs') | ||||||
|     else: |     else: | ||||||
|         tty.msg('Root specs') |         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( |         cmd.display_specs( | ||||||
|             env.user_specs, args, |             env.user_specs, | ||||||
|             decorator=lambda s, f: color.colorize('@*{%s}' % f)) |             args, | ||||||
|  |             decorator=lambda s, f: color.colorize('@*{%s}' % f), | ||||||
|  |             namespace=True, | ||||||
|  |             show_flags=True, | ||||||
|  |             show_full_compiler=True, | ||||||
|  |             variants=True | ||||||
|  |         ) | ||||||
|         print() |         print() | ||||||
|  |  | ||||||
|     if args.show_concretized: |     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 |     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): | def test_uninstall_removes_from_env(mock_stage, mock_fetch, install_mockery): | ||||||
|     env('create', 'test') |     env('create', 'test') | ||||||
|     with ev.read('test'): |     with ev.read('test'): | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Todd Gamblin
					Todd Gamblin