Commit graph

17363 commits

Author SHA1 Message Date
Todd Gamblin
87fedc7e1e Added support for virtual dependencies ("provides") 2013-12-07 13:51:46 -08:00
Todd Gamblin
344e902b15 More stage tests. 2013-12-01 23:57:07 -08:00
Todd Gamblin
ff2018bc85 Reworked stage paths to allow %u for username. Added stage test. 2013-11-24 14:06:11 -08:00
Todd Gamblin
3de3efc75d Gracefully handle lack of network connection. 2013-11-23 21:01:07 -08:00
Todd Gamblin
1247036141 Generalize package relations like depends_on, provides, conflicts.
All of these do the same thing.  So they are all now generalized
to a single closure function; just the name of the updated variable
in the package is different.
2013-11-23 15:46:04 -08:00
Todd Gamblin
6cf6eac3de Move concretization into its own class.
Allows easy overriding of a single policy.
2013-11-23 15:18:43 -08:00
Todd Gamblin
f31aaeed98 Cleanup and comments. 2013-11-23 14:55:09 -08:00
Todd Gamblin
2dff2f3341 Fix virtual method. 2013-11-23 13:43:59 -08:00
Todd Gamblin
389fa1792d Added web spider capability for listing versions. 2013-11-23 13:04:36 -08:00
Todd Gamblin
fe7da0dcff Update libdwarf URL. 2013-11-20 14:43:17 -07:00
Todd Gamblin
b5c565891f First cut concretization works, with tests.
Mock packages now all have their own version lists.
2013-10-26 14:04:09 -07:00
Todd Gamblin
7bdf93234a Added unit tests for spec normalization. 2013-10-18 16:39:09 -07:00
Todd Gamblin
481a617d65 spack test runs all tests by default
'spack test -a' formerly ran all test and 'spack test' listed available tests.
Now, 'spack test' runs all tests and 'spack test -l' lists available ones.
2013-10-17 14:53:40 -07:00
Todd Gamblin
558cf7e406 spec flatten, normalize, validate; package validate
New operations for manipulating spec and package DAGs.

For specs:
	flatten:   gather all deps to the root
	normalize: Merge constraints and make spec match package DAG

For packages:
	validate_dependencies: Make sure spec constraints in package DAG are sane.

Added tests for above methods.  Also added beginnings of concretization logic,
to turn abstract spec into a concrete one.

Still need proper tests for normalize().
2013-10-17 14:46:00 -07:00
Todd Gamblin
db07c7f611 Spec constraints and normalization now work.
- Specs can be "constrained" by other specs, throw exceptions when constraint
  can't be satisfied.

- Normalize will put a spec in DAG form and merge all package constraints with
  the spec.

- Ready to add concretization policies for abstract specs now.
2013-10-15 03:04:25 -07:00
Todd Gamblin
3fb7699e1e Command to launch interpreter with spack in sys.path 2013-10-11 23:24:06 -07:00
Todd Gamblin
09fd944de5 Command to run pydoc on spack classes. 2013-10-11 23:23:41 -07:00
Todd Gamblin
bb63327da0 Refactor utils into separate modules. 2013-10-07 18:54:58 -07:00
Todd Gamblin
f2046a4aa3 Start to make a bigger package out of utils.py
- moved none_compare functions to util.none_high
  and util.none_low packages
- renamed utils.py to util package
2013-10-07 18:12:26 -07:00
Todd Gamblin
618571b807 Checkpoint commit: much-improved spec class.
Still organizing things.
2013-10-07 17:57:27 -07:00
Todd Gamblin
157737efbe Add spec architeccture, redo color output support. 2013-06-29 15:59:43 -07:00
Todd Gamblin
ebc507dc6e Clean up half-downloaded tarballs. 2013-06-29 15:59:08 -07:00
Todd Gamblin
7a67cc1675 Adding expression syntax for console colors. 2013-06-29 15:56:29 -07:00
Todd Gamblin
5c761aafab Add checks for version 2.7 2013-06-02 13:54:46 -07:00
Todd Gamblin
8f37817ae1 Better error messages for spack list -v. 2013-05-17 16:56:00 -07:00
Todd Gamblin
57ef3b8a80 Ability to list versions from web page with spack list -v PACKAGE
Experimental feature automatically parses versions out of web pages and prints what
it thinks are avaialble versions of a package, e.g.:

    $ spack list -v libunwind
    1.1    1.0   0.98.6  0.98.4  0.98.2  0.98  0.96  0.93  0.91  0.1
    1.0.1  0.99  0.98.5  0.98.3  0.98.1  0.97  0.95  0.92  0.9   0.0
2013-05-17 16:25:00 -07:00
Todd Gamblin
6e557798e8 Added command to print out URL and homepage. 2013-05-17 16:04:56 -07:00
Todd Gamblin
7c98ee9644 Renamed variables called 'spec' to 'path' 2013-05-17 10:38:39 -07:00
Todd Gamblin
340fe565d4 Use realpath in addition to expanduser to locate spack directory. 2013-05-15 16:47:50 -07:00
Todd Gamblin
eb0832e379 list_modules will now find directories. 2013-05-13 10:35:38 -07:00
Todd Gamblin
b2f78ef78e Added EBNF grammar. 2013-05-12 19:30:55 -07:00
Todd Gamblin
b2a5fef6ad Commands take specs as input instead of names.
modified clean, create, fetch, install, and uninstall
2013-05-12 14:17:38 -07:00
Todd Gamblin
ad4411bc9e More rubust spec parsing and error messages 2013-05-12 11:10:36 -07:00
Todd Gamblin
c3f52f0200 Initial implementation of package specs, including parser.
spec.py can parse full dependence specs like this:
	openmpi@1.4.3:1.4.5%intel+debug ^hwloc@1.2

These will be used to specify how to install packages and their dependencies,
as well as to specify restrictions (e.g., on particular versions) for
dependencies.  e.g.:

class SomePackage(Package):
	depends_on('boost@1.46,1.49')

This would require either of those two versions of boost.

This also moves depends_on out to relations.py and adds
"provides", which will allow packages to provide virtual
dependences.

This is just initial implementation of the parsing and objects
to represent specs.  They're not integrated with packages yet.
2013-05-09 14:21:16 -07:00
Todd Gamblin
5dd2c53e38 Removed old versions.py 2013-05-09 14:19:03 -07:00
Todd Gamblin
1b1c1c07f9 Don't exit after one test. 2013-05-09 14:18:38 -07:00
Todd Gamblin
fd93d4c235 Changed class name. 2013-05-09 14:18:11 -07:00
Todd Gamblin
2df8a29b9b Removed executable bit. 2013-05-09 14:15:38 -07:00
Todd Gamblin
50718fe57f Tests can be run via spack test <test_name> 2013-04-28 11:27:33 -07:00
Todd Gamblin
453471cb05 Better help formatting. 2013-04-08 23:00:42 -07:00
Todd Gamblin
39b242a134 Merge pull request #1 from feature-platforms to master
* commit '422d291b111464599618a538ee1ca3334c698ab8':
  This adds support for multi-platform methods.
2013-04-08 19:06:34 -07:00
Todd Gamblin
422d291b11 This adds support for multi-platform methods.
You can now do this:
class MyPackage(Package):
    def install(self):
        ...default install...

    @platform('bgqos_0')
    def install(self):
        ...specialized install for bgq...

This works on functions other than install, as well (as long as they're in a Package)
2013-04-04 10:22:49 -07:00
Todd Gamblin
e1551de976 Moved install-spack to its own simpler command. 2013-03-25 15:27:28 -07:00
Todd Gamblin
b224d249bb Print files that are in the way of install. 2013-03-25 11:30:11 -07:00
Todd Gamblin
3229e47e5d Adding install script 2013-03-25 11:25:27 -07:00
Todd Gamblin
aa0fd6c17a Fix in docs. 2013-03-22 16:24:44 -07:00
Todd Gamblin
269cf53a68 Documentation and small changes. 2013-03-22 13:46:01 -07:00
Todd Gamblin
e410df743a Simpler implementation of depends_on. 2013-02-25 18:18:48 -08:00
Todd Gamblin
27b9204785 Better spack -h: added cmd descriptions.
- each cmd has a desscription attribute that is used for the help strign in argparse.
2013-02-22 00:20:24 -08:00
Todd Gamblin
707db8dafe Better handling of stage.
- better symlink handling
- remove stage directories on successful install.
2013-02-21 23:03:40 -08:00