Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

How to install? #4

Open
adamjstewart opened this issue Aug 8, 2018 · 4 comments
Open

How to install? #4

adamjstewart opened this issue Aug 8, 2018 · 4 comments
Labels
enhancement New feature or request

Comments

@adamjstewart
Copy link
Member

This repo could really use a systematic organizational structure and method of installing configuration files.

For example, let's say I'm a new user of ANL LCRC (Bebop) and I want to get started with Spack. What I would like to be able to do is run something like:

$ git clone https://github.com/spack/spack-configs/ANL/LCRC ~/.spack

and be ready to go. Git has a "sparse checkout" feature that does something like this, but I'm not sure if that lets me make changes and contribute them back to this repo. Perhaps submodules are needed?

@baberlevi
Copy link
Member

I've been managing our spack-configs in a repo for a while, and I clone them into the same root as spack (e.g. ~/spack-etc), and symlink the yaml files into ~/spack/etc/spack/. Maybe some automated setup of symlinks could work with a command like, like spack config use ANL-LCRC which could clone this repo & link in the site specific config.

@adamjstewart
Copy link
Member Author

I just thought of another way to do this. We could make a spack-configs account with a separate repo for each organization. Then users can run:

$ git clone https://github.com/spack-configs/ANL-LCRC ~/.spack

This would also allow us to give different permissions for each organization, so ANL-LCRC could manage their own config files and anyone could download them to their own personal user account. This would work with the current infrastructure, without having to add a spack config use command, although that would be a nice addition. This is similar to how conda-forge feedstocks work.

@adamjstewart adamjstewart added the enhancement New feature or request label Jul 13, 2019
@omsai
Copy link

omsai commented Aug 18, 2019

Maybe some automated setup of symlinks could work, like spack config use ANL-LCRC

GNU stow is my go to for symlinking files in that manner and works as is with the current repository. For example to install ANL-LCRC:

$ cd
## Clone into hidden directory to not pollute the home directory.
$ git clone https://github.com/spack/spack-configs .spack-configs
$ cd .spack-configs/ANL/
$ mkdir ~/.spack/
$ stow --target=$HOME/.spack LCRC/
$ cd
$ tree -F .spack/
.spack/
├── config.yaml -> ../.spack-configs/ANL/LCRC/config.yaml
├── linux -> ../.spack-configs/ANL/LCRC/linux/
├── modules.yaml -> ../.spack-configs/ANL/LCRC/modules.yaml
├── packages.yaml -> ../.spack-configs/ANL/LCRC/packages.yaml
├── scripts -> ../.spack-configs/ANL/LCRC/scripts/
└── stacks -> ../.spack-configs/ANL/LCRC/stacks/

3 directories, 3 files

@alalazo
Copy link
Member

alalazo commented Aug 27, 2019

Just throwing an idea in. Spack has since a while an experimental support for extensions and what I was thinking is that this issue fits nicely with that. What do you think of using an extension to achieve the goal in the description?

What I'd eventually like to do is to be able to setup the configurations stored here with a single command:

$ spack hpc-configuration ANL/LCRC

If we extend tooling support for extensions (I'll try to propose that asap) cloning and setting up Spack at a known site could be as easy as:

$ git clone https://github.com/spack/spack
$ bin/spack extensions get  https://github.com/spack/spack-hpc-configurations
$ spack hpc-configuration ANL/LCRC

Does that seem useful? @tgamblin

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

4 participants