Commit graph

2674 commits

Author SHA1 Message Date
Todd Gamblin
dfd0440a7e Color tweaks for find. 2013-12-21 15:30:35 -08:00
Todd Gamblin
a63482be73 Docs for spack find 2013-12-21 15:30:35 -08:00
Todd Gamblin
88017ec49e Made formatting specs easier with format() syntax.
- Replaced existing str_no_deps() function with more flexible format() function.
- Spec.tree() can take a format argument now, as well.
2013-12-21 15:30:35 -08:00
Todd Gamblin
e645bb065a SPACK-1: Multi-version installation now works front to back with specs. 2013-12-21 15:30:10 -08:00
Todd Gamblin
af639dca16 Make dirty installs part of package lifecycle 2013-12-18 11:42:56 -08:00
Todd Gamblin
c7beac295d More on installing with virtual packages 2013-12-18 11:36:55 -08:00
Todd Gamblin
256c42a34c Added a target to upload docs automatically. 2013-12-18 11:18:11 -08:00
Todd Gamblin
7be511a352 Finished basic usage. 2013-12-18 11:02:31 -08:00
Todd Gamblin
c9e40b725d Start of basic documentation 2013-12-12 04:25:31 -08:00
Todd Gamblin
c7539fe950 Better info command. 2013-12-12 01:04:32 -08:00
Todd Gamblin
7575f99bea Documentation skeleton 2013-12-09 20:17:08 -08:00
Todd Gamblin
8d51c95e68 use get instead of setdefault for kwargs. 2013-12-09 10:44:46 -08:00
Todd Gamblin
936f54761b type(foo) == bar -> isinstance(foo, bar)
Changed type checks in most places.
2013-12-09 00:47:17 -08:00
Todd Gamblin
fa2e8dab11 Additional circular reference checking 2013-12-08 21:38:37 -08:00
Todd Gamblin
e0c029c347 Fixes for virtual packages.
- Added more tests
- cleaned up spec preorder traversal
- fixed concretization
2013-12-08 19:26:29 -08:00
Todd Gamblin
90f2154a32 Better test output -- include totals. 2013-12-07 15:16:09 -08:00
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
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
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
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
Todd Gamblin
5899308ad3 Parallel bootstrap for cmake. 2013-02-21 20:05:11 -08:00
Todd Gamblin
bd59689fdc Minor changes; loosened up parallel build for dwarf. 2013-02-21 19:27:27 -08:00
Todd Gamblin
b39165b999 Fix regression in clean. 2013-02-21 19:10:28 -08:00
Todd Gamblin
2a908d6a0e Added help command and purge command. 2013-02-21 19:05:56 -08:00
Todd Gamblin
705447bdc2 Use tmp directory for downloading and building 2013-02-21 19:05:16 -08:00
Todd Gamblin
1c4e16afdf Fixed bug in parallel make option. 2013-02-20 15:44:25 -08:00
Todd Gamblin
fb172bc702 Added libunwind and fixed link issues in cc. 2013-02-20 15:22:00 -08:00
Todd Gamblin
48b0351945 Fixed passing of dependence prefixes to cc. libdwarf works. 2013-02-19 19:26:54 -08:00
Todd Gamblin
d534c539d4 Fixes, remove parallel build for libdwarf due to race case. 2013-02-19 17:08:38 -08:00
Todd Gamblin
7d9d4f3484 rpaths for dependencies. elf, dwarf, cmake build on Linux 2013-02-19 01:20:50 -08:00
Todd Gamblin
5d81cfdac6 Require python2.7 2013-02-18 23:52:50 -08:00
Todd Gamblin
38becacace Dependencies now work. Added libelf, libdwarf. 2013-02-18 23:46:04 -08:00
Todd Gamblin
cc76c0f5f9 Initial version of spack with one package: cmake 2013-02-13 17:50:44 -08:00