Skip to content
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

Add Externals_BLOM.cfg file for use with NorESM2.3 #471

Merged

Conversation

TomasTorsvik
Copy link
Contributor

@TomasTorsvik TomasTorsvik commented Jan 24, 2025

This PR re-introduces the Externals_BLOM.cfg file, so that we can use the current master branch (currently v1.7 tag and potentially the upcoming v1.8 tag) in NorESM2.3.

See discussion in #470

@TomasTorsvik TomasTorsvik self-assigned this Jan 24, 2025
@TomasTorsvik TomasTorsvik added the enhancement New feature or request label Jan 24, 2025
Copy link
Collaborator

@jmaerz jmaerz left a comment

Choose a reason for hiding this comment

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

Thanks for converting back (and adjust for the most recent version)!

@TomasTorsvik TomasTorsvik added this to the release v1.7.1 tag milestone Jan 24, 2025
Copy link

@gold2718 gold2718 left a comment

Choose a reason for hiding this comment

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

Side question: If you had a choice, would you like to have a pure manage-externals like solution (i.e., externals file, does not use submodules to check out externals), git fleximod as it is today, or a hybrid tool that uses an externals file along with submodules?

@jmaerz
Copy link
Collaborator

jmaerz commented Jan 24, 2025

@gold2718 thanks for asking. I might be missing the point of git fleximod, but to my understanding, it doesn't do anything that the regular git submodule cannot handle - I currently feel as if git fleximod was written to be able to reference to model versions via written git tags in the .gitmodule file, while git submodule just refers to the checked-in sha number (of a particular tag) and it is not immediately obvious to the user, which tag (if any) is used - while I feel it is a weak motivation for git fleximod instead of the more common git submodule. The problem that I currently see with git fleximod is that it is not necessarily in sync with what git submodule has as information - and depending, which command you use, it can have different results. I haven't looked into git fleximod routines - how they are set up, etc. but I wish, it would at least provide some git fleximod sync_with_submodule_information and git fleximod check_if_in_sync_with_submodules functionality (in the future).
Long story short: I wouldn't want to go back to manage_externals necessarily, but would consider to decrease the overhead even further and only use git submodule - but again, I might be missing something that is obvious to others.

@gold2718
Copy link

@gold2718 thanks for asking. I might be missing the point of git fleximod, but to my understanding, it doesn't do anything that the regular git submodule cannot handle - I currently feel as if git fleximod was written to be able to reference to model versions via written git tags in the .gitmodule file, . . .

@jmaerz, You are basically correct. The original motivation was the feeling at NCAR that manage_externals was too time consuming to maintain. manage_externals was written at a time when many externals were in subversion repositories and also when git submodules were not as mature as they are now. However, the community has a strong desire to have explicit documentation and control of the tags used in each external. git fleximod is an attempt to combine submodules with this documentation requirement. It seems to be okay with clean checkouts but seems to me that it is missing other functionality including correctly switching branches or tags as well as the items you mention.

Note that BLOM is free to use submodules without including git fleximods fx keywords.

I have started a discussion on what features we need / want for our external checkout tool. I believe it includes the synchronization features you describe above.

@TomasTorsvik TomasTorsvik merged commit e16b131 into NorESMhub:master Jan 27, 2025
4 checks passed
@TomasTorsvik TomasTorsvik deleted the master_add_Externals_file branch January 27, 2025 14:05
@TomasTorsvik TomasTorsvik mentioned this pull request Jan 30, 2025
4 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
Status: Done
Development

Successfully merging this pull request may close these issues.

Update config_compsets.xml and config_pes.xml on release-1.6 branch?
4 participants