-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Update METbaseimage to use newer versions of Atlas and ecKit #27
Comments
@jprestop, @hsoh-u pointed out an important detail during the MET Development Meeting on 7/25/24. According to the Atlas Release page, Atlas version 0.33.0 and later requires compiler support for the C++17 standard. This section of the MET User's Guide notes that C++11 support is required, but not C++17. So the question is, how do we deal with this situation? Here are some options:
How do you want to handle this wrinkle? |
@hsoh-u Thank you being aware that Atlas version 0.33.0 and later require compiler support for the C++17 standard. @JohnHalleyGotway @hsoh-u Would more of the MET code base need to change if we move to requiring support for the C++17 standard? I see here that the new Intel oneAPI compilers are using C++17 as the default standard: "With 2023.0 release, ICX/ICPX compiler is switching to C++17 from C++14 as the default standard while doing C++ compilation." And, at some point, the classic Intel compilers won't be supported any longer, although it's not exactly clear when that will be. And, it could vary based on the system and support for that system. Currently, I lean toward "Update to Atlas 0.35.0 'everywhere' and change the MET documentation to indicate that the C++17 standard is now required." as I believe C++17 was released in December 2017, but I don't know if that would require other changes to the MET code base and I don't have a good idea for how much hardship that might cause for users with older systems. |
@jprestop I don't think it would require any changes to the MET code base itself. The main concern is how much of a hardship that might cause for users with older systems. Before switching to requiring support for the C++17 standard, we should get confirmation from our primary funding partners (e.g. NOAA/EMC/GSL/CPC/etc, Met Office, Air Force, NRL, etc) and double-check that C++17 compliant compilers work well on all the "existing builds" machines we support. If the existing builds machines are fine and our funding partners have no objections, I'm fine with that change. |
@JohnHalleyGotway In order to get MET to compile on WCOSS2, I had to change references to "c++11" and "cxx11" with "c++17" and "cxx17" and then rerun bootstrap. I think that means that we don't really have ability to provide separate "tar files" for C++11 (i.e. Atlas < 0.33.0) and for C++17 (i.e. Atlas >= 0.33.0). Am I arriving at that conclusion correctly? |
Julie, great point. I wasn't expecting that switching from 11 to 17 would be required to get MET to compile with the updated Atlas version. I suppose this means we'd need to make this change immediately for the MET 12.0.0 release... or, if not, update the installation instructions to include rerunning bootstrap. This is already on the agenda for the METplus governance meeting today. Seems to me that switching to 17 now is the simpler/preferred option. But if there is pushback, revising our installation instructions to include bootstrap could be a fallback option. |
@JohnHalleyGotway I'm modifying the agenda for the METplus Advisory Group meeting with this new information. While we would revise our installation instructions to include running bootstrap, that would require a version of aclocal that is 1.16 or higher, which may be problematic for groups as well (note that the version of aclocal on WCOSS2 is only 1.15.1 - I had to download the code to my machine, run bootstrap, package it up, and transfer it to WCOSS2), but I suppose we would do that and put the package on the server for groups to grab. Of course, that is extra effort and makes the steps more complicated. |
…added description of changes to README.md
@jprestop there's a chicken and egg problem here. You have changes to the To solve this two-way dependency, I manually built the updated met-base images on my laptop and pushed them up to DockerHub using the commands listed below. Once they're available on DockerHub, you can do the following:
These commands were adapted from the GHA job script named
Note that METviewer DOES INCLUDE references to
You could update these to v3.3 after creating the METbaseimage v3.3 release. While it isn't strictly required, it'd probably make things less confusing to keep those versions consistent. The following images are now available on DockerHub: |
…TAR_FILE_VERSION_NAME as met-base-v3.3
Co-authored-by: John Halley Gotway <[email protected]>
* Per #27, modified argument for branch and tar file version name, and added description of changes to README.md * Per #27, changed MET_COMPILE_SCRIPT_BRANCH back to develop, left MET_TAR_FILE_VERSION_NAME as met-base-v3.3 * Per #27, modifying capitalization for consistency Co-authored-by: John Halley Gotway <[email protected]> --------- Co-authored-by: John Halley Gotway <[email protected]>
Describe the Task
It was discovered that newer versions of atlas and eckit are being used on WCOSS2. These are versions atlas/0.35.0 and eckit/1.24.4. Update the METbaseimage to use these newer versions.
Time Estimate
1 day
Sub-Issues
Consider breaking the task down into sub-issues.
Relevant Deadlines
??
Funding Source
??
Define the Metadata
Assignee
Labels
Projects and Milestone
Define Related Issue(s)
Consider the impact to the other METplus components.
Task Checklist
See the METplus Workflow for details.
Branch name:
feature_<Issue Number>_<Description>
Pull request:
feature <Issue Number> <Description>
Select: Reviewer(s) and Development issues
Select: Repository level development cycle Project for the next official release
Select: Milestone as the next official version
The text was updated successfully, but these errors were encountered: