Todd Gamblin
6f8f1bf7af
Fix #34 : Spack doesn't stop when dep fails to build.
...
- Fixes regression introduced by #30
- Child process needs to exit on error
2015-05-27 20:27:48 -07:00
Todd Gamblin
c622337802
Remove redundancy: convert with closing(open(...))
to with open(...)
2015-05-18 17:11:03 -07:00
Todd Gamblin
f813d823a1
Merge branch 'features/optional-deps' into develop
...
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-18 16:16:20 -07:00
Matthew LeGendre
46b91ddf57
YAML config files for compilers and mirrors
2015-05-18 16:01:21 -07:00
Todd Gamblin
09151785b3
SPACK-87: enable disabled git fetch tests.
2015-05-18 11:32:15 -07:00
Todd Gamblin
b2f46c703d
Fix SPACK-87: Tag checkout fails for older git versions.
2015-05-18 11:26:32 -07:00
Todd Gamblin
cd1ca36488
SPACK-41: More tests to ensure that constrain() reports changes.
2015-05-12 15:48:57 -07:00
Todd Gamblin
805122c789
SPACK-41: bugfix for nonconvergent normalize()
...
- constrain() wasn't reporting changes properly.
2015-05-12 14:52:46 -07:00
Todd Gamblin
095ff1cb4a
Add debug handler to print a stacktrace on Ctrl-C in debug mode.
2015-05-12 14:52:41 -07:00
Todd Gamblin
c44db0133f
Fix SPACK-41: Optional deps work with complex condition chains.
2015-05-12 11:45:48 -07:00
Todd Gamblin
cd5fa128c5
Work on SPACK-41: Optional dependencies work for simple conditions.
...
- 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-12 09:56:59 -07:00
Todd Gamblin
ef9deeccd1
Merge branch 'features/yaml-spec' into features/optional-deps
2015-05-10 19:28:47 -07:00
Todd Gamblin
09fff39990
Merge remote-tracking branch 'origin/features/variants' into features/optional-deps
2015-05-10 18:59:56 -07:00
Todd Gamblin
13ff1a9bf6
Remove debug print in link_tree
2015-05-10 18:53:09 -07:00
Todd Gamblin
b4a26c496c
Better hash output in find.
2015-05-10 18:48:42 -07:00
Todd Gamblin
43e5465592
Fix bug in directory layout hidden files()
2015-05-10 17:56:27 -07:00
Todd Gamblin
3c49487424
Doc tweak.
...
- add LLNL release number to new RTD theme.
2015-05-10 13:11:03 -07:00
Todd Gamblin
25af6478c5
Fix SPACK-67: 'spack help stage' was broken.
...
- remove spurious mutually exclusive group from subparser.
2015-05-10 12:46:33 -07:00
Todd Gamblin
793b842f99
tests for variant concretization
2015-05-10 12:28:25 -07:00
Todd Gamblin
535c1fac87
SPACK-56: fix Variant concretization.
...
- 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-10 12:25:07 -07:00
Todd Gamblin
3b1898b8e4
Fix SPACK-40: Finish adding variant directive.
...
- 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-10 12:24:03 -07:00
Todd Gamblin
c105a8d42a
Small updates to directives.
2015-05-10 12:24:03 -07:00
Todd Gamblin
1f8ce403dc
Modularize directives. Now each directive specifies its storage.
2015-05-10 12:24:03 -07:00
Todd Gamblin
0944ba120c
relations are now "directives", and code is cleaned up.
2015-05-10 12:24:03 -07:00
Todd Gamblin
5d2ee893c4
Remove TODOs for full DAG information.
...
- specs on disk now include full DAG info
- no need for normalize() kludges() anymore.
2015-05-10 11:45:12 -07:00
Todd Gamblin
29e833dfef
extensions file now in YAML format
2015-05-10 02:56:50 -07:00
Todd Gamblin
2f3b0481de
YamlDirectoryLayout now working.
2015-05-09 16:35:02 -05:00
Todd Gamblin
9412fc8083
restore some disabled git tests.
2015-05-09 16:12:04 -05:00
Todd Gamblin
8e87b2176a
Updated Sphinx RTD documentation theme supports 4 levels
2015-05-09 13:35:05 -05:00
Todd Gamblin
d6a5266976
Fix 'ç' in François's name.
2015-05-09 13:30:09 -05:00
François Bissey
3cfbc0520a
Basic support for IBM XL compilers
2015-05-07 01:54:18 -05:00
Todd Gamblin
42c88aa3ca
Merge branch 'features/diy' into develop
2015-05-07 01:53:26 -05:00
Todd Gamblin
1d0975bac6
Bugfixes for yaml specs.
2015-05-05 14:24:46 -07:00
Todd Gamblin
d687962b74
Add test for YAML specs.
2015-05-05 13:18:44 -07:00
Todd Gamblin
53e8e44a8b
Make YAML specs more human readable.
2015-05-05 13:06:41 -07:00
Todd Gamblin
278e70e533
Specs to/from YAML are working.
2015-04-29 01:47:09 -07:00
Todd Gamblin
13132c6b97
Add YAML to Spack.
2015-04-28 23:15:13 -07:00
Todd Gamblin
5c04b3c480
Fix for GitHub #30 and SPACK-70.
2015-04-14 15:11:41 -07:00
Todd Gamblin
8b14a46201
documentation updates
2015-04-14 15:11:01 -07:00
Todd Gamblin
314120212d
Complete diy command.
2015-04-08 00:22:46 -07:00
Todd Gamblin
5077a2a343
Add a DIY stage class.
2015-04-08 00:22:34 -07:00
Todd Gamblin
ab40d0b1a4
Factor edit_package function out of edit command.
2015-04-08 00:22:07 -07:00
Todd Gamblin
c4a6d04131
Start of DIY command.
2015-04-08 00:20:53 -07:00
Todd Gamblin
203fd861aa
Allow spack install -j to throttle make jobs.
2015-04-07 22:21:19 -07:00
Todd Gamblin
ad62b93df9
Merge pull request #23 from mplegendre/rpath_cleanup
...
Only convert -L<path> to -Wl,-rpath,<path> in compiler scripts if <path>...
2015-03-27 14:14:49 -07:00
Matthew LeGendre
a4cce9eb69
Only convert -L<path> to -Wl,-rpath,<path> in compiler scripts if <path> points into the spack install area
...
This specifically fixes problems with building gcc, as build and system directories were turning in in gcc library rpaths.
2015-03-27 13:58:57 -07:00
Todd Gamblin
8364f0404c
Add some options to spec command.
2015-03-24 08:40:45 -07:00
Todd Gamblin
af92250c7e
Add google analytics to docs.
2015-03-15 00:08:58 -07:00
Todd Gamblin
f97966d63a
SPACK-18: simpler build error messages
...
Suppress python stack trace on build error UNLESS in debug mode (spack -d).
Now spack shows errors with a single red arrow, and it's easier to find the actual build output.
2015-03-12 23:50:07 -07:00
Todd Gamblin
132aa690d8
Remove superfluous env scripts (avoid specifically named ones).
2015-03-12 10:39:26 -07:00
Todd Gamblin
560f2c299a
Add install_tree, force_symlink helper functions.
2015-03-12 10:32:29 -07:00
Todd Gamblin
0394adcf8d
Minor doc tweak.
2015-02-25 10:41:12 -08:00
Todd Gamblin
5eb7e46654
Spell check docs
2015-02-24 10:26:26 -08:00
Todd Gamblin
447e295947
SPACK-62: fix for site docs.
2015-02-24 02:45:21 -08:00
Todd Gamblin
daa38d2ff4
SPACK-59: Documentation updates, bugfix in fetching.
2015-02-24 02:45:07 -08:00
Todd Gamblin
049808a34f
Merge remote-tracking branch 'origin/features/SPACK-46' into develop
...
Conflicts:
lib/spack/docs/packaging_guide.rst
2015-02-23 10:46:58 -08:00
Todd Gamblin
daef78f538
Update packaging documentataion.
2015-02-23 10:31:22 -08:00
Todd Gamblin
5699cbb597
Fix SPACK-60: 0.8.15 basic docs.
2015-02-23 01:23:30 -08:00
Todd Gamblin
6dab133d9f
Same package add icon on mac and linux.
2015-02-23 01:23:30 -08:00
Todd Gamblin
d49c98188a
Add an override to colify so we can set terminal dimensions.
2015-02-23 01:23:30 -08:00
Todd Gamblin
02e316e772
Convert ValueErrors to SpackError subclass.
2015-02-18 16:45:54 -08:00
Todd Gamblin
2374eb4dca
Fix for SPACK-62
...
- deactivate -a errors if arg is not activated
- deactivate -af does not.
2015-02-18 16:45:12 -08:00
Todd Gamblin
2eda01c703
uninstall -f ignores nonexisting packages.
2015-02-18 16:21:15 -08:00
Todd Gamblin
2755171e08
Update documentation to reflect new restage/clean behavior.
2015-02-18 14:46:00 -08:00
Todd Gamblin
e67655c31a
docs autodetect version.
2015-02-18 14:33:21 -08:00
Todd Gamblin
c7b8a4e25c
Fix for SPACK-46: cleanup spack clean, spack restage.
2015-02-18 14:00:37 -08:00
Todd Gamblin
14097e39cc
Suppress download status meter when routing I/O to a file.
2015-02-18 10:59:03 -08:00
Todd Gamblin
17ac609d23
Merge branch 'features/memaxes' into develop
...
Conflicts:
var/spack/packages/libpng/package.py
2015-02-17 00:49:52 -08:00
Todd Gamblin
d800c23cec
Better activate/deactivate logic.
...
spack activate
- now activates dependency extensions
- ensures dependencies are activated in the python installation.
- -f/--force option still allows the old activate behavior.
spack deactivate
- checks for dependents before deactivating (like uninstall)
- deactivate -a/--all <extension> will deactviate a package and ALL
of its dependency extensions.
- deactivate -a/--all <extendee> activates all extensions of <extendee>
e.g.: spack deactivate -a python
- deactivate -f/--force option allows removing regardless of dependents.
- deactivate -f can be run EVEN if a package is not activated.
- allows for clenup of activations gone wrong.
2015-02-17 00:24:58 -08:00
Todd Gamblin
67db8ddca8
Factor ignore logic into a predicate builder.
2015-02-17 00:21:15 -08:00
Todd Gamblin
e6b2c27011
Factor out forking logic to build_environment.py.
2015-02-16 21:41:31 -08:00
Todd Gamblin
614c22fc1b
Allow forced deactivation -- best effort unlinking
...
spack deactivate -f will unlink even if Spack thinks the package isn't enabled.
Made deactivate routines idempotent.
2015-02-16 12:41:22 -08:00
Todd Gamblin
2f67cdaf10
Better time output on build completion.
2015-02-15 12:39:10 -08:00
Todd Gamblin
d1e03329c5
Memoize all_specs() and exists() for better performance.
...
- Real bottleneck is calling normalize() for every spec when we read it.
- Need to store graph information in spec files to avoid the need for this.
- Also, normalizing old specs isn't always possible, so we need to do this anyway.
2015-02-15 11:50:13 -08:00
Todd Gamblin
c0c0879924
Better extension activation/deactivation
2015-02-15 01:58:35 -08:00
Todd Gamblin
82dc935a50
installed_extensions_for no longer fails when nothing known about pkg
2015-02-15 01:49:50 -08:00
Todd Gamblin
0c94a6e2b0
Merge branch 'features/python-modules' into features/memaxes
...
Conflicts:
var/spack/packages/qt/package.py
2015-02-12 10:01:58 -08:00
Todd Gamblin
aae364b4c9
"spack extensions" shows total extension count.
2015-02-08 23:26:15 -08:00
Todd Gamblin
c077f05705
Move dpeendency environment setup to build_environemnt.
2015-02-08 22:01:00 -08:00
Todd Gamblin
f81b136547
import fix in cmd/clean
2015-02-08 19:43:10 -08:00
Todd Gamblin
20ec80295d
setup_extension_environment is now setup_dependent_environment.
...
- other packages, like Qt, can now use this to set up relevant build
variables and env vars for their dependencies.
- not just extensions anymore.
2015-02-08 19:41:17 -08:00
Todd Gamblin
60a385d4a4
Minor textual error in extensions command.
2015-02-08 19:40:28 -08:00
Todd Gamblin
befe72b9b9
directory_layout now raises an error when an install fails.
2015-02-08 19:36:30 -08:00
Alfredo Gimenez
a4ac1977a4
merge with python-modules
2015-02-06 16:27:33 -08:00
Todd Gamblin
3a3e4d4391
Do not automatically activate extensions on install.
2015-02-04 15:47:03 -08:00
Todd Gamblin
a9e189972a
Bugfix in spak extensions
2015-02-04 15:42:41 -08:00
Todd Gamblin
5bde8359e8
More information in extensions command.
2015-02-02 11:20:36 -08:00
Todd Gamblin
2d9190d264
Add extensions command.
2015-02-02 11:20:36 -08:00
Todd Gamblin
6b90017efa
Fixed dumb link_tree bug, added test for link tree.
2015-02-02 11:20:35 -08:00
Todd Gamblin
6400ace901
Add "spack extensions" command to list activated extensions.
2015-02-02 11:19:54 -08:00
Todd Gamblin
70c8bf44b8
Fix for install sanity check -- don't count hidden dir layout files.
2015-02-02 11:19:54 -08:00
Todd Gamblin
de91c95e8e
Ability to ignore files in activate/deactivate for extensions.
2015-02-02 11:19:54 -08:00
Todd Gamblin
ff9cb94f4f
Add arguements to extends() and activate/deactivate.
2015-02-02 11:19:54 -08:00
Todd Gamblin
2ae7f53b83
Bugfix: Extension hooks shoudl only run for extensions.
2015-02-02 11:19:54 -08:00
Todd Gamblin
89ccdf92cd
Add activate and deactivate commands for extensions.
2015-02-02 11:19:54 -08:00
Todd Gamblin
acc62abbd0
Rework do_activate/activate and do_deactivate/deactivate semantics.
...
- packages can now extend only one other package.
- do_activate() and do_deactivate() are now called on the extension,
and they automatically find the extendee
- activate() and deactivate() are still called on the extendee and are
passed the extension.
2015-02-02 11:19:53 -08:00
Todd Gamblin
d13bbeb605
Add PYTOHNPATH to modules for python extensions.
2015-02-02 11:19:53 -08:00
Todd Gamblin
bcccf02020
Add setup_extension_environment() method.
...
- lets packages do some setup before their extensions run install()
2015-02-02 11:19:53 -08:00
Todd Gamblin
82946d2914
Move symlink tree routines to LinkTree class.
2015-02-02 11:19:52 -08:00
Todd Gamblin
9977543478
Added feature: package extensions
...
- packages can be "extended" by others
- allows extension to be symlinked into extendee's prefix.
- used for python modules.
- first module: py-setuptools
2015-02-02 11:19:00 -08:00