Skip to content

Update ESMF: add missing python/py-pyyaml dependency since 8.4.0#45700

Closed
climbfuji wants to merge 1 commit intospack:developfrom
climbfuji:patch-2
Closed

Update ESMF: add missing python/py-pyyaml dependency since 8.4.0#45700
climbfuji wants to merge 1 commit intospack:developfrom
climbfuji:patch-2

Conversation

@climbfuji
Copy link
Copy Markdown
Contributor

@climbfuji climbfuji commented Aug 12, 2024

In [email protected], the esmx tool was added and it looks like it is always built (i.e. no optional component/variant):

https://github.com/esmf-org/esmf/blob/v8.4.0/makefile

esmx depends on py-pyyaml (and therefore python) at runtime. The minimum Python version in spack is 3.7, and lacking any further information on the Python requirements for esmx (see https://earthsystemmodeling.org/docs/nightly/develop/ESMF_usrdoc), I simply added python and py-pyyaml as dependencies.

If any of the ESMF developers knows better which versions of python and py-pyyaml are required, please let me know!

Update Based on the exchange below, the minimum versions in spack are safe options, and so are the current defaults. Therefore, not specifying any version constraints.

@theurich
Copy link
Copy Markdown
Contributor

In [email protected], the esmx tool was added and it looks like it is always built (i.e. no optional component/variant):

https://github.com/esmf-org/esmf/blob/v8.4.0/makefile

esmx depends on py-pyyaml (and therefore python) at runtime. The minimum Python version in spack is 3.7, and lacking any further information on the Python requirements for esmx (see https://earthsystemmodeling.org/docs/nightly/develop/ESMF_usrdoc), I simply added python and py-pyyaml as dependencies.

If any of the ESMF developers knows better which versions of python and py-pyyaml are required, please let me know!

@danrosen25 - do you know specifics about versions required by ESMX? Thanks.

@danrosen25
Copy link
Copy Markdown

danrosen25 commented Aug 12, 2024

ESMX is code only and doesn't get built until the end user executes a build command using ESMX. I don't know specific version requirements for python and py-pyaml. I recommend using the current default spack versions and then we can test the spack installation in a container.

My system is using the following

  • Python 3.9.6 (XCode command line tools)
  • PyYAML 6.0.1 (pip default)

GitHub runners are using the following

  • Python 3.10.12 (GitHub admins)
  • PyYAML ?

ESMF Docker Container

  • Python 3.8.10 (apt-get defaults on ubuntu 20.04)
  • PyYAML 6.0.1 (pip default)

@climbfuji
Copy link
Copy Markdown
Contributor Author

Thanks, py-pyyaml@6 is available in spack and used in our environments. To be on the safe side, should I pin python to @3.8: (i.e. 3.8 or newer) and py-pyyaml to @6:?

@danrosen25
Copy link
Copy Markdown

If you give me the exact default versions for spack then I'll test them out in a container but it will take some time for me to get to the testing.

@climbfuji
Copy link
Copy Markdown
Contributor Author

If you give me the exact default versions for spack then I'll test them out in a container but it will take some time for me to get to the testing.

Default for python is 3.11.7, and for py-pyyaml 6.0.1

@theurich
Copy link
Copy Markdown
Contributor

On my local system I use ESMX successfully with Python 3.6.12 and PyYAML 5.3.1. Seems that just using Spack defaults as Dan suggested might suffice.

@climbfuji
Copy link
Copy Markdown
Contributor Author

Perfect, then this is ready ;-)

Copy link
Copy Markdown
Contributor

@theurich theurich left a comment

Choose a reason for hiding this comment

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

Looks good to me. Thank you for getting these run-time dependencies set correctly!

@danrosen25
Copy link
Copy Markdown

And if you're looking for minimums as opposed to defaults then Gerhard wins with the earliest versions that we've tested.

  • Python 3.6.12
  • PyYAML 5.3.1

@climbfuji
Copy link
Copy Markdown
Contributor Author

These changes have been pulled into #45504 - closing. Thanks for your feedback!

@climbfuji climbfuji closed this Aug 16, 2024
climbfuji pushed a commit to climbfuji/spack that referenced this pull request Aug 29, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants