Skip to content

Commit 5b8dc69

Browse files
committed
Merge branch 'cesm3.0-alphabranch'
2 parents 29a2850 + bcee806 commit 5b8dc69

File tree

11 files changed

+107
-31
lines changed

11 files changed

+107
-31
lines changed

.gitmodules

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@
3737
path = cime
3838
url = https://github.com/ESMCI/cime
3939
fxDONOTUSEurl = https://github.com/ESMCI/cime
40-
fxtag = cime6.1.134
40+
fxtag = cime6.1.135
4141
fxrequired = ToplevelRequired
4242

4343
[submodule "fms"]
@@ -80,7 +80,7 @@
8080
url = https://github.com/ESCOMP/MOM_interface
8181
fxDONOTUSEurl = https://github.com/ESCOMP/MOM_interface
8282
fxrequired = ToplevelRequired
83-
fxtag = mi_250519
83+
fxtag = mi_251112
8484

8585
[submodule "cism"]
8686
path = components/cism
@@ -94,14 +94,14 @@
9494
url = https://github.com/ESCOMP/CDEPS
9595
fxDONOTUSEurl = https://github.com/ESCOMP/CDEPS
9696
fxrequired = ToplevelRequired
97-
fxtag = cdeps1.0.82
97+
fxtag = cdeps1.0.83
9898

9999
[submodule "cmeps"]
100100
path = components/cmeps
101101
url = https://github.com/ESCOMP/CMEPS.git
102102
fxDONOTUSEurl = https://github.com/ESCOMP/CMEPS.git
103103
fxrequired = ToplevelRequired
104-
fxtag = cmeps1.1.21
104+
fxtag = cmeps1.1.23
105105

106106
[submodule "rtm"]
107107
path = components/rtm

.lib/git-fleximod/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ Git-fleximod is a Python-based tool that extends Git's submodule and sparse chec
2525

2626
## Supported .gitmodules Variables
2727

28-
fxtag: Specify a specific tag or branch to checkout for a submodule.
28+
fxtag: Specify a specific tag or hash to checkout for a submodule. Branches are not acceptable.
2929
fxrequired: Mark a submodule's checkout behavior, with allowed values:
3030
- ToplevelRequired: Top-level and required (checked out only when this is the Toplevel module).
3131
- ToplevelOptional: Top-level and optional (checked out with --optional flag if this is the Toplevel module).

.lib/git-fleximod/git_fleximod/cli.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
import argparse, os, sys
33
from git_fleximod import utils
44

5-
__version__ = "1.0.2"
5+
__version__ = "1.0.3"
66

77
class CustomArgumentParser(argparse.ArgumentParser):
88
def print_help(self, file=None):

.lib/git-fleximod/git_fleximod/submodule.py

Lines changed: 22 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ def __init__(self, root_dir, name, path, url, fxtag=None, fxurl=None, fxsparse=N
2727
"""
2828
self.name = name
2929
self.root_dir = root_dir
30-
self.path = path
30+
self.path = path
3131
self.url = url
3232
self.fxurl = fxurl
3333
self.fxtag = fxtag
@@ -37,14 +37,14 @@ def __init__(self, root_dir, name, path, url, fxtag=None, fxurl=None, fxsparse=N
3737
else:
3838
self.fxrequired = "AlwaysRequired"
3939
self.logger = logger
40-
40+
4141
def status(self):
4242
"""
4343
Checks the status of the submodule and returns 4 parameters:
4444
- result (str): The status of the submodule.
4545
- needsupdate (bool): An indicator if the submodule needs to be updated.
4646
- localmods (bool): An indicator if the submodule has local modifications.
47-
- testfails (bool): An indicator if the submodule has failed a test, this is used for testing purposes.
47+
- testfails (bool): An indicator if the submodule has failed a test, this is used for testing purposes.
4848
"""
4949

5050
smpath = os.path.join(self.root_dir, self.path)
@@ -54,7 +54,7 @@ def status(self):
5454
ahash = None
5555
optional = ""
5656
if "Optional" in self.fxrequired:
57-
optional = " (optional)"
57+
optional = " (optional)"
5858
required = None
5959
level = None
6060
if not os.path.exists(os.path.join(smpath, ".git")):
@@ -63,7 +63,7 @@ def status(self):
6363
status, tags = rootgit.git_operation("ls-remote", "--tags", self.url)
6464
status, result = rootgit.git_operation("submodule","status",smpath)
6565
result = result.split()
66-
66+
6767
if result:
6868
ahash = result[0][1:]
6969
hhash = None
@@ -102,7 +102,7 @@ def status(self):
102102
result = f"e {self.name:>20} has no associated remote"
103103
testfails = True
104104
needsupdate = True
105-
return result, needsupdate, localmods, testfails
105+
return result, needsupdate, localmods, testfails
106106
status, rurl = git.git_operation("ls-remote","--get-url")
107107
status, lines = git.git_operation("log", "--pretty=format:\"%h %d\"")
108108
line = lines.partition('\n')[0]
@@ -148,15 +148,15 @@ def status(self):
148148
else:
149149
result = f"e {self.name:>20} has no fxtag defined in .gitmodules, module at {ahash}"
150150
testfails = False
151-
151+
152152
status, output = git.git_operation("status", "--ignore-submodules", "-uno")
153153
if "nothing to commit" not in output:
154154
localmods = True
155155
result = "M" + textwrap.indent(output, " ")
156156
# print(f"result {result} needsupdate {needsupdate} localmods {localmods} testfails {testfails}")
157157
return result, needsupdate, localmods, testfails
158158

159-
159+
160160
def _add_remote(self, git):
161161
"""
162162
Adds a new remote to the submodule if it does not already exist.
@@ -170,7 +170,7 @@ def _add_remote(self, git):
170170
171171
Returns:
172172
str: The name of the new remote if added, or the name of the existing remote that matches the submodule's URL.
173-
"""
173+
"""
174174
status, remotes = git.git_operation("remote", "-v")
175175
remotes = remotes.splitlines()
176176
upstream = None
@@ -212,7 +212,7 @@ def sparse_checkout(self):
212212
213213
Returns:
214214
None
215-
"""
215+
"""
216216
self.logger.info("Called sparse_checkout for {}".format(self.name))
217217
rgit = GitInterface(self.root_dir, self.logger)
218218
status, superroot = rgit.git_operation("rev-parse", "--show-superproject-working-tree")
@@ -250,7 +250,7 @@ def sparse_checkout(self):
250250
sprepo_git.config_set_value("core", "sparseCheckout", "true")
251251

252252
# set the repository remote
253-
253+
254254
self.logger.info("Setting remote origin in {}/{}".format(self.root_dir, self.path))
255255
status, remotes = sprepo_git.git_operation("remote", "-v")
256256
if self.url not in remotes:
@@ -287,7 +287,7 @@ def sparse_checkout(self):
287287
"submodule {} is already initialized {}".format(self.name, rootdotgit)
288288
)
289289
os.remove(gitsparse)
290-
290+
291291
if os.path.isfile(self.fxsparse):
292292
shutil.copy(self.fxsparse, gitsparse)
293293
else:
@@ -377,21 +377,21 @@ async def update(self):
377377
shutil.rmtree(os.path.join(repodir, ".git"))
378378
else:
379379
shutil.move(os.path.join(repodir, ".git"), newpath)
380-
380+
381381
with open(os.path.join(repodir, ".git"), "w") as f:
382382
f.write("gitdir: " + os.path.relpath(newpath, start=repodir))
383383

384384
if not os.path.exists(repodir):
385385
parent = os.path.dirname(repodir)
386386
if not os.path.isdir(parent):
387387
os.makedirs(parent)
388-
git.git_operation("submodule", "add", "--name", self.name, "--", self.url, self.path)
388+
git.git_operation("submodule", "add", "--name", self.name, "--", self.url, self.path)
389389

390390
if not repo_exists:
391391
git.git_operation("submodule", "init", "--", self.path)
392392
await git.git_operation_async("submodule", "update", "--", self.path)
393393

394-
if self.fxtag:
394+
if self.fxtag:
395395
smgit = GitInterface(repodir, self.logger)
396396
newremote = self._add_remote(smgit)
397397
# Trying to distingush a tag from a hash
@@ -401,18 +401,21 @@ async def update(self):
401401
# This is a tag
402402
tag = f"refs/tags/{self.fxtag}:refs/tags/{self.fxtag}"
403403
status,_ = smgit.git_operation("fetch", newremote, tag)
404+
else:
405+
# This is likely a hash, so fetch full history just in case
406+
status,_ = smgit.git_operation("fetch", newremote)
404407
if status == 0:
405408
status,_ = smgit.git_operation("checkout", self.fxtag)
406409
if status:
407410
utils.fatal_error(
408411
f"Failed to checkout {self.name} at tag or hash {self.fxtag} from {repodir}"
409412
)
410-
413+
411414
if not os.path.exists(os.path.join(repodir, ".git")):
412415
utils.fatal_error(
413416
f"Failed to checkout {self.name} {repo_exists} {repodir} {self.path}"
414417
)
415-
418+
416419

417420
if os.path.exists(os.path.join(self.path, ".git")):
418421
submoddir = os.path.join(self.root_dir, self.path)
@@ -445,7 +448,7 @@ async def update(self):
445448
print(f"{self.name:>20} updated to {fxtag}")
446449
except Exception as error:
447450
print(error)
448-
451+
449452

450453
elif not fxtag:
451454
print(f"No fxtag found for submodule {self.name:>20}")
@@ -457,5 +460,5 @@ async def update(self):
457460
print(f"{self.name:>20} up to date.")
458461

459462

460-
463+
461464
return

.lib/git-fleximod/pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[tool.poetry]
22
name = "git-fleximod"
3-
version = "1.0.2"
3+
version = "1.0.3"
44
description = "Extended support for git-submodule and git-sparse-checkout"
55
authors = ["Jim Edwards <[email protected]>"]
66
maintainers = ["Jim Edwards <[email protected]>"]

.lib/git-fleximod/tbump.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
github_url = "https://github.com/jedwards4b/git-fleximod/"
33

44
[version]
5-
current = "1.0.2"
5+
current = "1.0.3"
66

77
# Example of a semver regexp.
88
# Make sure this matches current_version before

ChangeLog

Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,76 @@
1+
==============================================================
2+
Tag name: cesm3_0_alpha07g
3+
Originator(s): CSEG
4+
Date: 28th Oct. 2025
5+
One-line Summary: MOM answer changes.
6+
7+
ccs_config https://github.com/ESMCI/ccs_config_cesm/tree/ccs_config_cesm1.0.63 --
8+
cime https://github.com/ESMCI/cime/tree/cime6.1.135 **
9+
components/fms https://github.com/ESCOMP/FMS_interface/tree/fi_250428 --
10+
share https://github.com/ESCOMP/CESM_share/tree/share1.1.9 --
11+
components/cam https://github.com/ESCOMP/CAM/cam6_4_126 --
12+
components/clm https://github.com/ESCOMP/ctsm/tree/alpha-ctsm5.4.CMIP7.09.ctsm5.3.068--
13+
components/cice https://github.com/ESCOMP/CESM_CICE/tree/cesm3_cice6_6_1_6 --
14+
components/mom https://github.com/ESCOMP/MOM_interface/mi_251112 **
15+
components/cism https://github.com/ESCOMP/cism-wrapper/tree/cismwrap_2_2_011 --
16+
components/cdeps https://github.com/ESCOMP/CDEPS/tree/cdeps1.0.83 **
17+
components/cmeps https://github.com/ESCOMP/CMEPS/tree/cmeps1.1.23 **
18+
components/rtm https://github.com/ESCOMP/rtm/tree/rtm1_0_89 --
19+
components/ww3 https://github.com/ESCOMP/WW3-CESM/tree/main_0.0.18 --
20+
components/mizuroute https://github.com/ESCOMP/mizuRoute/tree/cesm-coupling.v3.0.0 --
21+
components/mosart https://github.com/ESCOMP/mosart/tree/mosart1_1_12 --
22+
libraries/mpi-serial https://github.com/ESMCI/mpi-serial/tree/MPIserial_2.5.0 --
23+
libraries/parallelio https://github.com/NCAR/ParallilIO/tree/pio2_6_6 --
24+
tools/CUPiD https://github.com/NCAR/CUPiD/tree/v0.3.1 --
25+
26+
27+
cdeps
28+
Chris Fischer 2025-11-03 - cdeps1.0.83 - components/cdeps (cesm3_0_alpha07g)
29+
https://github.com/ESCOMP/CDEPS/tags/cdeps1.0.83
30+
31+
Update fox external
32+
33+
34+
cime
35+
Chris Fischer 2025-10-28 - cime6.1.135 - cime (cesm3_0_alpha07g)
36+
https://github.com/ESMCI/cime/tags/cime6.1.135
37+
cime6.1.135: Update cprnc from v1.1.3 to v1.1.4.
38+
39+
cmeps
40+
Chris Fischer 2025-10-28 - cmeps1.1.23 - src/drivers/nuopc/ (cesm3_0_alpha07g)
41+
https://github.com/ESCOMP/CMEPS/tags/cmeps1.1.23
42+
cmeps1.1.23: Fix ERR test.
43+
cmeps1.1.22: New atmocn flux modules to replace shr_flux_mod and removal of water isotope references
44+
45+
mom
46+
Chris Fischer 2025-11-12 - mi_251112 - components/mom (cesm3_0_alpha07g)
47+
https://github.com/ESCOMP/MOM_interface/tags/mi_251112
48+
49+
* Updates for failing tests
50+
51+
1. With DO_SKEB=True by default, we need to turn it off in the no_stoch_physics
52+
test
53+
2. In order for ERI tests to pass, need stochini=True for hybrid runs
54+
55+
* Problem was branch runs, not hybrids
56+
57+
58+
Chris Fischer 2025-11-03 - mi_251103 - components/mom (cesm3_0_alpha07g)
59+
https://github.com/ESCOMP/MOM_interface/tags/mi_251103
60+
61+
Fixes to SKEB runtime parameters and diag field.
62+
63+
64+
Alper Altuntas 2025-06-16 - mi_250616 - components/mom (cesm3_0_alpha07g)
65+
https://github.com/ESCOMP/MOM_interface/tags/mi_2506xx
66+
Sync with latest consortium branch
67+
68+
Alper Altuntas 2025-06-16 - mi_251024b - components/mom (cesm3_0_alpha07g)
69+
https://github.com/ESCOMP/MOM_interface/tags/mi_2506xx
70+
answer changes for beta07
71+
72+
73+
174
==============================================================
275
Tag name: cesm3_0_alpha07f
376
Originator(s): CSEG

cime

components/cdeps

0 commit comments

Comments
 (0)