* Add versions 5.2.0 and 5.1.0
* Avoid adding version 6.0.0: this version has a new API that is
not compatible with older versions (and dependents may break with
it)
* Added comment block explaining the problems with version 6.x
* Replace old datumgrid resource (1.7) with new (1.8)
* Add speculative sqlite dependency for when a 6.x version is added
* add version 7.0.1
* replace md5 with sha256 for various versions.
* v7.0.1 fixes some environment hacking to properly find MPI and
system architecture
This adds a stub script for mpirun and other standard executables
when installing OpenMPI with slurm. The purpose is to make the
removal less of a surprise to administrators/users: it explains why
they were removed and how to restore them.
* Split get_compiler_version into two functions:
get_compiler_version_output runs the compiler with the relevant
option to print the version; extract_version_from_output determines
the version by examining this output. This makes it easier to test
the customized version detection for each compiler. Users can
customize this by overriding the following:
* version_argument: this is the argument that tells the compiler to
print its version. It assumes that the compiler will report its
version if invoked with a single option (like "--version")
* version_regex: the regular expression used to extract the version
from the compiler argument. This assumes that a regular
expression is sufficient to extract the version, and that the
version can be extracted from a single capture group (Spack uses
the first capture group)
* default_version: allows you to completely override all version
detection logic
* get_compiler_version_output: if getting the compiler to report
its version is more complex than invoking it with a single arg
* extract_version_from_output: if it is difficult to define a regex
that can be used to extract the version from the output
* Added tests for version detection of most compilers
* Removed redundant code from xl_r compiler class (by inheriting
from xl compiler definition)
* adding package to install squashfs for singularity
* dont need os import
Signed-off-by: Vanessa Sochat <vsochat@stanford.edu>
* updating md5 to sha1 for squashfs package
Signed-off-by: Vanessa Sochat <vsochat@stanford.edu>
* two blank lines
Signed-off-by: Vanessa Sochat <vsochat@stanford.edu>
Replace the original implementation of the "memoized" decorator with
an implementation that exposes the docstring and arguments of the
wrapped function. This is achieved using functools.wraps.
This provides a mechanism to implement a new Spack command in a
separate directory, and with a small configuration change point Spack
to the new command.
To register the command, the directory must be added to the
"extensions" section of config.yaml. The command directory name must
have the prefix "spack-", and have the following layout:
spack-X/
pytest.ini #optional, for testing
X/
cmd/
name-of-command1.py
name-of-command2.py
...
tests/ #optional
conftest.py
test_name-of-command1.py
templates/ #optional jinja templates, if needed
And in config.yaml:
config:
extensions:
- /path/to/spack-X
If the extension includes tests, you can run them via spack by adding
the --extension option, like "spack test --extension=X"
* Newer versions of IBM XL no longer define `__xlC__`, but define `__ibmxl__`
instead. This one-line patch fixes this problem in Random123.
* This patch was also provided to the Random123 maintiners
(Random123@DEShawResearch.com). I don't expect a new release from them for a
while, so I believe that this patch is the correct path forward (for now).
* 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)