eth-cscs / stackinator

https://eth-cscs.github.io/stackinator/
BSD 3-Clause "New" or "Revised" License
19 stars 15 forks source link

feature: better spack repo management. #179

Closed bcumming closed 3 months ago

bcumming commented 3 months ago

Spack packages in uenv are defined in three different locations:

  1. the builtin packages in spack/var/spack/repos/builtin
  2. the repo path provided by stackinator
    • primarily for providing cray-mpich and it's dependencies, which are custom packages
  3. the repo path in a recipe

Recently we have started puting packages in stackinator to provide up to date versions and fixes on Santis

There are two issues with this

  1. if a recipe provides a package that is also provided by stackinator, there is a conflict during stack configuration.
  2. by providing packages for an in-development system like Santis as part of stackinator, we enforce changes on all vClusters.

We can fix this by:

  1. handle the case where multiple repos provide the same package with clear precidence
  2. provide per-vCluster repos

I think the following precidence for packages from the different repos would be the best:

recipe > cluster > stackinator > spack