diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 8448a34bc7093922a1f606a5384286946e3b0ec9..0d1c5c5a2a300f40a2b03f788259e89d2b7710c0 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -56,8 +56,9 @@ variables:
     MOUNT_POINT: /stack
     BUILDCACHE: "/work/scitas-ge/richart/ci/buildcache"
     MIRROR: "/work/scitas-ge/richart/ci/mirror"
+    FAKEHOME: "/scratch/richart"
     COMMAND_OPTIONS_SBATCH: ${slurm_options}
-    APPTAINER_EXEC_OPTIONS: ${apptainer_options} --cleanenv --no-home -H $(mktemp -d -p $CI_PROJECT_DIR/.tmp):$HOME --bind ${BUILDCACHE}:/buildcache:rw --bind ${MIRROR}:${MOUNT_POINT}/spack-mirror:rw --bind ${CI_PROJECT_DIR}:${MOUNT_POINT} --bind /dev/tty
+    APPTAINER_EXEC_OPTIONS: ${apptainer_options} --cleanenv --no-home -H $(mktemp -d -p ${FAKEHOME}/):$HOME --bind ${BUILDCACHE}:/buildcache:rw --bind ${MIRROR}:${MOUNT_POINT}/spack-mirror:rw --bind ${CI_PROJECT_DIR}:${MOUNT_POINT} --bind /dev/tty
 
 .spack_cache:
   cache:
@@ -88,7 +89,7 @@ spack:setup:
   needs:
     - job: spack:checkout
   after_script:
-    - tar cvzf artifacts_${stack}_${environment}.tgz $stack/environment
+    - tar czf artifacts_${stack}_${environment}.tgz $stack/environment
   artifacts:
     paths:
       - artifacts_${stack}_${environment}.tgz
@@ -101,14 +102,14 @@ spack:install_compilers:
   before_script:
     - if [ -e artifacts_${stack}_${environment}.tgz ];
       then
-        tar xvzf artifacts_${stack}_${environment}.tgz;
+        tar xzf artifacts_${stack}_${environment}.tgz;
       fi
   script:
     - ci/install_compilers.sh
     - source ci/stack_env.sh
     - ${STACK_LOCATION}/spack/bin/spack -e ${environment} config blame compilers
   after_script:
-    - tar cvzf
+    - tar czf
         artifacts_${stack}_${environment}.tgz
         $stack/spack/var/spack/environments
   artifacts:
@@ -128,14 +129,14 @@ spack:concretize:
   before_script:
     - if [ -e artifacts_${stack}_${environment}.tgz ];
       then
-        tar xvzf artifacts_${stack}_${environment}.tgz;
+        tar xzf artifacts_${stack}_${environment}.tgz;
       fi
   script:
     - source ci/stack_env.sh
     - ${STACK_LOCATION}/spack/bin/spack -e ${environment} config blame
     - ${STACK_LOCATION}/spack/bin/spack -e ${environment} concretize --force
   after_script:
-    - tar cvzf
+    - tar czf
         artifacts_${stack}_${environment}.tgz
         $stack/spack/var/spack/environments
   artifacts:
@@ -143,7 +144,7 @@ spack:concretize:
       - artifacts_${stack}_${environment}.tgz
   needs:
     - job: spack:install_compilers
-  timeout: 2h
+  timeout: 5h
 
 spack:install:
   stage: install
@@ -153,7 +154,7 @@ spack:install:
   before_script:
     - if [ -e artifacts_${stack}_${environment}.tgz ];
       then
-        tar xvzf artifacts_${stack}_${environment}.tgz;
+        tar xzf artifacts_${stack}_${environment}.tgz;
       fi
   script:
     - source ci/stack_env.sh
@@ -172,7 +173,7 @@ spack:install:
       --key EDC904DCE3D2E84E
       /buildcache
   after_script:
-    - tar cvzf
+    - tar czf
         artifacts_${stack}_${environment}.tgz
         $stack/spack/var/spack/environments
   needs:
diff --git a/ci/stack_env.sh b/ci/stack_env.sh
index 2fb01cb3c0307a81aacbcf1ac72801c402c75391..d992e13913c8e8edea1fbc3c8a301b2b2f5c8f14 100644
--- a/ci/stack_env.sh
+++ b/ci/stack_env.sh
@@ -5,13 +5,16 @@ export STACK_CONFIG=${STACK_CONFIG_PATH}/config.json
 
 export SPACK_VERSION=$(jq -r .spack.version ${STACK_CONFIG})
 export MOUNT_POINT=$(jq -r .stack.mount_point ${STACK_CONFIG})
-export STACK_LOCATION=${MOUNT_POINT}/${stack}
+export STACK_VERSION=$(jq -r .stack.version ${STACK_CONFIG})
+export STACK_LOCATION=${MOUNT_POINT}/${stack}/${environment}/${STACK_VERSION}
 
 export SPACK_SYSTEM_CONFIG_PATH=${STACK_LOCATION}/spack/var/spack/environments/${environment}
 
 export SPACK_USER_CACHE_PATH=$(mktemp -p /tmp -d slurm_user_cache_XXXXXXX)
 export SPACK_USER_CONFIG_PATH=$(mktemp -p /tmp -d slurm_user_config_XXXXXXX)
 
+export environment_type="local_cluster"
+
 echo "STACK_CONFIG_PATH: ${STACK_CONFIG_PATH}"
 echo "STACK_CONFIG: ${STACK_CONFIG}"
 echo "SPACK_VERSION: ${SPACK_VERSION}"
diff --git a/stacks/pinot-noir/config.json b/stacks/pinot-noir/config.json
index 8dcee00ad49c76cd886859b2752439b7a133f06e..38a3b97973ff78da524aaae680922f1aa3ba2f76 100644
--- a/stacks/pinot-noir/config.json
+++ b/stacks/pinot-noir/config.json
@@ -23,6 +23,7 @@
         }
     },
     "stack": {
+        "version": "v1",
         "mount_point": "/stack",
         "system_arch": "target=x86_64_v3",
         "system_compiler": {
@@ -45,18 +46,6 @@
                 "spec": "intel-oneapi-compilers@2024.1.0 %gcc@11.4.1",
                 "version": "2024.1.0"
             },
-            "nvhpc": {
-                "compiler": "nvhpc",
-                "spec": "nvhpc@24.3 %gcc@11.4.1",
-                "version": "24.3",
-                "constraint": "env['environment'] in ['jed']"
-            },
-            "aocc": {
-                "compiler": "aocc",
-                "spec": "aocc@4.2.0 +license-agreed %gcc@11.4.1",
-                "version": "4.2.0",
-                "constraint": "env['environment'] in ['jed']"
-            },
             "gcc": {
                 "compiler": "gcc",
                 "spec": "gcc@12.3.0 %gcc@11.4.1",
@@ -88,15 +77,16 @@
             "gmake",
             "gmp",
             "gnuplot",
-            "help2man",
             "hcoll",
+            "help2man",
             "libaec",
             "libevent",
             "libfuse",
             "libpciaccess",
             "libsigsegv",
-            "libtool",
+            "libssh2",
             "libtiff",
+            "libtool",
             "libuuid",
             "libxml2",
             "lz4",
@@ -122,8 +112,8 @@
             "texinfo",
             "utf8proc",
             "xpmem",
-            "xz",
             "xxd-standalon",
+            "xz",
             "zlib-ng",
             "zstd"
         ]
diff --git a/stacks/pinot-noir/definitions_helvetios.yaml b/stacks/pinot-noir/definitions_helvetios.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..ca4ba7fe51ad3279cebc61ff97ee72782db03b81
--- /dev/null
+++ b/stacks/pinot-noir/definitions_helvetios.yaml
@@ -0,0 +1 @@
+definitions: []
diff --git a/stacks/pinot-noir/packages_jed.yaml b/stacks/pinot-noir/packages_jed.yaml
index d43e828febb6c7ae9dc9e01fed1d4ecbe8ee84fc..dcc04e3ecacc5be4b2e480c5b8056bd880dae8f8 100644
--- a/stacks/pinot-noir/packages_jed.yaml
+++ b/stacks/pinot-noir/packages_jed.yaml
@@ -2,11 +2,12 @@ packages:
   all:
     target: ["icelake"]
     require:
+      - "~rocm"
+
       - spec: cuda_arch=90 target=icelake
         when: '+cuda'
-
-      - spec: '~cuda'
-        when: '%oneapi'
+      # - spec: '~cuda'
+      #   when: '%oneapi'
 
       - spec: '+cuda'
         when: '%gcc'
@@ -17,6 +18,11 @@ packages:
     - spec: '+cuda cuda_arch=90'
       when: '%gcc'
 
+  kokkos:
+    require:
+    - spec: '+cuda cuda_arch=90 +cuda_uvm'
+      when: '%gcc'
+
   openmpi:
     require:
       - spec: 'fabrics=hcoll +cuda cuda_arch=90 target=icelake'
@@ -26,14 +32,25 @@ packages:
     - spec: '+cuda cuda_arch=90'
       when: '%gcc'
 
+  py-torch:
+    require:
+    - spec: '+cuda cuda_arch=90 +nccl +cudnn'
+
+  quantum-espresso:
+    require:
+    - spec: '~cuda'
+
+  suite-sparse:
+    require:
+    - spec: '+cuda'
+
   ucx:
     require:
-      - spec: '+xpmem +cma +rdmacm +rc +ud +dc +verbs +ib_hw_tm +vfs +gdrcopy +cuda cuda_arch=90 target=icelake'
+      - spec: '+xpmem +cma +rdmacm +rc +ud +dc +verbs +ib_hw_tm +vfs +gdrcopy +cuda cuda_arch=90 target=icelake ~rocm'
 
   # ---------------------------------------------------------------------------
   # Externals
   # ---------------------------------------------------------------------------
-
   hcoll:
     buildable: False
     externals:
diff --git a/stacks/pinot-noir/packages_stack.yaml b/stacks/pinot-noir/packages_stack.yaml
index b1cfa3a4e8f696ea9a291cc474a2181bb4b5d7cf..dbb2084f075cdc958a7a430f0fbd9e35e2ba5f99 100644
--- a/stacks/pinot-noir/packages_stack.yaml
+++ b/stacks/pinot-noir/packages_stack.yaml
@@ -4,35 +4,41 @@ packages:
       - spec: "^libiconv"
         when: "^iconv"
 
-      - spec: ^intel-oneapi-mpi
-        when: '%oneapi ^mpi'
+      # - spec: ^intel-oneapi-mpi
+      #   when: '%oneapi ^mpi'
 
-      - spec: ^openmpi
-        when: '%gcc ^mpi'
+      # - spec: ^openmpi
+      #   when: '%gcc ^mpi'
 
-      - spec: ^openmpi
-        when: '%aocc ^mpi'
+      # - spec: ^openmpi
+      #   when: '%aocc ^mpi'
 
-      - spec: ^nvhpc+mpi
-        when: '%nvhpc ^mpi'
+      # - spec: ^nvhpc+mpi
+      #   when: '%nvhpc ^mpi'
 
-      - spec: ^openblas
-        when: '%gcc ^blas'
+      # - spec: ^openblas
+      #   when: '%gcc ^blas'
 
-      - spec: ^openblas
-        when: '%gcc ^lapack'
+      # - spec: ^openblas
+      #   when: '%gcc ^lapack'
 
-      - spec: ^intel-oneapi-mkl
-        when: '%oneapi ^blas'
+      # - spec: ^intel-oneapi-mkl
+      #   when: '%oneapi ^blas'
 
-      - spec: ^intel-oneapi-mkl
-        when: '%oneapi ^lapack'
+      # - spec: ^intel-oneapi-mkl
+      #   when: '%oneapi ^lapack'
 
-      - spec: ^nvhpc+blas
-        when: '%nvhpc ^blas'
+      # - spec: ^nvhpc+blas
+      #   when: '%nvhpc ^blas'
 
-      - spec: ^nvhpc+lapack
-        when: '%nvhpc ^lapack'
+      # - spec: ^nvhpc+lapack
+      #   when: '%nvhpc ^lapack'
+
+      # - spec: ^openblas
+      #   when: '%gcc ^py-numpy'
+
+      # - spec: ^intel-oneapi-mkl
+      #   when: '%oneapi ^py-numpy'
 
       - spec: '+ipo'
         when: '%gcc'
@@ -40,19 +46,39 @@ packages:
   # ----------------------------------------------------------------------------
   # Requirements
   # ----------------------------------------------------------------------------
+  adios2:
+    require: ['+kokkos']
+
+  boost:
+    prefer: ['~mpi']
+    require: ['cxxstd=14', '+icu', '+python', '+numpy', '+atomic', '+chrono',
+    '+container', '+date_time', '+filesystem', '+graph', '+iostreams', '~json',
+    '+locale', '+log', '+math', '~pic', '+program_options', '+random', '+regex',
+    '+serialization', '+shared', '+signals', '~singlethreaded', '~stacktrace',
+    '+system', '~taggedlayout', '+test', '+thread', '+timer', '~type_erasure',
+    '~versionedlayout', '+wave', '+exception']
+
   cuda:
     require:
     - spec: '@12.4.0'
     - spec: '+allow-unsupported-compilers'
       when: '%oneapi'
 
+  fenics-dolfinx:
+    require: ['+slepc']
+
+  fftw:
+    prefer: ['+mpi', '+openmp']
+
   gnuplot:
     require:
     - spec: '@5.4.10'
 
   hdf5:
-    require:
+    prefer:
+    - spec: '+mpi'
     - spec: '@1.14.3'
+    require:
     - spec: '+hl +threadsafe +szip +cxx +fortran'
     - spec: '+ipo'
       when: '%gcc'
@@ -67,6 +93,17 @@ packages:
   intel-oneapi-mkl:
     prefer: ['+cluster']
 
+  kokkos:
+    prefer: ['+openmp', '+openmptarget', '+numactl', '+memkind', '+threads', '+aggressive_vectorization']
+
+  lammps:
+    require: ['build_type=Release', '+asphere', '+atc', '+body', '+class2',
+    '+colloid', '+compress', '+coreshell', '+dipole', '+diffraction', '+extra-dump',
+    '+granular', '+h5md', '+kspace', '+latboltz', '+latte', '+lib', '+manybody',
+    '+mc', '+misc', '+molecule', '+mpi', '+mpiio', '+netcdf', '+peri', '~poems',
+    '+python', '+qeq', '+replica ', '+rigid', '+shock', '+ml-snap', '+srd',
+    '+voronoi', '+plumed', '+kokkos']
+
   libfabric:
     require:
     - spec: 'fabrics=mlx,mrail,psm3,verbs,udp,tcp,sockets,shm'
@@ -74,31 +111,50 @@ packages:
   llvm:
     prefer: ['~clang']
 
+  libxcb:
+    require: ['+use_spack_interpreter']
+
   mesa:
     require: ['~llvm', '+opengl', '+opengles', '+osmesa']
 
   metis:
     require: ['+real64']
 
+  netcdf-c:
+    prefer: ['+mpi']
+
   openblas:
     prefer: ['threads=pthreads']
 
+  opencv:
+    prefer: ['+vtk', '+python3']
+
   openmpi:
     require:
-    - spec: '@5.0.3 fabrics=ofi,ucx,verbs schedulers=slurm ~rsh +romio romio-filesystem=gpfs +internal-pmix'
+    - spec: '@5.0.3 fabrics=ofi,ucx,verbs schedulers=slurm ~rsh +romio romio-filesystem=gpfs +internal-pmix ~memchecker'
     - spec: ^ucx +cuda
       when: +cuda
 
   petsc:
     require:
-    - spec: '+hypre +mumps +saws +scalapack'
+    - spec: '+hypre +mumps +saws +scalapack +mpi +suite-sparse +kokkos'
 
   python:
     require:
-    - spec: +ssl
-    - spec: +optimizations
+    - spec: '+ssl +tkinter'
+    - spec: '+optimizations'
       when: '%gcc'
 
+  py-tensorflow:
+    require: ['+mpi']
+
+  py-torch:
+    require: ['+mpi', '~magma']
+
+  suite-sparse:
+    require:
+    - spec: '+graphblas'
+
   tk:
     require: ['+xft', '+xss']
 
@@ -111,6 +167,18 @@ packages:
   # ----------------------------------------------------------------------------
   # System dependencies
   # ----------------------------------------------------------------------------
+  egl:
+    buildable: false
+    externals:
+    - spec: 'egl@21.3.4'
+      prefix: /usr
+
+  pmix:
+    buildable: false
+    externals:
+    - spec: 'pmix@5.0.1'
+      prefix: /usr
+
   rdma-core:
     buildable: false
     externals:
@@ -123,8 +191,78 @@ packages:
     - spec: 'slurm@23-11-7-1'
       prefix: /usr
 
-  pmix:
+
+  # ----------------------------------------------------------------------------
+  # Externals
+  # ----------------------------------------------------------------------------
+  abaqus:
     buildable: false
+    permissions: {read: group, group: abaqus-soft}
     externals:
-    - spec: 'pmix@5.0.1'
-      prefix: /usr
+    - {spec: abaqus@2019, prefix: /ssoft/spack/external/abaqus/2019}
+    - {spec: abaqus@2023, prefix: /ssoft/spack/external/abaqus/2023}
+  ansys:
+    buildable: false
+    externals:
+    - {spec: ansys@2020R2, prefix: /ssoft/spack/external/ansys/2020R2/v202}
+    - {spec: ansys@2022R1, prefix: /ssoft/spack/external/ansys/2022R1/v221}
+    - {spec: ansys@2022R2, prefix: /ssoft/spack/external/ansys/2022R2/v222}
+    - {spec: ansys@2024R1, prefix: /ssoft/spack/external/ansys/2024R1/v241}
+  cfdplusplus:
+    buildable: false
+    externals:
+    - {spec: cfdplusplus@16.1, prefix: /ssoft/spack/external/CFD++/2016.05}
+    - {spec: cfdplusplus@19.1, prefix: /ssoft/spack/external/CFD++/19.1}
+  comsol:
+    buildable: false
+    permissions: {read: group, group: comsol-soft}
+    externals:
+    - {spec: comsol@5.6, prefix: /ssoft/spack/external/comsol/5.6/comsol56/multiphysics/}
+    - {spec: comsol@6.0, prefix: /ssoft/spack/external/comsol/6.0}
+    - {spec: comsol@6.2, prefix: /ssoft/spack/external/comsol/6.2}
+  fdtd:
+    buildable: false
+    permissions: {read: group, group: fdtd-soft}
+    externals:
+    - {spec: fdtd@2020-R2-2387, prefix: /ssoft/spack/external/fdtd/8.24.2387}
+    - {spec: fdtd@2020-R2.4-2502, prefix: /ssoft/spack/external/fdtd/2020-R2.4-2502}
+    - {spec: fdtd@2021-R2.2-2806, prefix: /ssoft/spack/external/fdtd/2021-R2.2-2806}
+    - {spec: fdtd@2022-R1.1-2963, prefix: /ssoft/spack/external/fdtd/2022-R1.1-2963}
+  gaussian:
+    buildable: false
+    externals:
+    - {spec: gaussian@g16-A.03, prefix: /ssoft/spack/external/gaussian/g16-A.03/avx2}
+    - {spec: gaussian@g16-C.01, prefix: /ssoft/spack/external/gaussian/g16-C.01/avx2}
+  gurobi:
+    buildable: false
+    externals:
+    - {spec: gurobi@8.1.1, prefix: /ssoft/spack/external/gurobi/8.1.1}
+    - {spec: gurobi@9.5.2, prefix: /ssoft/spack/external/gurobi/9.5.2}
+    - {spec: gurobi@10.0.1, prefix: /ssoft/spack/external/gurobi/10.0.1}
+  maple:
+    buildable: false
+    externals:
+    - {spec: maple@2017, prefix: /ssoft/spack/external/Maple/2017}
+  mathematica:
+    buildable: false
+    externals:
+    - {spec: mathematica@11.1.1, prefix: /ssoft/spack/external/Mathematica/11.1.1}
+    - {spec: mathematica@13.0, prefix: /ssoft/spack/external/Mathematica/13.0}
+  matlab:
+    buildable: false
+    externals:
+    - {spec: matlab@R2018a, prefix: /ssoft/spack/external/MATLAB/R2018a}
+    - {spec: matlab@R2019b, prefix: /ssoft/spack/external/MATLAB/R2019b}
+    - {spec: matlab@R2024a, prefix: /ssoft/spack/external/MATLAB/R2024a}
+  molpro:
+    buildable: false
+    externals:
+    - {spec: molpro@2022.3.0, prefix: /ssoft/spack/external/molpro/2022.3.0/mpi}
+  smr:
+    buildable: false
+    externals:
+    - {spec: smr@2017.0, prefix: /ssoft/spack/external/SMR/2017.06}
+  totalview:
+    externals:
+    - {spec: totalview@2017.2.11, prefix: /ssoft/spack/external/toolworks/totalview.2017.2.11}
+    - {spec: totalview@2020.3.11, prefix: /ssoft/spack/external/toolworks/totalview.2020.3.11}
diff --git a/stacks/pinot-noir/spack.yaml b/stacks/pinot-noir/spack.yaml
index 3fec7b0e75afe5505627f8ba908bb9ca12c2ab55..1bafcf146002f28db65dd8101454e522fac2da11 100644
--- a/stacks/pinot-noir/spack.yaml
+++ b/stacks/pinot-noir/spack.yaml
@@ -59,9 +59,11 @@ spack:
         - lmod
         - mpfr
         - neovim
+        - ninja
         - parallel
         - picard
         - rclone
+        - rust
         - sbt
         - sratoolkit
         - subversion
@@ -79,50 +81,240 @@ spack:
     # -------------------------------------------------------------------------
     - serial_codes:
         - bwa
+        - boost ~mpi
         - fftw +openmp ~mpi
         - fftw ~openmp ~mpi
+        - eigen
         - gsl
-        #- hdf5 ~mpi
+        - hdf5@1.14.1 ~mpi
         - hisat2
         - htslib
         - intel-oneapi-tbb
         - jasper
+        - kallisto ^hdf5 ~mpi
+        - kokkos
         - mafft
         - metis
         - muscle
+        - netcdf-c~mpi ^hdf5~mpi
+        - netcdf-fortran ^netcdf-c ~mpi ^hdf5 ~mpi
         - nfft
         - python
         - scotch
         - star
         - subread
         - superlu
+        - unblur ^fftw~mpi~openmp
         - voropp
 
     - gcc_serial_codes:
+        - cistem  ^fftw~mpi
+        - ctffind ^fftw ~mpi
+        - ffmpeg +libx264
+        - glpk+gmp
         - hwloc
+        - intel-oneapi-mkl
         - libxc
+        - ncview ^hdf5 ~mpi ^netcdf-c ~mpi ~parallel-netcdf
+        - sox
         - stacks
-                    
+
+    - oneapi_serial_codes:
+        - abaqus@2023
+        - intel-oneapi-ipp
+
     # -------------------------------------------------------------------------
     # Empty to specialize in environments
     # -------------------------------------------------------------------------
     - cuda_system_codes: []
 
+    - cuda_serial_codes: []
+
+    # -------------------------------------------------------------------------
+    # Blas dependent codes
+    # -------------------------------------------------------------------------
+    - blas_codes:
+        - arpack-ng ~mpi
+        - superlu
+        - suite-sparse
+
+    - gcc_blas_codes:
+        - armadillo +hdf5 ^arpack-ng ~mpi ^hdf5 ~mpi
+        - octave
+
+    # -------------------------------------------------------------------------
+    # Python packages
+    # -------------------------------------------------------------------------
+    - python_codes:
+        - bedtools2
+        - bowtie2
+        - cairo
+        - mercurial
+        - prinseq-lite
+        - py-absl-py
+        - py-astunparse
+        - py-backports-entry-points-selectable
+        - py-certifi
+        - py-charset-normalizer
+        - py-cycler
+        - py-cython
+        - py-distlib
+        - py-filelock
+        - py-gast
+        - py-google-pasta
+        - py-idna
+        - py-kiwisolver
+        - py-mpmath
+        - py-packaging
+        - py-pillow
+        - py-pip
+        - py-platformdirs
+        - py-ply
+        - py-protobuf
+        - py-pybind11
+        - py-pyparsing
+        - py-python-dateutil
+        - py-pytz
+        - py-requests
+        - py-semver
+        - py-six
+        - py-sympy
+        - py-termcolor
+        - py-urllib3
+        - py-virtualenv
+        - py-wheel
+        - py-wrapt
+        - samtools
+        - scons
+        - snakemake
+
+    - python_blas_codes:
+        - boost
+        - gmsh ~mpi +hdf5 +cgns +eigen ~opencascade +openmp ~fltk ~med
+        - iq-tree
+        - py-biopython
+        - py-keras-preprocessing
+        - py-macs2
+        - py-matplotlib
+        - py-numpy
+        - py-opt-einsum
+        - py-pandas
+        - py-pybigwig
+        - py-xarray
+
+    - gcc_python_codes:
+        - blast-plus
+        - caffe +python
+        - gatk
+        - gdb +tui +source-highlight +xz
+        - julia+openlibm
+        - libgd
+        - mesa
+        - mummer
+        - node-js
+        - openbabel +python
+        - r
+        - spades
+        - xgboost
+
+    - gcc_python_blas_codes:
+        - polymake ^cddlib@0.94h
+        - py-cryolobm
+        - py-deeptools
+        - py-h5py ~mpi ^hdf5 ~mpi
+        - py-pymol
+        - py-scikit-learn
+        - py-scipy
+        - py-statsmodels
+        - py-theano
+
     # -------------------------------------------------------------------------
     # Parallel codes
     # -------------------------------------------------------------------------
     - mpi_codes:
-        - osu-micro-benchmarks +graphing
+        - fftw +mpi +openmp
         - hdf5@1.14.3 +mpi
+        - openfoam-org +metis
+        - osu-micro-benchmarks +graphing
         - parmetis
+        - phylobayesmpi
+        - py-mpi4py
+        - scotch +mpi
+        - netcdf-c
+        - netcdf-fortran
+        - parmetis
+
+    - gcc_mpi_codes:
+        - wrf ~pnetcdf build_type=dm+sm
 
-    - blas_mpi_codes:
+    - mpi_blas_codes:
+        - arpack-ng +mpi
         - hypre@2.31.0
         - mumps@5.6.2
         - superlu-dist@8.2.1
+        #- quantum-espresso +mpi +scalapack +gipaw
+        #- quantum-espresso +mpi +scalapack +gipaw hdf5=parallel
+
+    - gcc_mpi_blas_codes:
+        - gmsh +mpi +eigen +openmp +hdf5 ~fltk ~opencascade ~med ^mmg ~vtk
+        - cpmd ~openmp
+        - elmerfem +mumps +openmp +hypre
+        - netlib-scalapack
+        - yambo +mpi io=iotk,etsf-io
+
+    - mpi_blas_python_codes:
+        - boost +mpi
+        - cgal
+        - iq-tree@1.6.12+mpi
+        - neuron +mpi +python
+        - petsc@3.21.1
+        - plumed
+        - py-petsc4py
+        - slepc
+
+    - gcc_mpi_blas_python_codes:
+        # - eman2 +mpi
+        - adios2
+        - cp2k +mpi +plumed +openmp smm=blas
+        # - fenics +parmetis +hdf5 +scotch +suite-sparse ~vtk ~trilinos
+        - fenics-dolfinx
+        - gromacs +mpi +plumed
+        - lammps
+        - opencv
+        - openfoam +metis
+        - paraview +shared +python +hdf5 ~osmesa +opengl2 +egl
+        - py-fenics-dolfinx
+        - py-h5py +mpi
+        - py-horovod
+        - py-keras
+        - py-tensorflow
+        - py-torch
+        - py-torchvision
+        - relion ~mklfft
+        - topaz
+        - vtk
 
-    - blas_mpi_python_codes:
-        - petsc@3.21.1 +mpi
+    # -------------------------------------------------------------------------
+    # External packages
+    # -------------------------------------------------------------------------
+    - external_packages: []
+    - when: env['environment_type'] != 'cloud'
+      external_packages:
+        - ansys
+        - cfdplusplus
+        - comsol
+        - fdtd
+        - gurobi
+        - gaussian
+        - matlab
+        - maple
+        - mathematica
+        - molpro
+        - smr
+
+    - when: env['environment_type'] != 'cloud'
+      blas_mpi_codes:
+        - vasp +hdf5 +scalapack +shmem +wannier90
 
     # -------------------------------------------------------------------------
     # Generic definitions
@@ -131,7 +323,6 @@ spack:
         - $mpi_oneapi
         - $mpi_gcc
 
-
   specs:
     - matrix:
         - [$compilers_specs]
@@ -168,6 +359,62 @@ spack:
         - [$gcc_serial_codes]
         - [$%compiler_gcc]
 
+    - matrix:
+        - [$oneapi_serial_codes]
+        - [$%compiler_oneapi]
+
+    - matrix:
+        - [$cuda_serial_codes]
+        - [$%compiler_gcc]
+
+    - matrix:
+        - [$blas_codes]
+        - [$^blas_gcc]
+        - [$%compiler_gcc]
+
+    - matrix:
+        - [$blas_codes]
+        - [$^blas_oneapi]
+        - [$%compiler_oneapi]
+
+    - matrix:
+        - [$gcc_blas_codes]
+        - [$^blas_gcc]
+        - [$%compiler_gcc]
+
+    - matrix:
+        - [$python_codes]
+        - [$^python_gcc]
+        - [$%compiler_gcc]
+
+    - matrix:
+        - [$gcc_python_codes]
+        - [$^python_gcc]
+        - [$%compiler_gcc]
+
+    - matrix:
+        - [$python_codes]
+        - [$^python_oneapi]
+        - [$%compiler_oneapi]
+
+    - matrix:
+        - [$python_blas_codes]
+        - [$^python_gcc]
+        - [$^blas_gcc]
+        - [$%compiler_gcc]
+
+    - matrix:
+        - [$python_blas_codes]
+        - [$^python_oneapi]
+        - [$^blas_oneapi]
+        - [$%compiler_oneapi]
+
+    - matrix:
+        - [$gcc_python_blas_codes]
+        - [$^python_gcc]
+        - [$^blas_gcc]
+        - [$%compiler_gcc]
+
     - matrix:
         - [$mpi_codes]
         - [$^mpi_oneapi]
@@ -179,26 +426,38 @@ spack:
         - [$%compiler_gcc]
 
     - matrix:
-        - [$blas_mpi_codes]
+        - [$gcc_mpi_codes]
+        - [$^mpi_gcc]
+        - [$%compiler_gcc]
+
+    - matrix:
+        - [$mpi_blas_codes]
         - [$^blas_oneapi]
         - [$^mpi_oneapi]
         - [$%compiler_oneapi]
 
     - matrix:
-        - [$blas_mpi_codes]
+        - [$mpi_blas_codes]
         - [$^blas_gcc]
         - [$^mpi_gcc]
         - [$%compiler_gcc]
 
     - matrix:
-        - [$blas_mpi_python_codes]
+        - [$mpi_blas_python_codes]
         - [$^blas_oneapi]
         - [$^mpi_oneapi]
         - [$^python_oneapi]
         - [$%compiler_oneapi]
 
     - matrix:
-        - [$blas_mpi_python_codes]
+        - [$mpi_blas_python_codes]
+        - [$^blas_gcc]
+        - [$^mpi_gcc]
+        - [$^python_gcc]
+        - [$%compiler_gcc]
+
+    - matrix:
+        - [$gcc_mpi_blas_python_codes]
         - [$^blas_gcc]
         - [$^mpi_gcc]
         - [$^python_gcc]