2018-01-17 17:06:14 +00:00
# <img src="https://cdn.rawgit.com/spack/spack/develop/share/spack/logo/spack-logo.svg" width="64" valign="middle" alt="Spack"/> Spack
2014-01-13 04:10:08 +00:00
2017-11-05 00:08:04 +00:00
[![Build Status ](https://travis-ci.org/spack/spack.svg?branch=develop )](https://travis-ci.org/spack/spack)
[![codecov ](https://codecov.io/gh/spack/spack/branch/develop/graph/badge.svg )](https://codecov.io/gh/spack/spack)
2017-05-06 19:24:45 +00:00
[![Read the Docs ](https://readthedocs.org/projects/spack/badge/?version=latest )](https://spack.readthedocs.io)
2017-06-19 08:00:40 +00:00
[![Slack ](https://spackpm.herokuapp.com/badge.svg )](https://spackpm.herokuapp.com)
2015-11-30 05:40:23 +00:00
2017-06-17 17:37:33 +00:00
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.
2014-01-13 04:10:08 +00:00
See the
2016-09-06 21:52:44 +00:00
[Feature Overview ](http://spack.readthedocs.io/en/latest/features.html )
2014-01-13 04:10:08 +00:00
for examples and highlights.
2017-06-17 17:37:33 +00:00
To install spack and your first package, make sure you have Python.
Then:
2014-01-13 04:10:08 +00:00
2017-11-05 00:08:04 +00:00
$ git clone https://github.com/spack/spack.git
2014-01-13 04:10:08 +00:00
$ cd spack/bin
$ ./spack install libelf
Documentation
----------------
2016-08-31 04:19:31 +00:00
[**Full documentation** ](http://spack.readthedocs.io/ ) for Spack is
2015-11-29 03:25:53 +00:00
the first place to look.
2017-06-17 17:37:33 +00:00
Try the
[**Spack Tutorial** ](http://spack.readthedocs.io/en/latest/tutorial.html ),
to learn how to use spack, write packages, or deploy packages for users
at your site.
2016-11-15 01:35:21 +00:00
2015-11-29 03:25:53 +00:00
See also:
* [Technical paper ](http://www.computer.org/csdl/proceedings/sc/2015/3723/00/2807623.pdf ) and
[slides ](https://tgamblin.github.io/files/Gamblin-Spack-SC15-Talk.pdf ) on Spack's design and implementation.
* [Short presentation ](https://tgamblin.github.io/files/Gamblin-Spack-Lightning-Talk-BOF-SC15.pdf ) from the *Getting Scientific Software Installed* BOF session at Supercomputing 2015.
2015-03-24 16:58:32 +00:00
Get Involved!
2015-03-24 16:28:47 +00:00
------------------------
2015-03-24 16:58:32 +00:00
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
2017-06-19 08:00:40 +00:00
If you are interested in contributing to spack, join the mailing list.
We're using Google Groups for this:
2015-03-24 16:28:47 +00:00
2015-04-13 18:02:13 +00:00
* [Spack Google Group ](https://groups.google.com/d/forum/spack )
2015-03-24 16:28:47 +00:00
2017-06-19 08:00:40 +00:00
### Slack channel
Spack has a Slack channel where you can chat about all things Spack:
* [Spack on Slack ](https://spackpm.slack.com )
[Sign up here ](https://spackpm.herokuapp.com ) to get an invitation mailed
to you.
2015-03-24 16:58:32 +00:00
### Contributions
2016-08-25 09:46:12 +00:00
Contributing to Spack is relatively easy. Just send us a
2016-08-10 19:54:42 +00:00
[pull request ](https://help.github.com/articles/using-pull-requests/ ).
2016-03-30 20:44:08 +00:00
When you send your request, make ``develop`` the destination branch on the
2017-11-05 00:08:04 +00:00
[Spack repository ](https://github.com/spack/spack ).
2015-03-24 16:58:32 +00:00
2016-10-14 16:16:13 +00:00
Your PR must pass Spack's unit tests and documentation tests, and must be
2017-06-17 17:37:33 +00:00
[PEP 8 ](https://www.python.org/dev/peps/pep-0008/ ) compliant. We enforce
2017-11-05 00:08:04 +00:00
these guidelines with [Travis CI ](https://travis-ci.org/spack/spack ). To
2017-06-17 17:37:33 +00:00
run these tests locally, and for helpful tips on git, see our
2016-10-14 16:16:13 +00:00
[Contribution Guide ](http://spack.readthedocs.io/en/latest/contribution_guide.html ).
2016-08-10 19:54:42 +00:00
2017-06-17 17:37:33 +00:00
Spack uses a rough approximation of the
[Git Flow ](http://nvie.com/posts/a-successful-git-branching-model/ )
2015-03-24 16:58:32 +00:00
branching model. The ``develop`` branch contains the latest
2017-06-17 17:37:33 +00:00
contributions, and ``master`` is always tagged and points to the latest
stable release.
2015-03-24 16:58:32 +00:00
2014-01-13 04:10:08 +00:00
Authors
----------------
2017-11-05 00:08:04 +00:00
Many thanks go to Spack's [contributors ](https://github.com/spack/spack/graphs/contributors ).
2015-10-18 00:41:17 +00:00
2017-06-17 17:37:33 +00:00
Spack was created by Todd Gamblin, tgamblin@llnl.gov.
2014-08-01 15:33:00 +00:00
2015-11-29 03:25:53 +00:00
### Citing Spack
If you are referencing Spack in a publication, please cite the following paper:
* Todd Gamblin, Matthew P. LeGendre, Michael R. Collette, Gregory L. Lee,
Adam Moody, Bronis R. de Supinski, and W. Scott Futral.
[**The Spack Package Manager: Bringing Order to HPC Software Chaos** ](http://www.computer.org/csdl/proceedings/sc/2015/3723/00/2807623.pdf ).
In *Supercomputing 2015 (SC’ 15)* , Austin, Texas, November 15-20 2015. LLNL-CONF-669890.
2014-08-01 15:33:00 +00:00
Release
----------------
Spack is released under an LGPL license. For more details see the
2017-06-25 05:22:55 +00:00
NOTICE and LICENSE files.
2014-08-01 15:33:00 +00:00
``LLNL-CODE-647188``
2017-06-17 17:37:33 +00:00
![Analytics ](https://ga-beacon.appspot.com/UA-101208306-3/welcome-page?pixel )