compiler-wrapper
A flexible package manager that supports multiple versions, configurations, platforms, and compilers.
Science Score: 54.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
✓CITATION.cff file
Found CITATION.cff file -
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
○DOI references
-
○Academic publication links
-
✓Committers with academic emails
319 of 1566 committers (20.4%) from academic institutions -
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (14.6%) to scientific vocabulary
Keywords
Keywords from Contributors
Repository
A flexible package manager that supports multiple versions, configurations, platforms, and compilers.
Basic Info
- Host: GitHub
- Owner: spack
- License: apache-2.0
- Language: Python
- Default Branch: develop
- Homepage: https://spack.io
- Size: 224 MB
Statistics
- Stars: 4,782
- Watchers: 97
- Forks: 2,409
- Open Issues: 2,047
- Releases: 56
Topics
Metadata Files
README.md
Spack is a multi-platform package manager that builds and installs multiple versions and configurations of software. It works on Linux, macOS, Windows, 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.
Installation
To install spack, first make sure you have Python & Git. Then:
bash
git clone --depth=2 https://github.com/spack/spack.git
```bash
For bash/zsh/sh
. spack/share/spack/setup-env.sh
For tcsh/csh
source spack/share/spack/setup-env.csh
For fish
. spack/share/spack/setup-env.fish ```
```bash
Now you're ready to install a package!
spack install zlib-ng ```
Documentation
Full documentation is available, or
run spack help or spack help --all.
For a cheat sheet on Spack syntax, run spack help --spec.
Tutorial
We maintain a hands-on tutorial. It covers basic to advanced usage, packaging, developer features, and large HPC deployments. You can do all of the exercises on your own laptop using a Docker container.
Feel free to use these materials to teach users at your organization about Spack.
Community
Spack is an open source project. Questions, discussion, and contributions are welcome. Contributions can be anything from new packages to bugfixes, documentation, or even new core features.
Resources:
- Slack workspace: spackpm.slack.com. To get an invitation, visit slack.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
@mentionus! - Mailing list: groups.google.com/d/forum/spack: only for announcements. Please use other venues for discussions.
Contributing
Contributing to Spack is relatively easy. Just send us a pull request.
Most contributors will want to contribute to Spack's community package recipes. To do that, you should visit the spack-packages repository.
If you want to contribute to Spack itself, you can submit a pull request to the spack repository (this repository).
Your PR must:
- Make
developthe destination branch; - Pass Spack's unit tests, documentation tests, and package build tests;
- Be PEP 8 compliant;
- Sign off all commits with
git commit --signoff. Signoff says that you agree to the Developer Certificate of Origin. Note that this is different from signing 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 our Contribution Guide.
Releases
For multi-user site deployments or other use cases that need very stable software installations, we recommend using Spack's stable releases.
Each Spack release series also has a corresponding branch, e.g.
releases/v0.14 has 0.14.x versions of Spack, and releases/v0.13 has
0.13.x versions. We backport important bug fixes to these branches but
we do not advance the package versions or make other changes that would
change the way Spack concretizes dependencies within a release branch.
So, you can base your Spack deployment on a release branch and git pull
to get fixes, without the package churn that comes with develop.
The latest release is always available with the releases/latest tag.
See the docs on releases for more details.
Code of Conduct
Please note that Spack has a Code of Conduct. By participating in the Spack community, you agree to abide by its rules.
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:
- 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. In Supercomputing 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 in CITATION.cff for the raw BibTeX.
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-811652
Owner
- Name: Spack
- Login: spack
- Kind: organization
- Location: Worldwide
- Website: https://spack.io
- Twitter: spackpm
- Repositories: 48
- Profile: https://github.com/spack
A flexible package manager that supports multiple versions, configurations, platforms, and compilers.
Citation (CITATION.cff)
# If you are referencing Spack in a publication, please cite the SC'15 paper
# described here.
#
# Here's the raw citation:
#
# 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.
# In Supercomputing 2015 (SC’15), Austin, Texas, November 15-20 2015. LLNL-CONF-669890.
#
# Or, in BibTeX:
#
# @inproceedings{Gamblin_The_Spack_Package_2015,
# address = {Austin, Texas, USA},
# author = {Gamblin, Todd and LeGendre, Matthew and
# Collette, Michael R. and Lee, Gregory L. and
# Moody, Adam and de Supinski, Bronis R. and Futral, Scott},
# doi = {10.1145/2807591.2807623},
# month = {November 15-20},
# note = {LLNL-CONF-669890},
# series = {Supercomputing 2015 (SC’15)},
# title = {{The Spack Package Manager: Bringing Order to HPC Software Chaos}},
# url = {https://github.com/spack/spack},
# year = {2015}
# }
#
# And here's the CITATION.cff format:
#
cff-version: 1.2.0
type: software
message: "If you are referencing Spack in a publication, please cite the paper below."
title: "The Spack Package Manager: Bringing Order to HPC Software Chaos"
abstract: >-
Large HPC centers spend considerable time supporting software for thousands of users, but the
complexity of HPC software is quickly outpacing the capabilities of existing software management
tools. Scientific applications require specific versions of compilers, MPI, and other dependency
libraries, so using a single, standard software stack is infeasible. However, managing many
configurations is difficult because the configuration space is combinatorial in size. We
introduce Spack, a tool used at Lawrence Livermore National Laboratory to manage this complexity.
Spack provides a novel, re- cursive specification syntax to invoke parametric builds of packages
and dependencies. It allows any number of builds to coexist on the same system, and it ensures
that installed packages can find their dependencies, regardless of the environment. We show
through real-world use cases that Spack supports diverse and demanding applications, bringing
order to HPC software chaos.
preferred-citation:
title: "The Spack Package Manager: Bringing Order to HPC Software Chaos"
type: conference-paper
url: "https://tgamblin.github.io/pubs/spack-sc15.pdf"
authors:
- family-names: "Gamblin"
given-names: "Todd"
- family-names: "LeGendre"
given-names: "Matthew"
- family-names: "Collette"
given-names: "Michael R."
- family-names: "Lee"
given-names: "Gregory L."
- family-names: "Moody"
given-names: "Adam"
- family-names: "de Supinski"
given-names: "Bronis R."
- family-names: "Futral"
given-names: "Scott"
conference:
name: "Supercomputing 2015 (SC’15)"
city: "Austin"
region: "Texas"
country: "US"
date-start: 2015-11-15
date-end: 2015-11-20
month: 11
year: 2015
identifiers:
- description: "The concept DOI of the work."
type: doi
value: 10.1145/2807591.2807623
- description: "The DOE Document Release Number of the work"
type: other
value: "LLNL-CONF-669890"
authors:
- family-names: "Gamblin"
given-names: "Todd"
- family-names: "LeGendre"
given-names: "Matthew"
- family-names: "Collette"
given-names: "Michael R."
- family-names: "Lee"
given-names: "Gregory L."
- family-names: "Moody"
given-names: "Adam"
- family-names: "de Supinski"
given-names: "Bronis R."
- family-names: "Futral"
given-names: "Scott"
Committers
Last synced: 9 months ago
Top Committers
| Name | Commits | |
|---|---|---|
| Adam J. Stewart | a****6@g****m | 3,208 |
| Todd Gamblin | t****n@l****v | 2,012 |
| Massimiliano Culpo | m****o@g****m | 2,010 |
| Harmen Stoppels | h****s@g****m | 1,711 |
| Alec Scott | hi@a****m | 940 |
| Wouter Deconinck | w****c@g****m | 888 |
| Glenn Johnson | g****n@u****u | 811 |
| Manuela Kuhn | 3****n | 707 |
| Michael Kuhn | m****n@o****e | 688 |
| iarspider | i****r@g****m | 648 |
| Greg Becker | b****3@l****v | 579 |
| darmac | x****2@h****m | 571 |
| Denis Davydov | d****n@g****m | 520 |
| Erik Schnetter | s****r@g****m | 491 |
| eugeneswalker | 3****r | 490 |
| Axel Huebl | a****l@l****v | 384 |
| Jen Herting | j****n@h****c | 378 |
| Peter Scheibel | s****1@l****v | 360 |
| George Hartzell | h****l@a****m | 332 |
| Tamara Dahlgren | 3****n | 322 |
| Satish Balay | b****y@m****v | 314 |
| Seth R. Johnson | j****r@o****v | 304 |
| Christoph Junghans | c****s@g****m | 299 |
| dependabot[bot] | 4****] | 295 |
| healther | h****r | 284 |
| Sinan | s****w@g****m | 239 |
| snehring | 7****g | 235 |
| John W. Parent | 4****t | 223 |
| Eric | e****7 | 215 |
| Mario Melara | m****a@g****m | 212 |
| and 1,536 more... | ||
Committer Domains (Top 20 + Academic)
Issues and Pull Requests
Last synced: 6 months ago
All Time
- Total issues: 1,900
- Total pull requests: 9,750
- Average time to close issues: over 2 years
- Average time to close pull requests: about 2 months
- Total issue authors: 727
- Total pull request authors: 752
- Average comments per issue: 2.7
- Average comments per pull request: 1.75
- Merged pull requests: 6,133
- Bot issues: 3
- Bot pull requests: 229
Past Year
- Issues: 573
- Pull requests: 5,503
- Average time to close issues: 14 days
- Average time to close pull requests: 7 days
- Issue authors: 253
- Pull request authors: 449
- Average comments per issue: 1.24
- Average comments per pull request: 1.39
- Merged pull requests: 3,354
- Bot issues: 1
- Bot pull requests: 93
Top Authors
Issue Authors
- eugeneswalker (73)
- haampie (57)
- alalazo (55)
- adamjstewart (46)
- climbfuji (39)
- wspear (34)
- wdconinc (28)
- Thomas-Ulrich (24)
- AcriusWinter (22)
- payerle (21)
- BenWibking (18)
- vsoch (18)
- Chrismarsh (17)
- AlexanderRichert-NOAA (15)
- mdorier (15)
Pull Request Authors
- haampie (863)
- wdconinc (798)
- alalazo (518)
- adamjstewart (476)
- dependabot[bot] (229)
- alecbcs (228)
- johnwparent (173)
- tldahlgren (153)
- RobertMaaskant (142)
- eugeneswalker (126)
- kwryankrattiger (124)
- teaguesterling (120)
- tgamblin (120)
- msimberg (109)
- Chrismarsh (100)
Top Labels
Issue Labels
Pull Request Labels
Packages
- Total packages: 2
- Total downloads: unknown
-
Total dependent packages: 0
(may contain duplicates) -
Total dependent repositories: 0
(may contain duplicates) - Total versions: 67
proxy.golang.org: github.com/spack/spack
- Documentation: https://pkg.go.dev/github.com/spack/spack#section-documentation
- License: apache-2.0
-
Latest release: v1.0.1
published 6 months ago
Rankings
spack.io: compiler-wrapper
Spack compiler wrapper script. Compiler commands go through this compiler wrapper in Spack builds. The compiler wrapper is a thin layer around the standard compilers. It enables several key pieces of functionality: 1. It allows Spack to swap compilers into and out of builds easily. 2. It adds several options to the compile line so that spack packages can find their dependencies at build time and run time: -I and/or -isystem arguments for dependency /include directories. -L arguments for dependency /lib directories. -Wl,-rpath arguments for dependency /lib directories. 3. It provides a mechanism to inject flags from specs
- Homepage: https://github.com/spack/spack
- License: []
-
Latest release: 1.0
published 11 months ago
Rankings
Dependencies
- actions/checkout 755da8c3cf115ac066823e79a1e1788f8940201b composite
- actions/setup-python 5ccb29d8773c3f3f653e1705f474dfaa8a06a912 composite
- codecov/codecov-action d9f34f8cd5cb3b3eb79b3e4b5dae3a16df499a70 composite
- actions/checkout 755da8c3cf115ac066823e79a1e1788f8940201b composite
- actions/checkout 755da8c3cf115ac066823e79a1e1788f8940201b composite
- actions/upload-artifact 0b7f8abb1508181956e8e162db84b466c27e18ce composite
- docker/build-push-action c56af957549030174b10d6867f20e78cfd7debc5 composite
- docker/login-action f4ef78c080cd8ba55a85445d5b36e214a81df20a composite
- docker/setup-buildx-action 8c0edbc76e98fa90f69d9a2c020dcb50019dc325 composite
- docker/setup-qemu-action e81a89b1732b9c48d79cd809d8d81d79c4647a18 composite
- actions/checkout 755da8c3cf115ac066823e79a1e1788f8940201b composite
- dorny/paths-filter 4512585405083f25c027a35db413c2b3b9006d50 composite
- actions/checkout 755da8c3cf115ac066823e79a1e1788f8940201b composite
- actions/setup-python 5ccb29d8773c3f3f653e1705f474dfaa8a06a912 composite
- codecov/codecov-action d9f34f8cd5cb3b3eb79b3e4b5dae3a16df499a70 composite
- actions/checkout 755da8c3cf115ac066823e79a1e1788f8940201b composite
- actions/setup-python 5ccb29d8773c3f3f653e1705f474dfaa8a06a912 composite
- actions/checkout 755da8c3cf115ac066823e79a1e1788f8940201b composite
- actions/setup-python 5ccb29d8773c3f3f653e1705f474dfaa8a06a912 composite
- codecov/codecov-action d9f34f8cd5cb3b3eb79b3e4b5dae3a16df499a70 composite
- nginx mainline-alpine build
- ubuntu 18.04 build
- ubuntu 16.04 build
- {{ latest build
- docutils <0.17
- pygments <2.13
- python-levenshtein *
- sphinx >=3.4,
- sphinx-design *
- sphinx-rtd-theme *
- sphinxcontrib-programoutput *
- actions/checkout 3df4ab11eba7bda6032a0b82a6bb43b11571feac composite
- actions/setup-python 61a6322f88396a6271a6ee3565807d608ecaddd1 composite
- black ==23.1.0
- clingo ==5.6.2
- flake8 ==6.1.0
- isort ==5.12.0
- mypy ==1.5.0
- types-six ==1.16.21.9
- vermin ==1.5.2
- clingo *
- setuptools *