-
- Downloads
spack chain (#8772)
* initial work to make use of an 'upstream' spack installation: this uses the DB of the upstream installation to check if a package is installed * need to query upstream dbs when adding new record to local db * prevent reindexing upstream DBs * set prefix on specs read from DB based on path stored in install record * check that Spack does not install packages that are recorded as installed in an upstream db * externals do not add their path to install records - need to use 'external_path' to get path of upstream externals * views need to check for upstream installations when linking metadata * package and spec now calculate upstream installation properties on-demand themselves rather than depending on concretization to set these properties up-front. The added tests for upstream installations don't work with this new strategy so they need to be updated * only refresh modules for local specs (not those in upstream packages); optionally generate local module files for packages installed upstream * when a user tries to locate a module file for a package installed upstream, tell them to use the upstream spack instance to locate it * support recursive upstream databases (allow upstream databases to use their own upstream databases) * separate upstream config into separate file with its own schema; each entry now also includes a name * metadata_dir is no longer customizable on a per-instance basis for YamlDirectoryLayout * treat metadata_dir as an instance variable but dont set it from kwargs; this follows several other hardcoded variables which must be consistent between upstream and downstream DBs. Also update DirectoryLayout.metadata_path to work entirely with Spec.prefix, since Spec.prefix is set from the DB when available (so metadata_path was duplicating that logic)
Showing
- lib/spack/spack/cmd/modules/__init__.py 23 additions, 4 deletionslib/spack/spack/cmd/modules/__init__.py
- lib/spack/spack/cmd/uninstall.py 1 addition, 1 deletionlib/spack/spack/cmd/uninstall.py
- lib/spack/spack/config.py 2 additions, 0 deletionslib/spack/spack/config.py
- lib/spack/spack/database.py 245 additions, 134 deletionslib/spack/spack/database.py
- lib/spack/spack/directory_layout.py 22 additions, 11 deletionslib/spack/spack/directory_layout.py
- lib/spack/spack/main.py 20 additions, 1 deletionlib/spack/spack/main.py
- lib/spack/spack/modules/common.py 60 additions, 0 deletionslib/spack/spack/modules/common.py
- lib/spack/spack/package.py 17 additions, 0 deletionslib/spack/spack/package.py
- lib/spack/spack/schema/merged.py 3 additions, 1 deletionlib/spack/spack/schema/merged.py
- lib/spack/spack/schema/upstreams.py 40 additions, 0 deletionslib/spack/spack/schema/upstreams.py
- lib/spack/spack/spec.py 9 additions, 2 deletionslib/spack/spack/spec.py
- lib/spack/spack/store.py 26 additions, 1 deletionlib/spack/spack/store.py
- lib/spack/spack/test/cmd/print_shell_vars.py 8 additions, 8 deletionslib/spack/spack/test/cmd/print_shell_vars.py
- lib/spack/spack/test/conftest.py 24 additions, 0 deletionslib/spack/spack/test/conftest.py
- lib/spack/spack/test/database.py 176 additions, 1 deletionlib/spack/spack/test/database.py
- lib/spack/spack/test/directory_layout.py 5 additions, 1 deletionlib/spack/spack/test/directory_layout.py
- lib/spack/spack/test/install.py 71 additions, 0 deletionslib/spack/spack/test/install.py
- lib/spack/spack/test/modules/tcl.py 17 additions, 0 deletionslib/spack/spack/test/modules/tcl.py
- share/spack/setup-env.csh 9 additions, 2 deletionsshare/spack/setup-env.csh
- share/spack/setup-env.sh 11 additions, 2 deletionsshare/spack/setup-env.sh
Loading
Please register or sign in to comment