summaryrefslogtreecommitdiff
path: root/share
AgeCommit message (Collapse)AuthorFilesLines
2019-07-05setup-env.sh: make setup scripts work with `set -u`Todd Gamblin2-4/+11
- Add set -u to the setup-env.sh test script - Refactor lines in setup-env.sh that tested potentially undefined variables to use the `[ -z ${var+x} ]` construct
2019-07-05tests: add tests for setup-env.shTodd Gamblin3-6/+331
- tests use a shell-script harness and test all Spack commands that require special shell support. - tests work in bash, zsh, and dash - run setup-env.sh tests on macos and linux builds. - we run them on macos and linux
2019-07-05setup-env.sh: now compatible with bash, zsh, and dashTodd Gamblin1-65/+114
- replace use of [[ with [ - replace function foo { .. } with foo() { .. } - wrap some long lines - add lsof and /proc/fd magic so that we can find the sourced file even in dash - only do the complicated shell checks in one place; test $_sp_shell elsewhere.
2019-06-29setup-env.sh: send cd output to /dev/null when it affects SpackTodd Gamblin1-9/+12
- We've seen this a few times now where users have set up `cd` to echo the new directory, and it screws up `setup-env.sh` - In the past we've said this is user error. - Here, we just fix it by sending `cd` output to /dev/null where needed. - this works in bash, zsh, and dash
2019-06-10CD: Package Index (#11665)Axel Huebl5-0/+53
Build the docker image for the new package index REST API on each merge/push to develop and master.
2019-06-08tests: restore `spack spec mpileaks` in test output for Python 2 (#11664)Todd Gamblin1-5/+3
- also remove coverage calls of these commands - we JUST want coverage to tell us what is in the test suite.
2019-06-05travis: disable `spack spec` for python 2.7 as well as 2.6Todd Gamblin1-1/+1
- keep this disabled until the `compiler find` fork bomb is fixed.
2019-05-27commands: completion for new --update and --header options (#11566)Todd Gamblin1-2/+2
2019-05-16junit: escape remaining inputs. (#11382)Matthias Wolf1-2/+2
2019-05-10bugfix: Do not run spack spec in the test environment for Python 2.6Todd Gamblin1-1/+3
- Trying to get our Python 2.6 tests working again. - This seems to crash travis in the 2.6 environment, for whatever reason.
2019-05-11coverage: only run coverage for subset of unit testsTodd Gamblin1-4/+5
- Codecov cannot handle as many coverage reports as we are generating - as a result, our PR coverage pages have been broken for a while, and it's hard to tell people where to enhance their testing in PR reviews. - Scale back to only running coverage for 3.7 and 2.7 unit tests - This is *probably* better. We run the build tests for good measure, but we do not need to evaluate them for coverage. The coverage reports are about unit tests.
2019-05-04Added a function that concretizes specs together (#11158)Massimiliano Culpo1-0/+15
* Added a function that concretizes specs together * Specs concretized together are copied instead of being referenced This makes the specs different objects and removes any reference to the fake root package that is needed currently for concretization. * Factored creating a repository for concretization into its own function * Added a test on overlapping dependencies
2019-05-02install spack under /opt/spack in docker images (#10969)Omar Padron1-18/+34
* install spack under /opt/spack
2019-04-24Fix handling of MODULEPATH in setup-env.sh (#11274)Toyohisa Kameyama1-1/+1
Usage of double quotes was preventing word-splitting when parsing module roots in setup-env.sh, which lead to an error when multiple module roots are used (in particular when Spack is pointed to use an upstream module root in addition to its own).
2019-04-16setup-env.sh: fix zsh compatibility error (#11153)paulanda1-3/+3
Still look for BASH_SOURCE[0] first, but if it's not set, _sp_source_file is initialized to an empty value addressing the unset parameter error (line 217).
2019-03-27spack chain (#8772)Peter Scheibel2-4/+20
* 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)
2019-03-25explicitly install unzip in all docker images (#10891)Omar Padron1-7/+10
2019-02-28Fix shell integration with environment-modules@4 (#10736)Michael Kuhn1-4/+10
2019-02-21release workflow: Add spack command for generating the .gitlab-ci.ymlScott Wittenburg1-0/+11
This spack command adds a new schema for a file which describes the builder containers available, along with the compilers availabe on each builder. The release-jobs command then generates the .gitlab-ci.yml file by first expanding the release spec set, concretizing each spec (in an appropriate docker container if --this-machine-only argument is not provided on command line), and then combining and staging all the concrete specs as jobs to be run by gitlab.
2019-02-21docker: Add Dockerfiles for images needed by AWS gitlab-runnersScott Wittenburg3-0/+118
The built images are set up with fairly recent versions of gcc and clang: - centos_7: [ gcc@5.5.0 (built from src), clang@6.0.0 (spack-built from src) ] - ubuntu_18.04: [ gcc@5.5.0 (system), clang@6.0.0-1ubuntu2 (system) ]
2019-02-21buildcache: Add sub-commands needed by release workflowScott Wittenburg1-0/+11
Adds four new sub-commands to the buildcache command: 1. save-yaml: Takes a root spec and a list of dependent spec names, along with a directory in which to save yaml files, and writes out the full spec.yaml for each of the dependent specs. This only needs to concretize the root spec once, then indexes it with the names of the dependent specs. 2. check: Checks a spec (via either an abstract spec or via a full spec.yaml) against remote mirror to see if it needs to be rebuilt. Comparies full_hash stored on remote mirror with full_hash computed locally to determine whether spec needs to be rebuilt. Can also generate list of specs to check against remote mirror by expanding the set of release specs expressed in etc/spack/defaults/release.yaml. 3. get-buildcache-name: Makes it possible to attempt to read directly the spec.yaml file on a remote or local mirror by providing the path where the file should live based on concretizing the spec. 4. download: Downloads all buildcache files associated with a spec on a remote mirror, including any .spack, .spec, and .cdashid files that might exist. Puts the files into the local path provided on the command line, and organizes them in the same hierarchy found on the remote mirror This commit also refactors lib/spack/spack/util/web.py to expose functionality allowing other modules to read data from a url.
2019-02-16[Docker] more base images (#10560)Omar Padron13-21/+90
* Revert "work around an issue with docker/dockerhub (#10547)" This reverts commit 0ef139ac4d475fb99e08b0856dd7f27b97082e50. * Add more docker base image configurations. - Renamed configs - "centos" -> "centos-7" - "fedora" -> "fedora-24" - "opensuse" -> "opensuse-tumbleweed" - "scilinux" -> "scilinux-7" - "ubuntu" -> "ubuntu-1804" - Added configs - "centos-6" - "fedora-29" - "opensuse-leap" - "scilinux-6" - "ubuntu-1604" With these changes, our docker hub image collection will consist of the following: - "spack/archlinux" - "latest" - "spack/centos" - "latest", "centos7", "7" - "centos6", "6" - "spack/fedora" - "latest", "29" - "24" - "spack/opensuse" - "latest", "tumbleweed" - "leap" - "spack/scilinux" - "latest", "7" - "6" - "spack/ubuntu" - "latest", "bionic", "18.04" - "xenial", "16.04"
2019-02-13make SPACK_SHELL detection more robust (#9712)Phil Carns1-1/+12
Spack shell detection in setup-env.sh was originally based on examining the executable name of $$ (from "ps"). In some cases this does not actually give the name of the shell used, for example when setup-env.sh was invoked from a script using "#!". To make shell detection more robust, this adds a preliminary check for shell variables which indicate that the shell is bash or zsh; the executable name of $$ is retained as a fallback if those variables are not defined.
2019-02-08work around an issue with docker/dockerhub (#10547)Omar Padron1-0/+14
* try to workaround an issue with docker/dockerhub * apply workaround only when running in travis
2019-01-24fix issue where docker images were being pushed without login (#10379)Omar Padron1-3/+1
2019-01-12fix typo in docker test script (#10334)Omar Padron1-1/+1
2019-01-12fix archlinux docker build (#10289)Omar Padron2-8/+7
2019-01-10spack versions: only list safe versions (#10004)Adam J. Stewart1-1/+1
* spack versions: only list safe versions * Add unit tests for spack versions -s
2019-01-01copyright: update license headers for 2013-2019 copyright.Todd Gamblin23-23/+23
2018-12-30commands: add `spack resource` command to inspect downloadable filesTodd Gamblin1-0/+26
- currently just looks at patches - allows you to find out which package applied a patch to a spec - intended to work with tarballs and resources in the future. - add tab completion for `spack resource` and subcommands
2018-12-29coverage: use kcov to get coverage for our cc scriptTodd Gamblin2-1/+26
2018-12-20Fix docker builds (#9805)Omar Padron2-7/+67
* move docker test logic to share/spack/qa * update Dockerfile for archlinux
2018-12-20fix multiple issues with the docker images (#9718)Omar Padron4-2/+24
- fixed an issue where some undesirable parts of the spack source tree were being copied into the image context. - added a workaround for a tty ioctl warning on ubuntu - adjusted how the main images are built so that `RUN spack ...` works automatically for child images that base themselves on them.
2018-12-20Report current git commit of Spack to CDashZack Galbreath1-4/+7
When using the CDash reporter, upload a Update.xml file that indicates the hash of Spack's current git commit.
2018-12-20Allow more customization for CDash reporterZack Galbreath2-4/+4
Add new command line arguments to `spack install` that allow users to set the build name, site name, and track in their CDash report.
2018-12-17Update Spack's Bash completion script (#10114)Adam J. Stewart1-35/+171
* Update Spack's Bash completion script * spack mirror create options changed
2018-12-15env setup: support --help for cd/env commands (#10069)Matthias Diener1-2/+2
2018-12-15.travis.yml: enable ccache (#6370)Christoph Junghans1-0/+2
2018-12-14Turn on verbose output for MPICH builds in Travis (#10105)Massimiliano Culpo1-1/+5
Lately many CI runs for PRs are failing due to the `mpich` build that times out on Travis (10 mins. without output). As the timeout seems to happen consistently during the build phase, increasing the verbosity of that test can help working around the issue.
2018-12-04fix: adapt junit template to escape std{out,err} (#9935)Matthias Wolf1-4/+4
2018-11-09env: environments can be named or created in directoriesTodd Gamblin2-4/+5
- `spack env create <name>` works as before - `spack env create <path>` now works as well -- environments can be created in their own directories outside of Spack. - `spack install` will look for a `spack.yaml` file in the current directory, and will install the entire project from the environment - The Environment class has been refactored so that it does not depend on the internal Spack environment root; it just takes a path and operates on an environment in that path (so internal and external envs are handled the same) - The named environment interface has been hoisted to the spack.environment module level. - env.yaml is now spack.yaml in all places. It was easier to go with one name for these files than to try to handle logic for both env.yaml and spack.yaml.
2018-11-09env: add spack env activate/deactivate and shell supportTodd Gamblin3-1/+80
- `spack env activate foo`: sets SPACK_ENV to the current active env name - `spack env deactivate`: unsets SPACK_ENV, deactivates the environment - added support to setup_env.sh and setup_env.csh - other env commands work properly with SPACK_ENV, as with an environment arguments. - command-line --env arguments take precedence over the active environment, if given.
2018-10-29setup-env: Avoid different output format of `ps` (#9629)Bert Wesarg1-1/+1
setup-env includes a call to 'ps' to determine what shell is being used. 'ps' can be instructed to use a different default output format via the 'PS_FORMAT' env variable. Thus unset this variable before calling 'ps'.
2018-10-26docker: unite Dockerfiles; auto-deploy images to DockerHub (#9329)Omar Padron24-408/+442
* Unite Dockerfiles - add build/run/push scripts * update docker documentation * update .travis.yml * switch to using a preprocessor on Dockerfiles * skip building docker images on pull requests * update files with copyright info * tweak when travis builds for docker files are done
2018-10-17relicense: add `spack license` commandTodd Gamblin1-0/+4
- `spack license list-files`: list all files that should have license headers - `spack license list-lgpl`: list files still under LGPL-2.1 - `spack license verify`: check that license headers are correct - Added `spack license verify` to style tests
2018-10-17relicense: replace LGPL headers with Apache-2.0/MIT SPDX headersTodd Gamblin13-69/+67
- remove the old LGPL license headers from all files in Spack - add SPDX headers to all files - core and most packages are (Apache-2.0 OR MIT) - a very small number of remaining packages are LGPL-2.1-only
2018-09-24travis: require sudo in an attempt to avoid build timeouts (#9327)Todd Gamblin1-1/+5
- Many container builds are timing out frequently during Spack tests in Travis CI. - Travis recommends to try `sudo: required` to see whether this is an infrastructure issue or something else. - added `sudo: required` to all Linux builds. - added --verbose to `spack test` invocation so that we can see more easily what tests it's timing out on. Signed-off-by: Todd Gamblin <tgamblin@llnl.gov>
2018-08-14Csh: fix load/use commands (#8971)Matthias Diener1-4/+4
2018-08-07Fixing the addition curly brackets to conform to the rest of the templates ↵Micheal Quinn1-1/+1
usage of a literal curly bracket
2018-08-07Adding logic to the autoload if statement so it only fire if the module is ↵Micheal Quinn1-1/+1
being loaded.