summaryrefslogtreecommitdiff
path: root/lib
AgeCommit message (Collapse)AuthorFilesLines
2015-07-02Better python template for 'spack create'Todd Gamblin3-19/+128
2015-06-20Fix bug in uninstall (regression in 0fc3b58)Todd Gamblin2-15/+35
2015-06-13Fix for `git pull --tags` when using git 1.7.1Todd Gamblin2-2/+11
- Added `ignore_errors` option to `Executable.__call__` - Can avoid raising errors on *specific* error return values.
2015-06-13Fix for repos with many tagsTom Scogland1-1/+8
Ensures all tags are ready before checkout, using `--branch` if possible and an extra pull if that is not available. Also adds `--depth 1` to create shallow clones if the git version is sufficient. Fixes #64.
2015-06-13removing vestigial lines from a previous commitTom Scogland1-4/+0
2015-06-11Small ruby enhancement and tmuxinator packageTom Scogland1-0/+7
It is currently less painful to pull the source from github, compile it into a gem, then install the gem, than it is to download a gem and install it. This still lacks an activation mechanism, but `spack use tmuxinator` is functional.
2015-06-07Try a little harder in concretize_version() -- concretize unsafe versions too.Todd Gamblin1-4/+20
- This can result in the user being prompted to download an unsafe version. - Avoids overly strict errors when something *could* be satisfiable but we don't know about hte version.
2015-06-07Add some comments b/c I didn't understand my own test.Todd Gamblin1-0/+3
2015-06-07SPACK-38: Allow specs to be indexed by virtual dependencies.Todd Gamblin4-17/+121
- The following now work differently: spec['mpi'] spec['blas'] This can return a spec for openmpi, mpich, mvapich, etc., EVEN if the spec is already concretized. This means that in a package that `depends_on('mpi')`, you can do `spec['mpi']` to see what it was concretized to. This should simplify MPI and BLAS packages. 'mpi' in spec 'blas' in spec Previously, if the spec had been concretized, these would be `False` because there was not a dependency in the DAG with either of these names. These will now be `True` even if the spec has been concretized. So, e.g., this will print "YES" s = Spec('callpath ^mpich') if 'mpi' in spec: print "YES" - Similarly, this will be True: Spec('mpich').satisfies('mpi') - Because of the way virtual dependencies are currently implemented, the above required some fiddling around with `package.py` so that it would never call `Spec.__contains__` (and result in endless recursion). - This should be fixed by allowing virutal dependnecies to have their own package class. - This would allow a quicker check for vdeps, without a call to `all_packages`. - For the time being, `package.py` shouldn't call `__contains__`
2015-06-06Executables now have a useful __str__ function.Todd Gamblin1-0/+5
2015-06-06Cleanup and consolidate error handlingTodd Gamblin3-10/+20
2015-06-06Add FileFilter convenience class to llnl.util.filesystem.Todd Gamblin1-1/+10
2015-06-06Removed autosave files from previous commit.Saravan Pantham2-229/+0
2015-06-06Fixed BLAS and Lapack installationsSaravan Pantham3-1/+229
2015-06-01Fix #48: Ignore hidden files when deciding how to stage.Todd Gamblin1-5/+14
- Expanding archvies like MAGMA 1.6.2 creates extra hidden files that confuse Spack's staging mechanism. - Added a special case to ignore hidden files when checking whether the tarball exploded.
2015-06-01Add -S/--stages option to spack cd/spack location.Todd Gamblin1-0/+5
- can now change dir to top-level stage
2015-05-31Fix #46: make(parallel=False) regression.Todd Gamblin4-6/+133
- Added some tests to make sure this stays in place.
2015-05-29SPACK-69: spack install now logs build output to install directory.Todd Gamblin5-59/+141
- spack install suppresses build output by default. - use install -v to show build output on the console too - package.py uses log_output context to redirect output and log it to a file - filters color codes out of output written to file - optionally echos to the terminal - YAML directory layout knows about its build log. - can get path to install build log to from directory layout - Package.install now copies the build log to $prefix/.spack/build.out - Error message from failed install execution now includes build log location
2015-05-29debug instead of info logging in llnl.util.filesystemTodd Gamblin1-2/+2
2015-05-29SPACK-69: Add context manager to fork and log output in a with block.Todd Gamblin1-0/+178
2015-05-29Add ability to force color mode even if terminal is NOT a ttyTodd Gamblin1-2/+6
2015-05-29Add ability to test whether tty verbose or debug is enabled.Todd Gamblin1-0/+8
2015-05-28Add spack find -L to show full hashes.Todd Gamblin1-5/+17
2015-05-28Fix bug in spack edit -cTodd Gamblin1-1/+1
2015-05-27Fix #34: Spack doesn't stop when dep fails to build.Todd Gamblin1-0/+1
- Fixes regression introduced by #30 - Child process needs to exit on error
2015-05-18Remove redundancy: convert `with closing(open(...))` to `with open(...)`Todd Gamblin15-30/+14
2015-05-18Merge branch 'features/optional-deps' into developTodd Gamblin53-1188/+7547
This includes: - Much better variant support (+debug/-debug) - Optional dependency support (depends_on(... , when='<condition>') - New config file format (YAML in ~/.spack) - New Spec format (YAML in $prefix/.spack/spec.yaml)
2015-05-18YAML config files for compilers and mirrorsMatthew LeGendre8-529/+382
2015-05-18SPACK-87: enable disabled git fetch tests.old-install-layoutTodd Gamblin1-3/+3
2015-05-18Fix SPACK-87: Tag checkout fails for older git versions.Todd Gamblin1-4/+6
2015-05-12SPACK-41: More tests to ensure that constrain() reports changes.Todd Gamblin2-3/+65
2015-05-12SPACK-41: bugfix for nonconvergent normalize()Todd Gamblin2-5/+7
- constrain() wasn't reporting changes properly.
2015-05-12Add debug handler to print a stacktrace on Ctrl-C in debug mode.Todd Gamblin1-0/+52
2015-05-12Fix SPACK-41: Optional deps work with complex condition chains.Todd Gamblin2-53/+98
2015-05-12Work on SPACK-41: Optional dependencies work for simple conditions.Todd Gamblin8-159/+302
- Can depend conditionally based on variant, compiler, arch, deps, etc - normalize() is not iterative yet: no chaining depends_ons - really need a SAT solver, but iterative will at least handle simple cases. - Added "strict" option to Spec.satisfies() - strict checks that ALL of other's constraints are met (not just the ones self shares) - Consider splitting these out into two methods: could_satisfy() and satisfies() - didn't do this yet as it would require changing code that uses satisfies() - Changed semantics of __contains__ to use strict satisfaction (SPACK-56) - Added tests for optional dependencies. - The constrain() method on Specs, compilers, versions, etc. now returns whether the spec changed as a result of the call.
2015-05-10Merge branch 'features/yaml-spec' into features/optional-depsTodd Gamblin32-197/+6198
2015-05-10Merge remote-tracking branch 'origin/features/variants' into ↵Todd Gamblin15-304/+505
features/optional-deps
2015-05-10Remove debug print in link_treeTodd Gamblin1-1/+0
2015-05-10Better hash output in find.Todd Gamblin2-16/+32
2015-05-10Fix bug in directory layout hidden files()Todd Gamblin2-2/+5
2015-05-10Doc tweak.Todd Gamblin2-3/+7
- add LLNL release number to new RTD theme.
2015-05-10Fix SPACK-67: 'spack help stage' was broken.Todd Gamblin1-2/+0
- remove spurious mutually exclusive group from subparser.
2015-05-10tests for variant concretizationTodd Gamblin2-12/+44
2015-05-10SPACK-56: fix Variant concretization.Todd Gamblin5-23/+107
- Variant concretization is tricky: - During concretization, a spec without variants (e.g., mpich) means "don't care". So, Spec('mpich').satisfies('mpich+debug') is true because it *could* still be built that way. - After concretization, a spec without a particular variant means "don't know", as that wasn't part of the spec, so the opposite relationship is true. Assume 'spec' is already installed: spec.satisfies('mpich+debug') this is false beacuse the `debug` variant didn't exist when spec was built, so we can't satisfy the explicit request for +debug.
2015-05-10Fix SPACK-40: Finish adding variant directive.Todd Gamblin3-14/+53
- Variants are now declarable in packages using the variant() directive. - Variants are checked - you can't just ask for a random variant, it has to be declared. - conditional logic (@when, if, '+debug' in spec, etc.) still required in package to implement variant.
2015-05-10Small updates to directives.Todd Gamblin2-11/+18
2015-05-10Modularize directives. Now each directive specifies its storage.Todd Gamblin3-108/+143
2015-05-10relations are now "directives", and code is cleaned up.Todd Gamblin5-82/+82
2015-05-10Remove TODOs for full DAG information.Todd Gamblin4-25/+3
- specs on disk now include full DAG info - no need for normalize() kludges() anymore.
2015-05-10extensions file now in YAML formatTodd Gamblin3-38/+69