You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The `bootstrap.sh` script will install the necessary dependencies, so that Stackinator can be run as a standalone application.
20
29
21
30
Once installed, add the `bin` sub-directory to your path:
@@ -36,6 +45,18 @@ pip install stackinator
36
45
The PyPi package is only updated for releases, so you will likely be missing the latest and greatest features.
37
46
Let us know if you need more regular PyPi updates.
38
47
48
+
### Versions
49
+
50
+
Stackinator version 6 will be the first release of Stackinator to support Spack 1.0, when it is released in June 2025.
51
+
There will be significant changes introduced in Spack 1.0, which will require making some non-trivial changes to Stackinator, and possibly adding breaking changes to the Stackinator recipe specification.
52
+
53
+
The git branch `releases/v5` will be maintained to provide support for all versions 0.21, 0.22 and 0.23 of Spack and existing recipes.
54
+
55
+
The `main` branch of Stackinator will contain
56
+
57
+
!!! warning
58
+
After the release of version 5, the main development branch was changed from `master` to `main`.
59
+
39
60
## Quick Start
40
61
41
62
Stackinator generates the make files and spack configurations that build the spack environments that are packaged together in the spack stack.
* `description`: _optional_ a string that describes the environment (default empty).
36
+
* `version`: _default = 1_ the version of the uenv recipe (see below)
37
+
38
+
!!! note "uenv recipe versions"
39
+
Stackinator 6 introduces breaking changes to the uenv recipe format, introduced to support Spack v1.0.
40
+
41
+
We have started versioning uenv recipes:
42
+
43
+
* **version 1**: original uenv recipes for Spack v0.23 and earlier, supported by Stackinator version 5.
44
+
* **version 2**: uenv recipes for Spack v1.0 and later, supported by Stackinator version 6.
45
+
46
+
The default version is 1, so that old recipes that do not set a version are supported.
47
+
48
+
!!! warning "You must set version 2 explicitly to use Spack v1.0"
49
+
50
+
!!! warning "Version 1 recipes must be configured using Stackinator v5"
51
+
Version 5 of Stackinator is maintained in the `releases/v5` branch of stackinator.
52
+
53
+
You must also use the `releases/v5` branch of [Alps cluster config](https://github.com/eth-cscs/alps-cluster-config).
35
54
36
55
## Compilers
37
56
@@ -100,19 +119,19 @@ In the following sections, we will explore each of the environment configuration
100
119
The `compiler` field describes a list compilers to use to build the software stack.
101
120
Each compiler toolchain is specified using toolchain and spec
102
121
103
-
```yaml title="compile all packages with gcc@11.3"
122
+
```yaml title="compile all packages with gcc@11"
104
123
compiler:
105
124
- toolchain: gcc
106
-
spec: gcc@11.3
125
+
spec: gcc@11
107
126
```
108
127
109
128
Sometimes two compiler toolchains are required, for example when using the `nvhpc` compilers, there are often dependencies that can't be built using the NVIDIA, or are better being built with GCC (for example `cmake`, `perl` and `netcdf-c`).
110
-
The example below uses the `nvhpc` compilers with gcc@11.3.
129
+
The example below uses the `nvhpc` compilers with `gcc@11`.
111
130
112
-
```yaml title="compile all packages with gcc@11.3"
131
+
```yaml title="compile all packages with gcc@11"
113
132
compiler:
114
133
- toolchain: gcc
115
-
spec: gcc@11.3
134
+
spec: gcc@11
116
135
- toolchain: llvm
117
136
spec: nvhpc@22.7
118
137
```
@@ -123,11 +142,14 @@ The example below uses the `nvhpc` compilers with gcc@11.3.
123
142
!!! warning
124
143
Stackinator does not test or support using two versions of gcc in the same toolchain.
125
144
145
+
!!! note
146
+
It is generally advisable not to overspecify compiler version, so whenever possible constrain at most the major version.
147
+
126
148
The order of the compilers is significant. The first compiler is the default, and the other compilers will only be used to build packages when explicitly added to a spec.
127
149
For example, in the recipe below, only `netcdf-fortran` will be built with the `nvhpc` toolchain, while the root specs `cmake` and `netcdf-c` and all dependencies will be built using the `gcc` toolchain.
128
150
129
151
130
-
```yaml title="compile all packages with gcc@11.3"
152
+
```yaml title="compile all packages with gcc@11"
131
153
compiler:
132
154
- toolchain: gcc
133
155
spec: gcc
@@ -235,7 +257,7 @@ cuda-env:
235
257
Use `unify:true` when possible, then `unify:when_possible`, and finally `unify:false`.
236
258
237
259
!!! warning
238
-
Don't provide a spec for MPI or Compilers, which are configured in the [`mpi:`](recipes.md#mpi) and [`compilers`](recipes.compilers) fields respecively.
260
+
Don't provide a spec for MPI or Compilers, which are configured in the [`mpi:`](recipes.md#mpi) and [`compilers`](recipes.md#compilers) fields respecively.
239
261
240
262
!!! warning
241
263
Stackinator does not support "spec matrices", and likely won't, because they use multiple compiler toolchains in a manner that is contrary to the Stackinator "keep it simple" principle.
@@ -358,6 +380,22 @@ Additional custom packages can be provided as part of the cluster configuration,
358
380
These packages are all optional, and will be installed together in a single Spack package repository that is made available to downstream users of the generated uenv stack.
359
381
See the documentation for [cluster configuration](cluster-config.md) for more detail.
360
382
383
+
!!! note
384
+
If you need to backport a spack package from a more recent spack version, you can do it by using an already checked out spack repository like this
385
+
386
+
(disclaimer: the package might need adjustments due to spack directives changes)
387
+
388
+
```
389
+
# ensure to have the folder for custom packages in your recipe
390
+
mkdir -p stackinator-recipe/repo/packages
391
+
# switch to the already checked out spack repository
392
+
cd $SPACK_ROOT
393
+
# use git to extract package files into your "custom packages" section of the stackinator recipe
In the above case, the package `fmt` is backported from `origin/develop` into the `stackinator-recipe`.
398
+
361
399
!!! alps
362
400
All packages are installed under a single spack package repository called `alps`.
363
401
The CSCS configurations in [github.com/eth-cscs/alps-cluster-config](https://github.com/eth-cscs/alps-cluster-config) provides a site configuration that defines cray-mpich, its dependencies, and the most up to date versions of cuda, nvhpc etc to all clusters on Alps.
0 commit comments