- Notifications
You must be signed in to change notification settings - Fork2.4k
A flexible package manager that supports multiple versions, configurations, platforms, and compilers.
License
Apache-2.0, MIT licenses found
Licenses found
spack/spack
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Spack is a multi-platform package manager that builds and installsmultiple versions and configurations of software. It works on Linux,macOS, Windows, and many supercomputers. Spack is non-destructive: installing anew version of a package does not break existing installations, so manyconfigurations of the same package can coexist.
Spack offers a simple "spec" syntax that allows users to specify versionsand configuration options. Package files are written in pure Python, andspecs allow package authors to write a single script for many differentbuilds of the same package. With Spack, you can build your softwareall the ways you want to.
See theFeature Overviewfor examples and highlights.
To install spack, first make sure you have Python & Git.Then:
git clone --depth=2 https://github.com/spack/spack.git
# For bash/zsh/sh. spack/share/spack/setup-env.sh# For tcsh/cshsource spack/share/spack/setup-env.csh# For fish. spack/share/spack/setup-env.fish
# Now you're ready to install a package!spack install zlib-ng
Full documentation is available, orrunspack help
orspack help --all
.
For a cheat sheet on Spack syntax, runspack help --spec
.
We maintain ahands-on tutorial.It covers basic to advanced usage, packaging, developer features, and large HPCdeployments. You can do all of the exercises on your own laptop using aDocker container.
Feel free to use these materials to teach users at your organizationabout Spack.
Spack is an open source project. Questions, discussion, andcontributions are welcome. Contributions can be anything from newpackages to bugfixes, documentation, or even new core features.
Resources:
- Slack workspace:spackpm.slack.com.To get an invitation, visitslack.spack.io.
- Matrix space:#spack-space:matrix.org:bridged to Slack.
- Github Discussions:for Q&A and discussions. Note the pinned discussions for announcements.
- X:@spackpm. Be sure to
@mention
us! - Mailing list:groups.google.com/d/forum/spack:only for announcements. Please use other venues for discussions.
Contributing to Spack is relatively easy. Just send us apull request.
Most contributors will want to contribute to Spack's community packagerecipes. To do that, you should visit thespack-packages repository.
If you want to contribute to Spack itself, you can submit a pull requestto thespack repository (this repository).
Your PR must:
- Make
develop
the destination branch; - Pass Spack's unit tests, documentation tests, and package build tests;
- BePEP 8 compliant;
- Sign off all commits with
git commit --signoff
. Signoff says that youagree to theDeveloper Certificate of Origin.Note that this is different fromsigning commits,which you may also do, but it's not required.
We enforce these guidelines with our continuous integration (CI) process.To run tests locally, and for helpful tips on git, see ourContribution Guide.
For multi-user site deployments or other use cases that need very stablesoftware installations, we recommend using Spack'sstable releases.
Each Spack release series also has a corresponding branch, e.g.releases/v0.14
has0.14.x
versions of Spack, andreleases/v0.13
has0.13.x
versions. We backport important bug fixes to these branches butwe do not advance the package versions or make other changes that wouldchange the way Spack concretizes dependencies within a release branch.So, you can base your Spack deployment on a release branch andgit pull
to get fixes, without the package churn that comes withdevelop
.
The latest release is always available with thereleases/latest
tag.
See thedocs on releasesfor more details.
Please note that Spack has aCode of Conduct. By participating inthe Spack community, you agree to abide by its rules.
Many thanks go to Spack'scontributors.
Spack was created by Todd Gamblin,tgamblin@llnl.gov.
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.InSupercomputing 2015 (SC’15), Austin, Texas, November 15-20 2015. LLNL-CONF-669890.
On GitHub, you can copy this citation in APA or BibTeX format via the "Cite this repository"button. Or, see the comments inCITATION.cff
for the raw BibTeX.
Spack is distributed under the terms of both the MIT license and theApache License (Version 2.0). Users may choose either license, at theiroption.
All new contributions must be made under both the MIT and Apache-2.0licenses.
SeeLICENSE-MIT,LICENSE-APACHE,COPYRIGHT, andNOTICE for details.
SPDX-License-Identifier: (Apache-2.0 OR MIT)
LLNL-CODE-811652
About
A flexible package manager that supports multiple versions, configurations, platforms, and compilers.
Topics
Resources
License
Apache-2.0, MIT licenses found
Licenses found
Code of conduct
Security policy
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Packages0
Uh oh!
There was an error while loading.Please reload this page.
Uh oh!
There was an error while loading.Please reload this page.