Added support for querying by tags (#4786)
* Added support to query packages by tags.
    - The querying commands `spack list`, `spack find` and `spack info` have
      been modified to support querying by tags. Tests have been added to
      check that the feature is working correctly under what should be the
      most frequent use cases.
* Refactored Repo class to make insertion of new file caches easier.
    - Added the class FastPackageChecker. This class is a Mapping from
      package names to stat info, that gets memoized for faster access.
    - Extracted the creation of a ProviderIndex to its own factory function.
* Added a cache file for tags.
    - Following what was done for providers, a TagIndex class has been added.
      This class can serialize and deserialize objects from json. Repo and
      RepoPath have a new method 'packages_with_tags', that uses the TagIndex
      to compute a list of package names that have all the tags passed as
      arguments.
      On Ubuntu 14.04 the effect if the cache reduces the time for spack list
      from ~3sec. to ~0.3sec. after the cache has been built.
* Fixed colorization of `spack info`
			
			
This commit is contained in:
		
				
					committed by
					
						
						Todd Gamblin
					
				
			
			
				
	
			
			
			
						parent
						
							feefdedadf
						
					
				
				
					commit
					d1a5857a03
				
			@@ -31,6 +31,8 @@ class Mpich(Package):
 | 
			
		||||
    list_url   = "http://www.mpich.org/static/downloads/"
 | 
			
		||||
    list_depth = 2
 | 
			
		||||
 | 
			
		||||
    tags = ['tag1', 'tag2']
 | 
			
		||||
 | 
			
		||||
    variant('debug', default=False,
 | 
			
		||||
            description="Compile MPICH with debug flags.")
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -31,6 +31,8 @@ class Mpich2(Package):
 | 
			
		||||
    list_url   = "http://www.mpich.org/static/downloads/"
 | 
			
		||||
    list_depth = 2
 | 
			
		||||
 | 
			
		||||
    tags = ['tag1', 'tag3']
 | 
			
		||||
 | 
			
		||||
    version('1.5', '9c5d5d4fe1e17dd12153f40bc5b6dbc0')
 | 
			
		||||
    version('1.4', 'foobarbaz')
 | 
			
		||||
    version('1.3', 'foobarbaz')
 | 
			
		||||
 
 | 
			
		||||
@@ -28,10 +28,9 @@
 | 
			
		||||
 | 
			
		||||
class Aspa(MakefilePackage):
 | 
			
		||||
    """A fundamental premise in ExMatEx is that scale-bridging performed in
 | 
			
		||||
        heterogeneous MPMD materials science simulations will place important
 | 
			
		||||
        demands upon the exascale ecosystem that need to be identified and
 | 
			
		||||
        quantified.
 | 
			
		||||
        tags = proxy-app
 | 
			
		||||
    heterogeneous MPMD materials science simulations will place important
 | 
			
		||||
    demands upon the exascale ecosystem that need to be identified and
 | 
			
		||||
    quantified.
 | 
			
		||||
    """
 | 
			
		||||
    tags = ['proxy-app']
 | 
			
		||||
    homepage = "http://www.exmatex.org/aspa.html"
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user