Skip to content

Update the global workflow environment - #2068

Open
AlexanderHrabski-NOAA wants to merge 18 commits into
JCSDA:developfrom
AlexanderHrabski-NOAA:update/gw_env
Open

Update the global workflow environment#2068
AlexanderHrabski-NOAA wants to merge 18 commits into
JCSDA:developfrom
AlexanderHrabski-NOAA:update/gw_env

Conversation

@AlexanderHrabski-NOAA

@AlexanderHrabski-NOAA AlexanderHrabski-NOAA commented Jul 20, 2026

Copy link
Copy Markdown
Collaborator

Description

This PR updates the global-workflow-env with the latest dependencies of the global workflow. The python variant is removed because it now must always be on, and some additional variants were added to support user installs for specific applications per the comments in #1994. Also removes the ip2 dependence from ufs-utils-envs, which was leading to a concretization error. ip2 was depreciated, and no longer exists in the spack-packages upstream. ip provides the lost functionality.

Dependencies

#2063 is required to build the environment for Ubuntu WSL.

Issues addressed

Resolves #1994

Applications affected

Affects the global workflow. Also modifies the unified environment, which includes the global workflow environment.

Systems affected

All, via changing an environment that is part of the unified environment.

Testing

  • CI: Note whether the automatic tests (GitHub actions tests that run automatically for every commit) pass or not

    • GitHub actions CI tests pass
    • GitHub actions CI tests do not pass (provide explanation)
    • GitHub actions CI tests skipped (provide explanation if necessary)
  • New tests added: List and describe any new tests added to GitHub actions

  • Additional testing: Add information on any additional tests conducted

    • Concretized and installed the unified-env on Ubuntu WSL with GNU compilers
    • Concretized and installed global-workflow-env on Ubuntu WSL with GNU compilers
    • Concretized and installed the unified-env on Ursa with Intel OneAPI compilers
    • Concretized and installed global-workflow-env on Ursa with Intel OneAPI compilers

Keeping this a draft while I test. Please let me know if there are other systems you'd like me to test this on.

Checklist

  • This PR addresses one issue/problem/enhancement or has a very good reason for not doing so.
  • These changes have been tested on the affected systems and applications.
  • All dependency PRs/issues have been resolved and this PR can be merged.
  • All necessary updates to the documentation (spack-stack wiki) will be made when this PR is merged


# Is GMAO ready to move to crtm@3.1.3?
- gmao-swell-env ^crtm@=v2.4.1-jedi.2
- gsi-env ^crtm@=3.1.3

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Now that the global workflow environment includes the GSI environment, should this be removed from the unified environment?

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

If the gsi-env is included in the unified environment only because the global workflow needs it, then I'd say yes. I'd like to defer to @climbfuji and @AlexanderRichert-NOAA on this though!

Comment thread configs/common/modules_lmod.yaml Outdated
Comment on lines +135 to +144
# The unified environment concretizes these two envs twice: once against
# crtm@3.1.3 (their own root specs) and once against crtm@v2.4.1-jedi.2,
# as pulled in by global-workflow-env. Suffix the latter so the module
# files don't clash.
gsi-env:
suffixes:
^crtm@v2.4.1-jedi.2: 'crtm-2.4.1-jedi.2'
ufs-weather-model-env:
suffixes:
^crtm@v2.4.1-jedi.2: 'crtm-2.4.1-jedi.2'

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

I should have caught this earlier. If we need to keep CRTM 2 for the GSI, we would need the version 2.4.0.1, not 2.4.1-jedi. I'm not sure how feasible this option is, though, as that would make for 3 CRTM packages, and 2.4.0.1 has not been in spack-stack since 1.9.x, so I'm not sure how compatible it is.

All of that to say, I think it would be best if we can just move to CRTM 3.x, and my suggestion would be to remove crtm-2.4.1-jedi from the GSI and global workflow environments entirely.

But I should defer this line to DA personnel:

@RussTreadon-NOAA do you think it would be acceptable to move the GSI and GDASapp to CRTM 3 for the spack-stack 2.x upgrade or do you need the capability to run with CRTM 2?

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

@DavidHuber-NOAA : We should move GSI and GDASApp to CRTM v3. @ADCollard was looking at CRTM v3 in the GSI. I'm not aware of anyone looking at CRTM v3 in GDASApp

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Thanks @RussTreadon-NOAA.

In that case, I'll stick to my original suggestion that we remove references to CRTM 2.4.x from the GSI and GW environments.

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

The gsi-env included explicitly in the unified environment already depends on crtm@3.1.3. Regardless of whether or not the gsi-env is retained in the unified environment explicitly, adding a ^crtm@3.1.3 to the global workflow environment would cover the global workflow + GSI crtm dependence. JEDI omits crtm dependence to force the user to provide it explicitly. In keeping with that pattern, I think global-workflow-env+gdas probably shouldn't specify the crtm version needed for JEDI. For the vast majority of users, they will get the correct crtm version from the unified environment anyway. Otherwise, the version needed for JEDI will be missing (unless it's crtm@3.1.3) and the user will have to decide, which is the intention.

@AlexanderHrabski-NOAA AlexanderHrabski-NOAA self-assigned this Aug 7, 2026
@climbfuji

Copy link
Copy Markdown
Collaborator

@AlexanderHrabski-NOAA Can you take a look at the reviewer comments and pull in develop, please?

@AlexanderHrabski-NOAA

Copy link
Copy Markdown
Collaborator Author

I rebased on develop and reverted the changes related to duplicate packages because the duplicates were due to having additional crtm versions. I left gsi-env in the unified environment -- after thinking about it further I'm in favor of leaving it in. However, I'd be happy to remove it at your request @climbfuji and @AlexanderRichert-NOAA.

@AlexanderRichert-NOAA

Copy link
Copy Markdown
Collaborator

I personally don't have a preference. The idea of the metamodules is to make sure all the various apps are represented in the unified env, so as long as all the GSI dependencies end up there my two cents is it's okay either way.

@climbfuji

Copy link
Copy Markdown
Collaborator

I defer to @RussTreadon-NOAA and @DavidHuber-NOAA

@RussTreadon-NOAA

Copy link
Copy Markdown

As long as GSI applications are able to build and run correctly, I am personally fine with whatever the library team decides.

rust:
require:
- '%c,cxx=gcc'
# glib@2.88 with the meson@1.11 build system fails to build for intel-oneapi-compilers@2025.3.1

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Interesting. I didn't run into issues building glib with Intel oneAPI, using versions between 2025.0.3 and 2026.1.0.

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

I'd be happy to try to recreate the error. It's probably worth re-verifying the unified-env on Ursa after these changes and the rebase anyway!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: In Progress

Development

Successfully merging this pull request may close these issues.

Update global_workflow_env with the most recent required libraries

5 participants