A flexible package manager that supports multiple versions, configurations, platforms, and compilers.
Go to file
iulian787 75b8d728bd Moab 5.0 and meshkit 1.5 (#4557)
* enable some of the tools

do not make zoltan default

* modify moab package

add shared, debug options to cgm, too
build some tools by default (mbsize, mbconvert)
add hdf5, netcdf dependency
add pnetcdf variant (dependency), metis, parmetis, zoltan
add shared, debug, fortran options to moab

* few kinks for moab

zoltan should be built without fortran api, otherwise moab
complains (need to fix)
also, notice that when built with cgm, shared can't find
cgm libraries for the new tools/geometry execs

install in serial for the time being (because of example makefile
duplicate?)

for example, these builds are successful:
spack install moab+mpi+hdf5+zoltan ^mpich@3.2
spack install moab+mpi+hdf5+shared ^mpich@3.2

* force hdf5+mpi if both are specified

also, something like this works:
spack install  moab+mpi+hdf5+cgm ^mpich@3.2 ^cgm+oce+mpi ^oce@0.17.2

use mpich32, and cgm built with oce 0.17.2

* forgot about irel, fbigeom, mbcoupler

* add meshkit package

simple build so far, moab and cgm deps only

also, an example of complex build for cgm
spack install  moab+mpi+hdf5+cgm+irel+fbigeom ^mpich@3.2 ^cgm+oce+mpi ^oce@0.17.2

* for meshkit, moab needs to have irel, fbigeom

* forgot to self.spec

after building moab with cgm with oce 0.17.2, we can build
meshkit with something like this
spack install meshkit ^moab/tsb75zk

cgm depencency is found out from moab

moab has to be built with irel and fbigeom

* add netgen package and review

do not support yet older versions of meshkit
(which depend on lasso, etc)
add netgen package; tested with meshkit (netgen has to be built without
occ, for meshkit)
We are not enforcing that yet, we may have to test

* use conflicts where needed, suggested by review

remove release candidates

* flake8 alignment errors

* flake8

* reviews

flake8 alignment
explicit options, even for default variants
variant for netgen should be "gui", with the default ~gui (False)
FIXME: with-occ does not work right for netgen ; maybe it should be disabled?
       also, with +gui, it should depend on a lot more, like tk, tcl?

* flake8 issues

whitespaces and a comment in netgen

* add more explicit options

--without-mpi needs fixing for cgm, moab and meshkit
add variable url for netgen (although we don''t know if other
versions will appear)

* flake8, trailing whitespace
2017-06-23 08:53:43 -05:00
bin fix intltool_sbang issue #4191 (#4192) 2017-06-14 13:24:01 -05:00
etc/spack/defaults refactor openfoam packages (#3669) 2017-06-21 11:35:31 -05:00
lib/spack fix issue #4577 (#4579) 2017-06-21 18:33:11 -05:00
share/spack Fix tab completion of Spack subcommands (#4442) 2017-06-07 11:52:07 -05:00
var/spack Moab 5.0 and meshkit 1.5 (#4557) 2017-06-23 08:53:43 -05:00
.codecov.yml qa: adjust thresholds for acceptance (#3105) 2017-02-09 08:31:57 -08:00
.coveragerc unit tests: replace nose with pytest (#2502) 2016-12-29 07:48:48 -08:00
.flake8 Properly ignore flake8 F811 redefinition errors (#3932) 2017-04-25 11:01:25 -07:00
.gitignore unit tests: replace nose with pytest (#2502) 2016-12-29 07:48:48 -08:00
.mailmap Update mail map. So many email aliases. 2016-10-19 22:47:39 -07:00
.travis.yml travis: fixes failure on six (#4415) 2017-06-01 14:42:33 +02:00
LICENSE Correct LLNL LGPL license template for clarity. 2016-05-11 21:22:25 -07:00
pytest.ini unit tests: replace nose with pytest (#2502) 2016-12-29 07:48:48 -08:00
README.md Add Slack info to READMEmd (#4542) 2017-06-19 01:00:40 -07:00

image

Build Status codecov Read the Docs Slack

Spack is a multi-platform package manager that builds and installs multiple versions and configurations of software. It works on Linux, macOS, and many supercomputers. Spack is non-destructive: installing a new version of a package does not break existing installations, so many configurations of the same package can coexist.

Spack offers a simple "spec" syntax that allows users to specify versions and configuration options. Package files are written in pure Python, and specs allow package authors to write a single script for many different builds of the same package. With Spack, you can build your software all the ways you want to.

See the Feature Overview for examples and highlights.

To install spack and your first package, make sure you have Python. Then:

$ git clone https://github.com/llnl/spack.git
$ cd spack/bin
$ ./spack install libelf

Documentation

Full documentation for Spack is the first place to look.

Try the Spack Tutorial, to learn how to use spack, write packages, or deploy packages for users at your site.

See also:

Get Involved!

Spack is an open source project. Questions, discussion, and contributions are welcome. Contributions can be anything from new packages to bugfixes, or even new core features.

Mailing list

If you are interested in contributing to spack, join the mailing list. We're using Google Groups for this:

Slack channel

Spack has a Slack channel where you can chat about all things Spack:

Sign up here to get an invitation mailed to you.

Contributions

Contributing to Spack is relatively easy. Just send us a pull request. When you send your request, make develop the destination branch on the Spack repository.

Your PR must pass Spack's unit tests and documentation tests, and must be PEP 8 compliant. We enforce these guidelines with Travis CI. To run these tests locally, and for helpful tips on git, see our Contribution Guide.

Spack uses a rough approximation of the Git Flow branching model. The develop branch contains the latest contributions, and master is always tagged and points to the latest stable release.

Authors

Many thanks go to Spack's contributors.

Spack was created by Todd Gamblin, tgamblin@llnl.gov.

Citing Spack

If you are referencing Spack in a publication, please cite the following paper:

Release

Spack is released under an LGPL license. For more details see the LICENSE file.

LLNL-CODE-647188

Analytics