From 0d7f4a7bd807e961063dac98b2d52e837aee092e Mon Sep 17 00:00:00 2001 From: Justin Kin Jun Hew Date: Fri, 7 Mar 2025 15:46:37 +1100 Subject: [PATCH 1/6] added python3.9.2 in package dependency tree --- spack.yaml | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/spack.yaml b/spack.yaml index ecd2ae0..6a668bc 100644 --- a/spack.yaml +++ b/spack.yaml @@ -33,6 +33,16 @@ spack: # different compilers/variants, use the above definitions section and: # - $ROOT_SPEC packages: + python: + externals: + - spec: python@3.9.2 + modules: + - python3/3.9.2 + # This prefix should point to whatever directory your site’s Python 3.9.2 + # is actually installed in. If you are not sure, you can put a placeholder + # here. Spack just needs *some* prefix to associate with the external. + prefix: /usr/local/python/3.9.2 + buildable: false # Specification of dependency versions and variants. CI/CD requires that # the first element of the require is only a version: # TODO: Specify versions and variants of dependencies as required. From 084404226717d0cc5b2ac6dc6fe37d60eb7047bd Mon Sep 17 00:00:00 2001 From: Justin Kin Jun Hew <94345578+justinh2002@users.noreply.github.com> Date: Tue, 15 Apr 2025 15:46:50 +1000 Subject: [PATCH 2/6] MDR completion, first version (#1) * added python3.9.2 in package dependency tree * added python dependency and installation for issm with wrapper spec * Get into model deployment repo format * add specific mpi version * Update spack-packages version to 2025.04.000 * spack.yaml: Added newline at end of file * Update issm tag, remove TODO * changed from intel compiler to gcc * change tag name --- config/versions.json | 2 +- spack.yaml | 97 +++++++++++++++----------------------------- 2 files changed, 33 insertions(+), 66 deletions(-) diff --git a/config/versions.json b/config/versions.json index 913def9..2e0bd08 100644 --- a/config/versions.json +++ b/config/versions.json @@ -1,5 +1,5 @@ { "$schema": "https://raw.githubusercontent.com/ACCESS-NRI/schema/main/au.org.access-nri/model/deployment/config/versions/3-0-0.json", "spack": "0.22", - "spack-packages": "SOME_SPECIFIC_TAG" + "spack-packages": "2025.04.001" } diff --git a/spack.yaml b/spack.yaml index ecd2ae0..c4f59e2 100644 --- a/spack.yaml +++ b/spack.yaml @@ -1,79 +1,46 @@ -# This is a Spack Environment file. -# -# It describes a set of packages to be installed, along with -# configuration settings. spack: - # TODO: This section is used primarily to provide variations to a model based on deployment target. Delete if not required. - # definitions: - # This is the root spack bundle that contains the model - # - ROOT_PACKAGE: - # - MODEL@git.VERSION + specs: + - access-issm@git.2025.03.0 - # Mutually-exclusive Compiler and Target definitions (assumes DEPLOYMENT_TARGET set) - # - when: env['DEPLOYMENT_TARGET'] == 'Gadi' - # compiler_target: ['%intel@19.0.5.281 target=x86_64_v4'] - # More mutually-exclusive definitions can be made... - # Default - # - when: "'DEPLOYMENT_TARGET' not in env" - # compiler_targets: ['intel@2021.2.0 target=x86_64'] + packages: + issm: + require: + - '@git.2025.04.11' + - +wrappers - # This is where the single definitions of ROOT_PACKAGE and compiler/target are - # matrixed together to form a single spec: MODEL@git.VERSION %intel@2021.2.0 target=x86_64 - # - ROOT_SPEC: - # - matrix: - # - [$ROOT_PACKAGE] - # - [$%compiler_target] + # Mark Python 3.9.2 as external so Spack reuses the system module + python: + externals: + - spec: python@3.9.2 + modules: + - python3/3.9.2 + prefix: /apps/python3/3.9.2 + buildable: false - specs: - # The root Spack Bundle Recipe (SBR) for the model and overall version of - # the deployment: - # TODO: Replace the MODEL and VERSION, if there is only one deployment target - # - MODEL@git.VERSION - # Alternatively, if there are multiple deployment targets that require - # different compilers/variants, use the above definitions section and: - # - $ROOT_SPEC - packages: - # Specification of dependency versions and variants. CI/CD requires that - # the first element of the require is only a version: - # TODO: Specify versions and variants of dependencies as required. - # openmpi: - # require: - # - '@4.1.5' + openmpi: + require: + - '@4.1.7' - # Specifications that apply to all packages + # “all” can remain empty if you aren’t forcing any particular compiler / MPI all: - # TODO: Specify compiler/targets for all packages - # require: - # - '%intel@2021.10.0' - # - 'target=x86_64' + require: + - '%gcc@13' + - 'target=x86_64' + + # Create a unified view of all installed packages view: true + + # Make the solver unify dependencies concretizer: unify: true + + # Enable generating module files (TCL by default). modules: default: tcl: include: - # TODO: Add MODEL and PACKAGEs that will have a corresponding module - # - MODEL - # - PACKAGE1 - # - PACKAGE2 + - access-issm + - issm + - access-triangle projections: - # These projection VERSIONs must be the same as the - # `spack.packages.*.require[0]` VERSION but without the `@git.` and - # without the RHS of the equals sign, if there is one. - # - # For a MODEL, an example projection is `{name}/2024.10.0`. - # For a PACKAGE where `require` VERSION is - # `@git.2024.04.21=access-esm1.5`, the projection becomes - # `{name}/2024.04.21-{hash:7}`. - # TODO: Add explicit projections for modules that will be found with - # `module load`. - # MODEL: '{name}/VERSION' - # PACKAGE1: '{name}/VERSION1-{hash:7}' - # PACKAGE2: '{name}/VERSION2-{hash:7}' - # config: - # overridden spack configurations, if needed - # mirrors: - # overridden spack package tarball directories, if needed - # repos: - # overridden repo sources, if needed + access-issm: '{name}/2025.03.0-{hash:7}' From f391325f94c03e124169b5a4adcd090863d48e50 Mon Sep 17 00:00:00 2001 From: Justin Kin Jun Hew Date: Fri, 17 Apr 2026 13:23:36 +1000 Subject: [PATCH 3/6] creating a production release --- config/versions.json | 2 +- spack.yaml | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/config/versions.json b/config/versions.json index 0ac7ad9..2a3a5df 100644 --- a/config/versions.json +++ b/config/versions.json @@ -1,5 +1,5 @@ { "$schema": "https://raw.githubusercontent.com/ACCESS-NRI/schema/main/au.org.access-nri/model/deployment/config/versions/4-0-0.json", "spack": "1.1", - "access-spack-packages": "2026.03.001" + "access-spack-packages": "justinh2002/issm_release_production" } diff --git a/spack.yaml b/spack.yaml index b41e54b..45094a9 100644 --- a/spack.yaml +++ b/spack.yaml @@ -1,16 +1,17 @@ spack: definitions: - _name: [access-issm] - - _version: [2025.11.0] + - _version: [2026.05.0] specs: - access-issm packages: issm: require: - - '@git.2025.11.24' + - '@git.2026.04.16' - +wrappers - +py-tools - ~ad + - +production python: require: From 880e70fb64ca5c9f6978ee24cb1599dea7b7a8a2 Mon Sep 17 00:00:00 2001 From: Justin Kin Jun Hew Date: Thu, 23 Apr 2026 13:43:42 +1000 Subject: [PATCH 4/6] oneapi --- spack.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/spack.yaml b/spack.yaml index 45094a9..e1e7f7a 100644 --- a/spack.yaml +++ b/spack.yaml @@ -77,13 +77,13 @@ spack: # Compilers c: require: - - 'gcc@13.2.0' + - 'oneapi@2025.2.0' cxx: require: - - 'gcc@13.2.0' + - 'oneapi@2025.2.0' fortran: require: - - 'gcc@13.2.0' + - 'oneapi@2025.2.0' # “all” can remain empty if you aren’t forcing any particular compiler / MPI all: From 428df8807d801d06d22554099e69750640e831fa Mon Sep 17 00:00:00 2001 From: Justin Kin Jun Hew Date: Thu, 23 Apr 2026 13:59:27 +1000 Subject: [PATCH 5/6] update --- spack.yaml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/spack.yaml b/spack.yaml index e1e7f7a..7a9b1c6 100644 --- a/spack.yaml +++ b/spack.yaml @@ -37,9 +37,9 @@ spack: require: - '@5.1.0' - mumps: + access-mumps: require: - - '@5.6.2' + - '@5.8.2' parmetis: require: @@ -77,13 +77,13 @@ spack: # Compilers c: require: - - 'oneapi@2025.2.0' + - 'intel-oneapi-compilers@2025.2.0' cxx: require: - - 'oneapi@2025.2.0' + - 'intel-oneapi-compilers@2025.2.0' fortran: require: - - 'oneapi@2025.2.0' + - 'intel-oneapi-compilers@2025.2.0' # “all” can remain empty if you aren’t forcing any particular compiler / MPI all: From e57a2e9877257cdffa6351939b3c9efd6a5e2a57 Mon Sep 17 00:00:00 2001 From: Justin Kin Jun Hew Date: Thu, 23 Apr 2026 16:43:34 +1000 Subject: [PATCH 6/6] gcc ver --- spack.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/spack.yaml b/spack.yaml index 7a9b1c6..316b0d9 100644 --- a/spack.yaml +++ b/spack.yaml @@ -77,13 +77,13 @@ spack: # Compilers c: require: - - 'intel-oneapi-compilers@2025.2.0' + - 'gcc@13.2.0' cxx: require: - - 'intel-oneapi-compilers@2025.2.0' + - 'gcc@13.2.0' fortran: require: - - 'intel-oneapi-compilers@2025.2.0' + - 'gcc@13.2.0' # “all” can remain empty if you aren’t forcing any particular compiler / MPI all: