Skip to content

Add initial manifest and configuration versions#1

Merged
aidanheerdegen merged 8 commits intomainfrom
initial-manifest
Aug 26, 2025
Merged

Add initial manifest and configuration versions#1
aidanheerdegen merged 8 commits intomainfrom
initial-manifest

Conversation

@CodeGat
Copy link
Copy Markdown
Member

@CodeGat CodeGat commented Jul 8, 2025


🚀 The latest prerelease coastri-roms/pr1-8 at 4ff0c09 is here: #1 (comment) 🚀

@github-actions
Copy link
Copy Markdown

github-actions Bot commented Jul 8, 2025

🚀 Attempted to deploy coastri-roms Prerelease pr1-1 with commit 458e930

🖥️ Gadi Deployment ✔️

Usage Instructions

coastri-roms, defined in ./spack.yaml, will be deployed to Gadi as:

  • 2025.06.000 as a Release (when merged).
  • pr1-1 as a Prerelease (during this PR).

This Prerelease is accessible on Gadi using:

module use /g/data/vk83/prerelease/modules
module load coastri-roms/pr1-1

When using the above modules, the binaries shall be on your $PATH.

For advanced users, this Prerelease is also accessible on Gadi via /g/data/vk83/prerelease/apps/spack/0.22/spack in the coastri-roms-pr1-1 environment.
Due to inode-saving measures, one will have to manually untar the environment metadata before environment activation with tar -xf .spack-env .spack-env.tar. It will require one to have write privileges.

Configuration Information

This Prerelease is deployed using:

If the above was not what was expected, commit changes to config/versions.json in this PR.

@CodeGat
Copy link
Copy Markdown
Member Author

CodeGat commented Aug 20, 2025

Hi @phellipecouto, I've rebased this PR with some new under-the-hood changes, you might need to reset your local initial-manifest branch to the new origin/initial-manifest. Happy to help with this.

The original deployment coastri-roms/pr1-1 is still available (as per the comment above)

Comment thread spack.yaml Outdated
@aidanheerdegen aidanheerdegen marked this pull request as ready for review August 22, 2025 07:26
@github-actions
Copy link
Copy Markdown

🚀 Attempted to deploy coastri-roms Prerelease pr1-3 with commit f88d036

🖥️ Gadi Deployment ❌

@github-actions
Copy link
Copy Markdown

🚀 Attempted to deploy coastri-roms Prerelease pr1-2 with commit f88d036

🖥️ Gadi Deployment ❌

@github-actions
Copy link
Copy Markdown

🚀 Attempted to deploy coastri-roms Prerelease pr1-3 with commit f88d036

🖥️ Gadi Deployment ✔️

Usage Instructions

coastri-roms, defined in ./spack.yaml, will be deployed to Gadi as:

  • 2025.06.000 as a Release (when merged).
  • pr1-3 as a Prerelease (during this PR).

This Prerelease is accessible on Gadi using:

module use /g/data/vk83/prerelease/modules
module load coastri-roms/pr1-3

When using the above modules, the binaries shall be on your $PATH.

For advanced users, this Prerelease is also accessible on Gadi via /g/data/vk83/prerelease/apps/spack/0.22/spack in the coastri-roms-pr1-3 environment.
Due to inode-saving measures, one will have to manually untar the environment metadata before environment activation with tar -xf .spack-env .spack-env.tar. It will require one to have write privileges.

Configuration Information

This Prerelease is deployed using:

If the above was not what was expected, commit changes to config/versions.json in this PR.

@github-actions
Copy link
Copy Markdown

🚀 Attempted to deploy coastri-roms Prerelease pr1-5 with commit fe7ca39

🖥️ Gadi Deployment ✔️

Usage Instructions

coastri-roms, defined in ./spack.yaml, will be deployed to Gadi as:

  • 2025.06.000 as a Release (when merged).
  • pr1-5 as a Prerelease (during this PR).

This Prerelease is accessible on Gadi using:

module use /g/data/vk83/prerelease/modules
module load coastri-roms/pr1-5

When using the above modules, the binaries shall be on your $PATH.

For advanced users, this Prerelease is also accessible on Gadi via /g/data/vk83/prerelease/apps/spack/0.22/spack in the coastri-roms-pr1-5 environment.
Due to inode-saving measures, one will have to manually untar the environment metadata before environment activation with tar -xf .spack-env .spack-env.tar. It will require one to have write privileges.

Configuration Information

This Prerelease is deployed using:

If the above was not what was expected, commit changes to config/versions.json in this PR.

@aidanheerdegen
Copy link
Copy Markdown
Member

aidanheerdegen commented Aug 23, 2025

Ok, this is working now:

$ module use /g/data/vk83/prerelease/modules
$ module load coastri-roms/pr1-5
Loading coastri-roms/pr1-5
  Loading requirement: coastri-roms/dependencies/pr1-5/openmpi/4.1.4-rwumwx4 coastri-roms/dependencies/pr1-5/ancoms-roms/4.2-vhnd3am
$ module show coastri-roms/dependencies/pr1-5/ancoms-roms/4.2-vhnd3am
-------------------------------------------------------------------
/g/data/vk83/prerelease/apps/spack/0.22/release/modules/linux-rocky8-x86_64/coastri-roms/dependencies/pr1-5/ancoms-roms/4.2-vhnd3am:

module-whatis   {ROMS is a free-surface, terrain-following, primitive equations ocean model widely used by the scientific community for a diverse range of applications}
module          load coastri-roms/dependencies/pr1-5/openmpi/4.1.4-rwumwx4
prepend-path    PATH /g/data/vk83/prerelease/apps/spack/0.22/release/linux-rocky8-x86_64/intel-2021.8.0/ancoms-roms-4.2-vhnd3amgj5e3fm4eynvy6kvv4ucp4td3/bin
prepend-path    CMAKE_PREFIX_PATH /g/data/vk83/prerelease/apps/spack/0.22/release/linux-rocky8-x86_64/intel-2021.8.0/ancoms-roms-4.2-vhnd3amgj5e3fm4eynvy6kvv4ucp4td3/.
-------------------------------------------------------------------
$ ls /g/data/vk83/prerelease/apps/spack/0.22/release/linux-rocky8-x86_64/intel-2021.8.0/ancoms-roms-4.2-vhnd3amgj5e3fm4eynvy6kvv4ucp4td3/bin
romsM
$ romsM

 STDINP_UNIT - Unable to open ROMS input script file.

           ERROR: file name specification error, unit 1, file "Unknown"

           In distributed-memory applications, the input
           script file is processed in parallel. The Unix
           routine GETARG is used to get script file name.
           For example, in MPI applications make sure that
           command line is something like:

           mpirun -np 4 romsM roms.in

           and not

           mpirun -np 4 romsM < roms.in


 INP_PAR - Unable to ROMS standard input file, Iname
 Found Error: 2    Line: 104      Source: ROMS/Utility/inp_par.F
 Found Error: 2    Line: 139      Source: ROMS/Drivers/nl_roms.h, ROMS_initialize

Elapsed wall CPU time for each process (seconds):

 Found Error: 2    Line: 413      Source: ROMS/Utility/close_io.F, close_out

 ROMS - Input error ............. exit_flag:      2


 ERROR: Abnormal termination: NetCDF INPUT.
 REASON: No error
$

Comment thread README.md Outdated
Copy link
Copy Markdown
Collaborator

@helenmacdonald helenmacdonald left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ROMS has a few different user defined options that are set pre compilation in a .h file. Is this README a good place to point to which precompiler options are set in the released executable?
I think this is pointing to the benchmark version which uses benchmark.h

Copy link
Copy Markdown
Collaborator

@phellipecouto phellipecouto left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Following @helenmacdonald comment above, could we make a minor modification on the default option for variant roms_application? Change default="benchmark" to default="upwelling" and recompile the executable. That way the executable would be compatible with the model configuration here.

@aidanheerdegen @helenmacdonald, I can remember the reasoning behind naming the module as coastri-roms, but I think ancoms-roms would suit better - or would this conflict with the same naming adopted in some other spack configs?

Co-authored-by: Helen Macdonald <179985228+helenmacdonald@users.noreply.github.com>
@aidanheerdegen
Copy link
Copy Markdown
Member

could we make a minor modification on the default option for variant roms_application? Change default="benchmark" to default="upwelling" and recompile the executable. That way the executable would be compatible with the model configuration here.

I have changed the roms_application in the spec:

diff --git a/spack.yaml b/spack.yaml
index 428ab48..9c79403 100644
--- a/spack.yaml
+++ b/spack.yaml
@@ -4,7 +4,7 @@
 # configuration settings.
 spack:
   specs:
-    - coastri-roms@git.2025.06.000
+    - coastri-roms@git.2025.06.000 roms_application='upwelling'
   packages:
     # Specification of dependency versions and variants. CI/CD requires that
     # the first element of the require is only a version

which should have the desired effect.

@github-actions
Copy link
Copy Markdown

🚀 Attempted to deploy coastri-roms Prerelease pr1-6 with commit e28dff2

🖥️ Gadi Deployment ❌

@github-actions
Copy link
Copy Markdown

🚀 Attempted to deploy coastri-roms Prerelease pr1-7 with commit 6f909b0

🖥️ Gadi Deployment ❌

@aidanheerdegen
Copy link
Copy Markdown
Member

@aidanheerdegen @helenmacdonald, I can remember the reasoning behind naming the module as coastri-roms, but I think ancoms-roms would suit better - or would this conflict with the same naming adopted in some other spack configs?

ancoms-roms is the name of the spack bundle package, so we can't use the same one for the deployment environment as far as I remember.

The rationale was the package was developed by the community, the deployment was part of ACCESS-NRI's contribution to CoastRI.

@aidanheerdegen
Copy link
Copy Markdown
Member

could we make a minor modification on the default option for variant roms_application? Change default="benchmark" to default="upwelling" and recompile the executable. That way the executable would be compatible with the model configuration here.

I have changed the roms_application in the spec:

diff --git a/spack.yaml b/spack.yaml
index 428ab48..9c79403 100644
--- a/spack.yaml
+++ b/spack.yaml
@@ -4,7 +4,7 @@
 # configuration settings.
 spack:
   specs:
-    - coastri-roms@git.2025.06.000
+    - coastri-roms@git.2025.06.000 roms_application='upwelling'
   packages:
     # Specification of dependency versions and variants. CI/CD requires that
     # the first element of the require is only a version

which should have the desired effect.

That was wrong. The variant is defined on the package level, so that is where that has to go:

diff --git a/spack.yaml b/spack.yaml
index 428ab48..de44877 100644
--- a/spack.yaml
+++ b/spack.yaml
@@ -10,7 +10,8 @@ spack:
     # the first element of the require is only a version
     ancoms-roms:
       require:
-        - '@4.2'
+        - '@4.2' 
+        - roms_application='upwelling'
     openmpi:
       require:
         - '@4.1.4'

@github-actions
Copy link
Copy Markdown

🚀 Attempted to deploy coastri-roms Prerelease pr1-8 with commit 4ff0c09

🖥️ Gadi Deployment ✔️

Usage Instructions

coastri-roms, defined in ./spack.yaml, will be deployed to Gadi as:

  • 2025.06.000 as a Release (when merged).
  • pr1-8 as a Prerelease (during this PR).

This Prerelease is accessible on Gadi using:

module use /g/data/vk83/prerelease/modules
module load coastri-roms/pr1-8

When using the above modules, the binaries shall be on your $PATH.

For advanced users, this Prerelease is also accessible on Gadi via /g/data/vk83/prerelease/apps/spack/0.22/spack in the coastri-roms-pr1-8 environment.
Due to inode-saving measures, one will have to manually untar the environment metadata before environment activation with tar -xf .spack-env .spack-env.tar. It will require one to have write privileges.

Configuration Information

This Prerelease is deployed using:

If the above was not what was expected, commit changes to config/versions.json in this PR.

@aidanheerdegen
Copy link
Copy Markdown
Member

That has concretised with the upwelling variant:

==> [2025-08-26-14:13:29.914994] Concretized coastri-roms
 -   cbrfhhq  coastri-roms@latest%intel@2021.8.0 build_system=bundle arch=linux-rocky8-x86_64
 -   qshh2xk      ^ancoms-roms@4.2%intel@2021.8.0~debug+mpi~openmp build_system=makefile roms_application=upwelling arch=linux-rocky8-x86_64
[+]  ugyu3q4          ^curl@8.7.1%intel@2021.8.0~gssapi~ldap~libidn2~librtmp~libssh~libssh2+nghttp2 build_system=autotools libs=shared,static tls=openssl arch=linux-rocky8-x86_64
[+]  s2adwfq              ^nghttp2@1.57.0%intel@2021.8.0 build_system=autotools arch=linux-rocky8-x86_64
[-]  mcgluuj                  ^diffutils@3.10%intel@2021.8.0 build_system=autotools arch=linux-rocky8-x86_64
[-]  ctostb5                      ^libiconv@1.17%intel@2021.8.0 build_system=autotools libs=shared,static arch=linux-rocky8-x86_64
[+]  mvu36hc              ^openssl@3.3.0%intel@2021.8.0~docs+shared build_system=generic certs=mozilla arch=linux-rocky8-x86_64
[-]  ou25q5j                  ^ca-certificates-mozilla@2023-05-30%intel@2021.8.0 build_system=generic arch=linux-rocky8-x86_64
[e]  dd5z3tb              ^perl@5.26.3%intel@2021.8.0+cpanm+opcode+open+shared+threads build_system=generic patches=8cf4302 arch=linux-rocky8-x86_64
[+]  764e5vz              ^pkgconf@2.2.0%intel@2021.8.0 build_system=autotools arch=linux-rocky8-x86_64
[-]  524e3zb          ^gmake@4.4.1%intel@2021.8.0~guile build_system=generic arch=linux-rocky8-x86_64
[+]  v4r6adm          ^hdf5@1.10.11%intel@2021.8.0~cxx+fortran+hl~ipo~java+mpi+shared~szip~threadsafe+tools api=default build_system=cmake build_type=Release generator=make arch=linux-rocky8-x86_64
[e]  krkxpe3              ^cmake@3.24.2%intel@2021.8.0~doc+ncurses+ownlibs build_system=generic build_type=Release arch=linux-rocky8-x86_64
[+]  k5xol3f          ^netcdf-c@4.7.3%intel@2021.8.0~blosc~byterange~dap~fsync~hdf4~jna+mpi~nczarr_zip+optimize~parallel-netcdf+pic+shared~szip~zstd build_system=autotools arch=linux-rocky8-x86_64
[+]  edtbkft          ^netcdf-fortran@4.5.2%intel@2021.8.0~doc+pic+shared build_system=autotools patches=b050dbd arch=linux-rocky8-x86_64
[e]  rwumwx4          ^openmpi@4.1.4%intel@2021.8.0~atomics~cuda~cxx~cxx_exceptions~gpfs~internal-hwloc~internal-libevent~internal-pmix~java~legacylaunchers~lustre~memchecker~openshmem~orterunprefix~romio+rsh~singularity~static+vt+wrapper-rpath build_system=autotools fabrics=none patches=12f3aab romio-filesystem=none schedulers=none arch=linux-rocky8-x86_64
[+]  er5hyxd          ^zlib-ng@2.1.6%intel@2021.8.0+compat+new_strategies+opt+pic+shared build_system=autotools arch=linux-rocky8-x86_64
[e]  iohjg32      ^glibc@2.28%intel@2021.8.0 build_system=autotools arch=linux-rocky8-x86_64

@aidanheerdegen aidanheerdegen merged commit f42a38b into main Aug 26, 2025
10 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants