Skip to content

Infra Update v8: spack v1 Support#168

Merged
CodeGat merged 16 commits intomainfrom
infra-update-v8
Mar 4, 2026
Merged

Infra Update v8: spack v1 Support#168
CodeGat merged 16 commits intomainfrom
infra-update-v8

Conversation

@CodeGat
Copy link
Copy Markdown
Member

@CodeGat CodeGat commented Nov 18, 2025

References issue ACCESS-NRI/build-cd#313 and PR ACCESS-NRI/build-cd#326
References rollout issue ACCESS-NRI/build-cd#328
References project Spack `0.22` to `1.0` Migration

Note

This infrastructure update created a new Release, but it maintained reproducibility with the current main

Important

This PR is a major update to the deployment infrastructure. See below for the prerequisites for this repository to be able to merge this PR.

Important

This major version change marks the end of major infrastructure updates for deployments to spack < 1.0.
If you want to deploy to instances of spack < 1.0, you must use build-cd < v8.
If you want to deploy to instances of spack >= 1.0, you must use build-cd >= v8.

Background

We are moving on up to spack v1! This update to spack contains many bug fixes, optimisations and new features that can be incorporated into build-cd.

This update also contains changes that make spack v0.X incompatible with this build-cd v8 update - the most prominent one being the splitting of spacks core codebase from it's builtin spack-packages repo. This means that for provenance, one to keep track of both builtin spack-packages and our own, renamed access-spack-packages. build-cd will centrally control the version of builtin spack-packages for a given instance, and config/versions.jsons spack-packages key is renamed to access-spack-packages.

As noted earlier, this major version of build-cd can only support spack v1, due to spack v1-specific commands in the infrastructure. If you still want to deploy to spack v0.X, you will need to change build-cd to v7, and update the config/versions.json file/spack.yaml.

Features

  • Support for spack v1: We're moving to a new, non-beta version of spack! It contains bug fixes, features and optimisations over the old version.
  • No more spack.config!: This is now handled in spack-config via the .custom-scopes key in config/versions.json!

Prerequisites for Merging

  • Update build-cd entrypoints (this PR!)
  • Update config/versions.json with new inputs (also this PR!)
  • Validate compiler additions to the spack manifest (this PR, too!)
  • Test and Verify Model built with spack v1

🚀 The latest prerelease access-esm1p6/pr168-6 at 97f59c0 is here: #168 (comment) 🚀


🚀 The latest prerelease access-esm1p6/pr168-7 at 34f23bd is here: #168 (comment) 🚀

@CodeGat CodeGat added the type:infra Related to CI/CD label Nov 18, 2025
@CodeGat CodeGat self-assigned this Nov 18, 2025
@CodeGat
Copy link
Copy Markdown
Member Author

CodeGat commented Jan 5, 2026

Note: Rebased all the changes from the v6/v7 infra updates, so this should be good to go once the linked build-cd PRs are done.

@ACCESS-NRI ACCESS-NRI deleted a comment from github-actions Bot Feb 12, 2026
@github-actions
Copy link
Copy Markdown

🚀 Attempted to deploy access-esm1p6 Prerelease pr168-1 with commit 4cd0d7f

🖥️ Gadi Deployment ✔️

Usage Instructions

access-esm1.6, defined in spack.yaml, will be deployed to Gadi as:

  • 2026.01.000 as a Release (when merged).
  • pr168-1 as a Prerelease (during this PR).

This Prerelease is accessible on Gadi using:

module use /g/data/vk83/prerelease/modules
module load access-esm1p6/pr168-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/1.1/spack in the access-esm1p6-pr168-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, or propose changes to build-cds config/settings.json.

@CodeGat
Copy link
Copy Markdown
Member Author

CodeGat commented Feb 12, 2026

Although it installed fine, it failed to get the metadata from the restricted directory. I'll fix up this bug now.

Edit: Fixed via ACCESS-NRI/build-cd#357

@CodeGat CodeGat marked this pull request as ready for review February 12, 2026 05:20
@github-actions
Copy link
Copy Markdown

🚀 Attempted to deploy access-esm1p6 Prerelease pr168-2 with commit 137da68

🖥️ Gadi Deployment ✔️

Usage Instructions

access-esm1.6, defined in spack.yaml, will be deployed to Gadi as:

  • 2026.01.000 as a Release (when merged).
  • pr168-2 as a Prerelease (during this PR).

This Prerelease is accessible on Gadi using:

module use /g/data/vk83/prerelease/modules
module load access-esm1p6/pr168-2

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/1.1/spack in the access-esm1p6-pr168-2 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, or propose changes to build-cds config/settings.json.

@github-actions
Copy link
Copy Markdown

🚀 Attempted to deploy access-esm1p6 Prerelease pr168-3 with commit b51aa55

🖥️ Gadi Deployment ✔️

Usage Instructions

access-esm1.6, defined in spack.yaml, will be deployed to Gadi as:

  • 2026.01.000 as a Release (when merged).
  • pr168-3 as a Prerelease (during this PR).

This Prerelease is accessible on Gadi using:

module use /g/data/vk83/prerelease/modules
module load access-esm1p6/pr168-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/1.1/spack in the access-esm1p6-pr168-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, or propose changes to build-cds config/settings.json.

@CodeGat
Copy link
Copy Markdown
Member Author

CodeGat commented Feb 12, 2026

The above deployment was successful (as was the metadata generation).

@CodeGat
Copy link
Copy Markdown
Member Author

CodeGat commented Feb 13, 2026

!update-configs

@github-actions
Copy link
Copy Markdown

🔧 Opening Model Configuration PRs in ACCESS-NRI/access-esm1.6-configs

Configurations Requested

Configurations requested from profile default:

  • dev-1pctCO2

  • dev-4xCO2+concentrations

  • dev-historical+concentrations

  • dev-preindustrial+concentrations

Pull Requests Opened

The following PRs were opened:

More details can be found in the workflow run: https://github.com/ACCESS-NRI/ACCESS-ESM1.6/actions/runs/21974705756

@github-actions
Copy link
Copy Markdown

🚀 Attempted to deploy access-esm1p6 Prerelease pr168-4 with commit 0d8b7df

🖥️ Gadi Deployment ✔️

Usage Instructions

access-esm1.6, defined in spack.yaml, will be deployed to Gadi as:

  • 2026.01.000 as a Release (when merged).
  • pr168-4 as a Prerelease (during this PR).

This Prerelease is accessible on Gadi using:

module use /g/data/vk83/prerelease/modules
module load access-esm1p6/pr168-4

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/1.1/spack in the access-esm1p6-pr168-4 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, or propose changes to build-cds config/settings.json.

@CodeGat
Copy link
Copy Markdown
Member Author

CodeGat commented Feb 18, 2026

!update-configs

@github-actions
Copy link
Copy Markdown

🔧 Opening/Updating Model Configuration PRs in ACCESS-NRI/access-esm1.6-configs

Configurations Requested

Configurations requested from profile default:

  • dev-1pctCO2

  • dev-4xCO2+concentrations

  • dev-historical+concentrations

  • dev-preindustrial+concentrations

Pull Requests Opened/Updated

The following PRs were opened/updated:

More details can be found in the workflow run: https://github.com/ACCESS-NRI/ACCESS-ESM1.6/actions/runs/22122642995

@blimlim
Copy link
Copy Markdown
Collaborator

blimlim commented Mar 2, 2026

@manodeep and @harshula too!

@CodeGat
Copy link
Copy Markdown
Member Author

CodeGat commented Mar 2, 2026

Yes, thanks @harshula, @manodeep as well!

I've just rebased the branch so it is ready for a proper merge now.

@CodeGat CodeGat requested review from blimlim and manodeep March 2, 2026 23:19
blimlim
blimlim previously approved these changes Mar 2, 2026
Copy link
Copy Markdown
Collaborator

@blimlim blimlim left a comment

Choose a reason for hiding this comment

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

Less familiar with the CI/CD side, but the spack.yaml looks good to me!

Copy link
Copy Markdown
Collaborator

@manodeep manodeep left a comment

Choose a reason for hiding this comment

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

I am not across the CI/CD bits, but everything looks fine.

Only thing might be to see if you could separate out the white-space-only changes in a different PR?

@CodeGat
Copy link
Copy Markdown
Member Author

CodeGat commented Mar 3, 2026

Thanks @manodeep ! We might need for it to be in this one just so it's compatible with the formatter in spack v1.1

manodeep
manodeep previously approved these changes Mar 3, 2026
@anton-seaice
Copy link
Copy Markdown
Collaborator

Extract from the concretisation:

[+]  vjfi7jq          ^netcdf-c@4.9.2~blosc~byterange~dap~fsync~hdf4~jna~logging+mpi~nczarr_zip+optimize~parallel-netcdf+pic~shared~szip~zstd build_system=autotools patches:=0161eb8 platform=linux os=rocky8 target=x86_64_v2 %c=oneapi@2025.2.0
[+]  bzfhqsh              ^hdf5@1.14.3~cxx~fortran+hl~ipo~java~map+mpi+shared~subfiling~szip~threadsafe+tools api=default build_system=cmake build_type=Release generator=make patches:=82088c8,f42732a platform=linux os=rocky8 target=x86_64_v2 %c=oneapi@2025.2.0
[+]  rt6agvu                  ^pkgconf@2.5.1 build_system=autotools platform=linux os=rocky8 target=x86_64_v2 %c=oneapi@2025.2.0
[+]  uupdcdj                  ^zlib-ng@2.3.2+compat~new_strategies+opt+pic+shared build_system=autotools platform=linux os=rocky8 target=x86_64_v2 %c,cxx=oneapi@2025.2.0
[+]  ykcgsfm          ^netcdf-fortran@4.6.1~doc+pic+shared build_system=autotools platform=linux os=rocky8 target=x86_64_v2 %c,fortran=oneapi@2025.2.0

We should try setting

target=x86_64_v4 for netcdf-c and netcdf-fortran, but lets wait for the spack upstream meeting today to see what they say first

@CodeGat
Copy link
Copy Markdown
Member Author

CodeGat commented Mar 4, 2026

Yeah Peter was confused as well. Maybe we should set the target explicitly for netcdf-[c|fortran]

@github-actions
Copy link
Copy Markdown

github-actions Bot commented Mar 4, 2026

🚀 Attempted to deploy access-esm1p6 Prerelease pr168-7 with commit 34f23bd

🖥️ Gadi Deployment ❌

@anton-seaice
Copy link
Copy Markdown
Collaborator

1. Cannot find compatible targets for oasis3-mct and netcdf-fortran

Seems like spack enforces targets are the same or more flexible for dependencies then ?

@CodeGat
Copy link
Copy Markdown
Member Author

CodeGat commented Mar 4, 2026

I guess I should drop that change, then

@anton-seaice
Copy link
Copy Markdown
Collaborator

I guess with are stuck with the spack set targets for those packages

@CodeGat
Copy link
Copy Markdown
Member Author

CodeGat commented Mar 4, 2026

Okay it's like nothing ever happened 😆 approve away

Copy link
Copy Markdown
Collaborator

@anton-seaice anton-seaice left a comment

Choose a reason for hiding this comment

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

Thanks @CodeGat ! adn @blimlim

@CodeGat CodeGat merged commit 0057628 into main Mar 4, 2026
@CodeGat CodeGat deleted the infra-update-v8 branch March 4, 2026 05:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

type:infra Related to CI/CD

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants