hooks: remove pre_run hook to improve startup time.
- Remove legacy yaml_version_check() hook - Remove the pre_run hook from `hook/__init__.py` and `main.py` We want to discourage the use of pre-run hooks because they have to run at startup. To keep Spack fast, we should do things like this lazily instead of in hooks that require spidering directories full of modules.
This commit is contained in:
parent
5ddbd2fa6c
commit
58cb4e5241
@ -12,7 +12,6 @@
|
||||
|
||||
Currently the following hooks are supported:
|
||||
|
||||
* pre_run()
|
||||
* pre_install(spec)
|
||||
* post_install(spec)
|
||||
* pre_uninstall(spec)
|
||||
@ -60,11 +59,6 @@ def __call__(self, *args, **kwargs):
|
||||
hook(*args, **kwargs)
|
||||
|
||||
|
||||
#
|
||||
# Define some functions that can be called to fire off hooks.
|
||||
#
|
||||
pre_run = HookRunner('pre_run')
|
||||
|
||||
pre_install = HookRunner('pre_install')
|
||||
post_install = HookRunner('post_install')
|
||||
|
||||
|
@ -1,39 +0,0 @@
|
||||
# Copyright 2013-2020 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)
|
||||
|
||||
"""Yaml Version Check is a module for ensuring that config file
|
||||
formats are compatible with the current version of Spack."""
|
||||
import os.path
|
||||
import os
|
||||
import llnl.util.tty as tty
|
||||
import spack.util.spack_yaml as syaml
|
||||
import spack.config
|
||||
|
||||
|
||||
def pre_run():
|
||||
check_compiler_yaml_version()
|
||||
|
||||
|
||||
def check_compiler_yaml_version():
|
||||
config = spack.config.config
|
||||
|
||||
for scope in config.file_scopes:
|
||||
file_name = os.path.join(scope.path, 'compilers.yaml')
|
||||
data = None
|
||||
if os.path.isfile(file_name):
|
||||
with open(file_name) as f:
|
||||
data = syaml.load_config(f)
|
||||
|
||||
if data:
|
||||
compilers = data.get('compilers')
|
||||
if compilers and len(compilers) > 0:
|
||||
if (not isinstance(compilers, list) or
|
||||
'operating_system' not in compilers[0]['compiler']):
|
||||
new_file = os.path.join(scope.path, '_old_compilers.yaml')
|
||||
tty.warn('%s in out of date compilers format. '
|
||||
'Moved to %s. Spack automatically generate '
|
||||
'a compilers config file '
|
||||
% (file_name, new_file))
|
||||
os.rename(file_name, new_file)
|
@ -30,7 +30,6 @@
|
||||
import spack.config
|
||||
import spack.cmd
|
||||
import spack.environment as ev
|
||||
import spack.hooks
|
||||
import spack.paths
|
||||
import spack.repo
|
||||
import spack.store
|
||||
@ -700,9 +699,6 @@ def main(argv=None):
|
||||
# many operations will fail without a working directory.
|
||||
set_working_dir()
|
||||
|
||||
# pre-run hooks happen after we know we have a valid working dir
|
||||
spack.hooks.pre_run()
|
||||
|
||||
# now we can actually execute the command.
|
||||
if args.spack_profile or args.sorted_profile:
|
||||
_profile_wrapper(command, parser, args, unknown)
|
||||
|
Loading…
Reference in New Issue
Block a user