A flexible package manager that supports multiple versions, configurations, platforms, and compilers.
Go to file
Scott Wittenburg fce1c4133f buildcache: Add sub-commands needed by release workflow
Adds four new sub-commands to the buildcache command:

1. save-yaml: Takes a root spec and a list of dependent spec names,
along with a directory in which to save yaml files, and writes out
the full spec.yaml for each of the dependent specs.  This only needs
to concretize the root spec once, then indexes it with the names of
the dependent specs.

2. check: Checks a spec (via either an abstract spec or via a full
spec.yaml) against remote mirror to see if it needs to be rebuilt.
Comparies full_hash stored on remote mirror with full_hash computed
locally to determine whether spec needs to be rebuilt.  Can also
generate list of specs to check against remote mirror by expanding
the set of release specs expressed in etc/spack/defaults/release.yaml.

3. get-buildcache-name: Makes it possible to attempt to read directly
the spec.yaml file on a remote or local mirror by providing the path
where the file should live based on concretizing the spec.

4. download: Downloads all buildcache files associated with a spec
on a remote mirror, including any .spack, .spec, and .cdashid files
that might exist.  Puts the files into the local path provided on
the command line, and organizes them in the same hierarchy found on
the remote mirror

This commit also refactors lib/spack/spack/util/web.py to expose
functionality allowing other modules to read data from a url.
2019-02-21 15:37:35 -06:00
.github/ISSUE_TEMPLATE bug report template: suggest --stacktrace instead of -s (#10548) 2019-02-07 21:06:57 -06:00
bin copyright: update license headers for 2013-2019 copyright. 2019-01-01 00:44:28 -08:00
etc/spack/defaults
lib/spack buildcache: Add sub-commands needed by release workflow 2019-02-21 15:37:35 -06:00
share/spack buildcache: Add sub-commands needed by release workflow 2019-02-21 15:37:35 -06:00
var/spack add charliecloud 0.9.7 (#10661) 2019-02-21 09:58:37 +01:00
.codecov.yml coverage: use kcov to get coverage for our cc script 2018-12-29 23:47:29 -08:00
.coveragerc coverage: use kcov to get coverage for our cc script 2018-12-29 23:47:29 -08:00
.dockerignore
.flake8 Typo fixes in .flake8 comments (#10399) 2019-01-21 12:35:11 +01:00
.flake8_packages Typo fixes in .flake8 comments (#10399) 2019-01-21 12:35:11 +01:00
.gitignore
.mailmap
.travis.yml stopgap: allow travis to fail for Python 2.6 again 2018-12-30 00:19:08 -08:00
CODE_OF_CONDUCT.md
CONTRIBUTING.md
COPYRIGHT
LICENSE-APACHE
LICENSE-MIT copyright: update license headers for 2013-2019 copyright. 2019-01-01 00:44:28 -08:00
NOTICE
README.md README: LLNL release number and SPDX id don't need to be monospaced. 2019-01-01 00:44:28 -08:00

Spack Spack

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/spack/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.

Twitter

You can follow @spackpm on Twitter for updates. Also, feel free to @mention us in in questions or comments about your own experience with Spack.

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:

License

Spack is distributed under the terms of both the MIT license and the Apache License (Version 2.0). Users may choose either license, at their option.

All new contributions must be made under both the MIT and Apache-2.0 licenses.

See LICENSE-MIT, LICENSE-APACHE, COPYRIGHT, and NOTICE for details.

SPDX-License-Identifier: (Apache-2.0 OR MIT)

LLNL-CODE-647188