Skip to content

Commit

Permalink
Merge pull request #67 from sandialabs/develop
Browse files Browse the repository at this point in the history
Develop
  • Loading branch information
psakievich authored Jan 1, 2024
2 parents 73e6a9e + 046523c commit a8d6bdb
Show file tree
Hide file tree
Showing 26 changed files with 802 additions and 157 deletions.
36 changes: 35 additions & 1 deletion .github/workflows/tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ jobs:
run: echo "$PWD/spack/bin" >> "$GITHUB_PATH"
- name: Install extension
run: |
spack config add config:extensions:[${GITHUB_WORKSPACE}]
./install.py --scope site
spack manager --help
- name: Run unit tests
run: |
Expand Down Expand Up @@ -69,4 +69,38 @@ jobs:
run: spack config add config:extensions:[${GITHUB_WORKSPACE}]
- name: Spack Style
run: spack style ${GITHUB_WORKSPACE}/manager ${GITHUB_WORKSPACE}/tests
quick-commands:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
python-version: [3.7, 3.8, 3.9]
spack-version: [0.21.0, develop]
steps:
- uses: actions/checkout@v3
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v2
with:
python-version: ${{ matrix.python-version }}
- name: Checkout Spack
uses: actions/checkout@v3
with:
repository: spack/spack
ref: ${{ matrix.spack-verions }}
path: spack
- name: Setup Spack ${{ matrix.spack-verion }}
run: echo "$PWD/spack/bin" >> "$GITHUB_PATH"
- name: Install extension
run: |
./install.py --scope site
spack manager --help
- name: Run quick-tests
run: |
. spack/share/spack/setup-env.sh
. scripts/quick_commands.sh
quick-create --name managed -s zlib
spack env deactivate
quick-create --dir unmanaged -s zlib
spack env deactivate
quick-create-dev --name develop -s nalu-wind@master
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ stage
.bootstrap
.jython_cache
# file types
spack-manager.yaml
Makefile
__pycache__
*.lock
Expand Down
3 changes: 2 additions & 1 deletion docs/general/general.rst
Original file line number Diff line number Diff line change
Expand Up @@ -8,5 +8,6 @@ and documentation that is applicable to all users of this software.
:glob:
:maxdepth: 2

history
spack_manager_structure
spack_features
history
30 changes: 30 additions & 0 deletions docs/general/spack_manager_structure.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
# Spack-Manager Structure

Spack-Manager is a Spack extension that provides a way for software applications
to configure their usage of spack.
The code of Spack-Manager is independent of each individual application and each
application code needs to configure a Spack-Manager `Project` to tell Spack-Manager how to work
with their application.

A `Project` at its core is simply a collection of [spack configuration files](https://spack.readthedocs.io/en/latest/configuration.html),
and [spack package repositories](https://spack.readthedocs.io/en/latest/repositories.html).
A few other optional hooks will be discussed below.

The configuration files in a `Project` are organized based on the configuration bifurcations that the projects supports.
These are called `Machines` based on the guiding principle that spack configurations typically have to be
changed when the machine/system is changed.

`Projects` can be registered with Spack-Manager by adding them to the `spack-manager.yaml` configuration file.
This file lives in the Spack-Manager directory and controls settings for `Spack-Manager` and the `Projects` that
are registered.

``` yaml
spack-manager:
projects:
- /path/to/project_a
default_view: False
- $HOME/project_b
```
Additional data about this file can be found at *TBD*.
Information on configuring a new `Project` can be found in the system administrator profile documentation (add link).
8 changes: 4 additions & 4 deletions docs/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,10 @@

`Spack-Manager <https://github.com/sandialabs/spack-manager>`_ is a light-weight extension to
`Spack <https://github.com/spack/spack>`_ that is intended to streamline the software development and deployment cycle
for individual software projects on specific machines.
for software projects on specific machines.
A given software project typically has multiple configurations across many machines.
Spack-Manager is quite literal in its name, in that it provides a way to manage and organize these configurations
across multiple machines, and multiple projets.

The intent of this project is to maintain as thin of a buffer as possible between software packages and Spack, and to be pushing ideas and workflow
improvements back to Spack on a regular basis to reduce the code that is maintained here.
Expand Down Expand Up @@ -47,9 +50,6 @@ Benefits of Spack-Manager
- Buy-in and feedback from HPC vendors and software developers over thousands of projects
- Support options, extended documentation and testing through the much larger Spack project

Spack-Manager is currently focused on providing the needs of the `Exawind <https://github.com/Exawind>`_ project,
but the long term intent is to make it project agnostic.

Additional details about the philosophy, and general knowledge can be found in the following documentation section.

.. toctree::
Expand Down
Loading

0 comments on commit a8d6bdb

Please sign in to comment.