Skip to content

Commit 52a9e5d

Browse files
committed
Merge branch 'releases/v0.10.0'
2 parents 4f8167b + 1856317 commit 52a9e5d

1,657 files changed

Lines changed: 106625 additions & 29344 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.coveragerc

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
# -*- conf -*-
22
# .coveragerc to control coverage.py
33
[run]
4+
parallel = True
5+
concurrency = multiprocessing
46
branch = True
57
source = lib
68
omit =

.flake8

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,16 +5,22 @@
55
# rationale is.
66
#
77
# Let people line things up nicely:
8+
# - E129: visually indented line with same indent as next logical line
89
# - E221: multiple spaces before operator
9-
# - E241: multiple spaces after ‘,’
10+
# - E241: multiple spaces after ','
11+
# - E272: multiple spaces before keyword
12+
#
13+
# Let people use terse Python features:
14+
# - E731 : lambda expressions
1015
#
1116
# Spack allows wildcard imports:
1217
# - F403: disable wildcard import
1318
#
1419
# These are required to get the package.py files to test clean.
15-
# - F821: undefined name (needed for cmake, configure, etc.)
16-
# - F999: name name be undefined or undefined from star imports.
20+
# - F405: `name` may be undefined, or undefined from star imports: `module`
21+
# - F821: undefined name `name` (needed for cmake, configure, etc.)
22+
# - F999: syntax error in doctest
1723
#
1824
[flake8]
19-
ignore = E221,E241,F403,F821,F999
25+
ignore = E129,E221,E241,E272,E731,F403,F405,F821,F999
2026
max-line-length = 79

.gitignore

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,24 @@
1+
/db
12
/var/spack/stage
3+
/var/spack/cache
4+
/var/spack/repos/*/index.yaml
5+
/var/spack/repos/*/lock
26
*.pyc
3-
/opt/
7+
/opt
48
*~
59
.DS_Store
610
.idea
7-
/etc/spack/*
11+
/etc/spack/licenses
12+
/etc/spack/*.yaml
813
/etc/spackconfig
914
/share/spack/dotkit
1015
/share/spack/modules
16+
/share/spack/lmod
1117
/TAGS
18+
*.swp
1219
/htmlcov
1320
.coverage
21+
#*
22+
.#*
23+
/.cache
24+
/bin/spackc

.mailmap

Lines changed: 56 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,56 @@
1-
Todd Gamblin <tgamblin@llnl.gov> George Todd Gamblin <gamblin2@llnl.gov>
2-
Todd Gamblin <tgamblin@llnl.gov> Todd Gamblin <gamblin2@llnl.gov>
3-
Adam Moody <moody20@llnl.gov> Adam T. Moody <moody20@llnl.gov>
4-
Alfredo Gimenez <gimenez1@llnl.gov> Alfredo Gimenez <alfredo.gimenez@gmail.com>
5-
David Boehme <boehme3@llnl.gov> David Boehme <boehme3@sierra324.llnl.gov>
6-
David Boehme <boehme3@llnl.gov> David Boehme <boehme3@sierra648.llnl.gov>
7-
Kevin Brandstatter <kjbrandstatter@gmail.com> Kevin Brandstatter <kbrandst@hawk.iit.edu>
8-
Luc Jaulmes <luc.jaulmes@bsc.es> Luc Jaulmes <jaulmes1@llnl.gov>
9-
Saravan Pantham <saravan.pantham@gmail.com> Saravan Pantham <pantham1@surface86.llnl.gov>
10-
Tom Scogland <tscogland@llnl.gov> Tom Scogland <scogland1@llnl.gov>
11-
Tom Scogland <tscogland@llnl.gov> Tom Scogland <tom.scogland@gmail.com>
12-
Joachim Protze <protze@rz.rwth-aachen.de> jprotze <protze@rz.rwth-aachen.de>
13-
Gregory L. Lee <lee218@llnl.gov> Gregory L. Lee <lee218@surface86.llnl.gov>
14-
Gregory L. Lee <lee218@llnl.gov> Gregory L. Lee <lee218@cab687.llnl.gov>
15-
Gregory L. Lee <lee218@llnl.gov> Gregory L. Lee <lee218@cab690.llnl.gov>
16-
Gregory L. Lee <lee218@llnl.gov> Gregory L. Lee <lee218@catalyst159.llnl.gov>
17-
Gregory L. Lee <lee218@llnl.gov> Gregory Lee <lee218@llnl.gov>
18-
Massimiliano Culpo <massimiliano.culpo@epfl.ch> Massimiliano Culpo <massimiliano.culpo@googlemail.com>
19-
Massimiliano Culpo <massimiliano.culpo@epfl.ch> alalazo <massimiliano.culpo@googlemail.com>
20-
Mark Miller <miller86@llnl.gov> miller86 <miller86@llnl.gov>
1+
Abhinav Bhatele <bhatele@llnl.gov> Abhinav Bhatele <bhatele@gmail.com>
2+
Adam Moody <moody20@llnl.gov> Adam T. Moody <moody20@llnl.gov>
3+
Alfredo Gimenez <gimenez1@llnl.gov> Alfredo Gimenez <alfredo.gimenez@gmail.com>
4+
Alfredo Gimenez <gimenez1@llnl.gov> Alfredo Adolfo Gimenez <alfredo.gimenez@gmail.com>
5+
Andrew Williams <williamsa89@cardiff.ac.uk> Andrew Williams <andrew@alshain.org.uk>
6+
Ben Boeckel <ben.boeckel@kitware.com> Ben Boeckel <mathstuf@gmail.com>
7+
Ben Boeckel <ben.boeckel@kitware.com> Ben Boeckel <mathstuf@users.noreply.github.com>
8+
Benedikt Hegner <hegner@cern.ch> Benedikt Hegner <benedikt.hegner@cern.ch>
9+
Brett Viren <bv@bnl.gov> Brett Viren <brett.viren@gmail.com>
10+
David Boehme <boehme3@llnl.gov> David Boehme <boehme3@sierra324.llnl.gov>
11+
David Boehme <boehme3@llnl.gov> David Boehme <boehme3@sierra648.llnl.gov>
12+
David Poliakoff <poliakoff1@llnl.gov> David Poliakoff <david.poliakoff@gmail.com>
13+
Dhanannjay Deo <dhanannjay.deo@kitware.com> Dhanannjay 'Djay' Deo <dhanannjay.deo@kitware.com>
14+
Elizabeth Fischer <elizabeth.fischer@columbia.edu> Elizabeth F <elizabeth.fischer@columbia.edu>
15+
Elizabeth Fischer <elizabeth.fischer@columbia.edu> Elizabeth F <rpf2116@columbia.edu>
16+
Elizabeth Fischer <elizabeth.fischer@columbia.edu> Elizabeth Fischer <rpf2116@columbia.edu>
17+
Elizabeth Fischer <elizabeth.fischer@columbia.edu> citibeth <rpf2116@columbia.edu>
18+
Geoffrey Oxberry <oxberry1@llnl.gov> Geoffrey Oxberry <goxberry@gmail.com>
19+
Glenn Johnson <glenn-johnson@uiowa.edu> Glenn Johnson <gjohnson@argon-ohpc.hpc.uiowa.edu>
20+
Glenn Johnson <glenn-johnson@uiowa.edu> Glenn Johnson <glennpj@gmail.com>
21+
Gregory Becker <becker33@llnl.gov> Gregory Becker <becker33.llnl.gov>
22+
Gregory Becker <becker33@llnl.gov> becker33 <becker33.llnl.gov>
23+
Gregory Becker <becker33@llnl.gov> becker33 <becker33@llnl.gov>
24+
Gregory L. Lee <lee218@llnl.gov> Greg Lee <lee218@llnl.gov>
25+
Gregory L. Lee <lee218@llnl.gov> Gregory L. Lee <lee218@cab687.llnl.gov>
26+
Gregory L. Lee <lee218@llnl.gov> Gregory L. Lee <lee218@cab690.llnl.gov>
27+
Gregory L. Lee <lee218@llnl.gov> Gregory L. Lee <lee218@catalyst159.llnl.gov>
28+
Gregory L. Lee <lee218@llnl.gov> Gregory L. Lee <lee218@surface86.llnl.gov>
29+
Gregory L. Lee <lee218@llnl.gov> Gregory Lee <lee218@llnl.gov>
30+
Ian Lee <lee1001@llnl.gov> Ian Lee <IanLee1521@gmail.com>
31+
James Wynne III <wynnejr@ornl.gov> James Riley Wynne III <wynnejr@ornl.gov>
32+
James Wynne III <wynnejr@ornl.gov> James Wynne III <wynnejr@gpujake.com>
33+
Joachim Protze <protze@rz.rwth-aachen.de> jprotze <protze@rz.rwth-aachen.de>
34+
Kelly (KT) Thompson <kgt@lanl.gov> <kellyt@MENE.localdomain>
35+
Kelly (KT) Thompson <kgt@lanl.gov> Kelly Thompson <KineticTheory@users.noreply.github.com>
36+
Kevin Brandstatter <kjbrandstatter@gmail.com> Kevin Brandstatter <kbrandst@hawk.iit.edu>
37+
Luc Jaulmes <luc.jaulmes@bsc.es> Luc Jaulmes <jaulmes1@llnl.gov>
38+
Mario Melara <maamelara@gmail.com> Mario Melara <mamelara@genepool1.nersc.gov>
39+
Mark Miller <miller86@llnl.gov> miller86 <miller86@llnl.gov>
40+
Massimiliano Culpo <massimiliano.culpo@epfl.ch> Massimiliano Culpo <massimiliano.culpo@googlemail.com>
41+
Massimiliano Culpo <massimiliano.culpo@epfl.ch> alalazo <massimiliano.culpo@googlemail.com>
42+
Mayeul d'Avezac <m.davezac@ucl.ac.uk> Mayeul d'Avezac <mdavezac@gmail.com>
43+
Mitchell Devlin <mitchell.r.devlin@gmail.com> Mitchell Devlin <devlin@blogin4.lcrc.anl.gov>
44+
Nicolas Richart <nicolas.richart@epfl.ch> Nicolas <nrichart@users.noreply.github.com>
45+
Nicolas Richart <nicolas.richart@epfl.ch> Nicolas Richart <nrichart@users.noreply.github.com>
46+
Peter Scheibel <scheibel1@llnl.gov> scheibelp <scheibel1@llnl.gov>
47+
Robert D. French <frenchrd@ornl.gov> Robert D. French <robert@robertdfrench.me>
48+
Robert D. French <frenchrd@ornl.gov> Robert.French <frenchrd@ornl.gov>
49+
Robert D. French <frenchrd@ornl.gov> robertdfrench <frenchrd@ornl.gov>
50+
Saravan Pantham <saravan.pantham@gmail.com> Saravan Pantham <pantham1@surface86.llnl.gov>
51+
Stephen Herbein <sherbein@udel.edu> Stephen Herbein <stephen272@gmail.com>
52+
Todd Gamblin <tgamblin@llnl.gov> George Todd Gamblin <gamblin2@llnl.gov>
53+
Todd Gamblin <tgamblin@llnl.gov> Todd Gamblin <gamblin2@llnl.gov>
54+
Tom Scogland <tscogland@llnl.gov> Tom Scogland <scogland1@llnl.gov>
55+
Tom Scogland <tscogland@llnl.gov> Tom Scogland <tom.scogland@gmail.com>
56+
Tzanio Kolev <tzanio@llnl.gov> Tzanio <tzanio@llnl.gov>

.travis.yml

Lines changed: 70 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,43 +1,92 @@
1+
#=============================================================================
2+
# Project settings
3+
#=============================================================================
14
language: python
5+
6+
# Only build master and develop on push; do not build every branch.
7+
branches:
8+
only:
9+
- master
10+
- develop
11+
- /^releases\/.*$/
12+
13+
#=============================================================================
14+
# Build matrix
15+
#=============================================================================
216
python:
3-
- "2.6"
4-
- "2.7"
17+
- 2.6
18+
- 2.7
19+
20+
env:
21+
- TEST_SUITE=unit
22+
- TEST_SUITE=flake8
23+
- TEST_SUITE=doc
524

25+
matrix:
26+
# Flake8 and Sphinx no longer support Python 2.6, and one run is enough.
27+
exclude:
28+
- python: 2.6
29+
env: TEST_SUITE=flake8
30+
- python: 2.6
31+
env: TEST_SUITE=doc
32+
# Explicitly include an OS X build with homebrew's python.
33+
# Works around Python issues on Travis for OSX, described here:
34+
# http://blog.fizyk.net.pl/blog/running-python-tests-on-traviss-osx-workers.html
35+
include:
36+
- os: osx
37+
language: generic
38+
env: TEST_SUITE=unit
39+
40+
#=============================================================================
41+
# Environment
42+
#=============================================================================
643
# Use new Travis infrastructure (Docker can't sudo yet)
744
sudo: false
845

9-
# Install coveralls to obtain code coverage
10-
install:
11-
- "pip install coveralls"
12-
- "pip install flake8"
46+
# Docs need graphviz to build
47+
addons:
48+
apt:
49+
packages:
50+
- gfortran
51+
- graphviz
52+
- libyaml-dev
1353

54+
# Work around Travis's lack of support for Python on OSX
1455
before_install:
56+
- if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then brew update; fi
57+
- if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then brew ls --versions python > /dev/null || brew install python; fi
58+
- if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then brew ls --versions gcc > /dev/null || brew install gcc; fi
59+
- if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then virtualenv venv; fi
60+
- if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then source venv/bin/activate; fi
61+
62+
# Install various dependencies
63+
install:
64+
- pip install --upgrade coveralls
65+
- pip install --upgrade flake8
66+
- pip install --upgrade sphinx
67+
- pip install --upgrade mercurial
68+
69+
before_script:
1570
# Need this for the git tests to succeed.
1671
- git config --global user.email "spack@example.com"
1772
- git config --global user.name "Test User"
1873

1974
# Need this to be able to compute the list of changed files
2075
- git fetch origin develop:develop
2176

22-
script:
23-
# Regular spack setup and tests
24-
- . share/spack/setup-env.sh
25-
- spack compilers
26-
- spack config get compilers
27-
- spack install -v libdwarf
28-
29-
# Run unit tests with code coverage
30-
- coverage run bin/spack test
31-
32-
# Run flake8 code style checks.
33-
- share/spack/qa/run-flake8
77+
#=============================================================================
78+
# Building
79+
#=============================================================================
80+
script: share/spack/qa/run-$TEST_SUITE-tests
3481

3582
after_success:
36-
- coveralls
83+
- if [[ $TEST_SUITE == unit && $TRAVIS_PYTHON_VERSION == 2.7 && $TRAVIS_OS_NAME == "linux" ]]; then coveralls; fi
3784

85+
#=============================================================================
86+
# Notifications
87+
#=============================================================================
3888
notifications:
3989
email:
40-
recipients:
41-
- tgamblin@llnl.gov
90+
recipients: tgamblin@llnl.gov
4291
on_success: change
4392
on_failure: always

README.md

Lines changed: 13 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ written in pure Python, and specs allow package authors to write a
2020
single build script for many different builds of the same package.
2121

2222
See the
23-
[Feature Overview](http://software.llnl.gov/spack/features.html)
23+
[Feature Overview](http://spack.readthedocs.io/en/latest/features.html)
2424
for examples and highlights.
2525

2626
To install spack and install your first package:
@@ -32,9 +32,12 @@ To install spack and install your first package:
3232
Documentation
3333
----------------
3434

35-
[**Full documentation**](http://software.llnl.gov/spack) for Spack is
35+
[**Full documentation**](http://spack.readthedocs.io/) for Spack is
3636
the first place to look.
3737

38+
We've also got a [**Spack 101 Tutorial**](http://spack.readthedocs.io/en/latest/tutorial_sc16.html),
39+
so you can learn Spack yourself, or teach users at your own site.
40+
3841
See also:
3942
* [Technical paper](http://www.computer.org/csdl/proceedings/sc/2015/3723/00/2807623.pdf) and
4043
[slides](https://tgamblin.github.io/files/Gamblin-Spack-SC15-Talk.pdf) on Spack's design and implementation.
@@ -58,17 +61,18 @@ can join it here:
5861

5962
### Contributions
6063

61-
At the moment, contributing to Spack is relatively simple. Just send us
62-
a [pull request](https://help.github.com/articles/using-pull-requests/).
64+
Contributing to Spack is relatively easy. Just send us a
65+
[pull request](https://help.github.com/articles/using-pull-requests/).
6366
When you send your request, make ``develop`` the destination branch on the
6467
[Spack repository](https://github.com/LLNL/spack).
6568

66-
Your contribution will need to pass all the tests run by the `spack test`
67-
command, as well as the formatting checks in `share/spack/qa/run-flake8`.
68-
You should run both of these before submitting your pull request, to
69-
ensure that the online checks succeed.
69+
Your PR must pass Spack's unit tests and documentation tests, and must be
70+
[PEP 8](https://www.python.org/dev/peps/pep-0008/) compliant.
71+
We enforce these guidelines with [Travis CI](https://travis-ci.org/LLNL/spack).
72+
To run these tests locally, and for helpful tips on git, see our
73+
[Contribution Guide](http://spack.readthedocs.io/en/latest/contribution_guide.html).
7074

71-
Spack is using a rough approximation of the [Git
75+
Spack uses a rough approximation of the [Git
7276
Flow](http://nvie.com/posts/a-successful-git-branching-model/)
7377
branching model. The ``develop`` branch contains the latest
7478
contributions, and ``master`` is always tagged and points to the

bin/sbang

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,15 @@
7979
# Obviously, for this to work, `sbang` needs to have a short enough
8080
# path that *it* will run without hitting OS limits.
8181
#
82+
# For Lua, scripts the second line can't start with #!, as # is not
83+
# the comment character in lua (even though lua ignores #! on the
84+
# *first* line of a script). So, instrument a lua script like this,
85+
# using -- instead of # on the second line:
86+
#
87+
# 1 #!/bin/bash /path/to/sbang
88+
# 2 --!/long/path/to/lua with arguments
89+
# 3
90+
# 4 print "success!"
8291
#
8392
# How it works
8493
# -----------------------------
@@ -95,13 +104,19 @@ lines=0
95104
while read line && ((lines < 2)) ; do
96105
if [[ "$line" = '#!'* ]]; then
97106
interpreter="${line#\#!}"
107+
elif [[ "$line" = '--!'*lua* ]]; then
108+
interpreter="${line#--!}"
98109
fi
99110
lines=$((lines+1))
100111
done < "$script"
101112

102113
# Invoke any interpreter found, or raise an error if none was found.
103-
if [ -n "$interpreter" ]; then
104-
exec $interpreter "$@"
114+
if [[ -n "$interpreter" ]]; then
115+
if [[ "${interpreter##*/}" = "perl" ]]; then
116+
exec $interpreter -x "$@"
117+
else
118+
exec $interpreter "$@"
119+
fi
105120
else
106121
echo "error: sbang found no interpreter in $script"
107122
exit 1

0 commit comments

Comments
 (0)