Skip to content

Commit 7c661da

Browse files
authored
Merge branch 'b4b-dev' into TechNote_mod_2_15_mizuRoute
2 parents 58da943 + b081ad6 commit 7c661da

14 files changed

Lines changed: 234 additions & 36 deletions

File tree

Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
name: Post PR comment with doc-build failure log
2+
3+
env:
4+
DOCS_FAILURE_ARTIFACT: test-build-docs-container_failed
5+
6+
on:
7+
workflow_run:
8+
workflows: ["Test building docs when they're updated"]
9+
types: [completed]
10+
11+
jobs:
12+
comment:
13+
if: >-
14+
github.event.workflow_run.event == 'pull_request'
15+
&& github.event.workflow_run.conclusion == 'failure'
16+
runs-on: ubuntu-latest
17+
permissions:
18+
pull-requests: write
19+
actions: read
20+
steps:
21+
- name: Check for failure artifact
22+
id: check
23+
env:
24+
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
25+
REPO: ${{ github.repository }}
26+
run: |
27+
gh api repos/$REPO/actions/runs/${{ github.event.workflow_run.id }}/artifacts \
28+
--jq '.artifacts[] | select(.name == "${{ env.DOCS_FAILURE_ARTIFACT }}") | .id' > artifact_id.txt
29+
30+
if [ -s artifact_id.txt ]; then
31+
echo "found=true" >> $GITHUB_OUTPUT
32+
else
33+
echo "found=false" >> $GITHUB_OUTPUT
34+
fi
35+
36+
- name: Download logs
37+
if: steps.check.outputs.found == 'true'
38+
uses: actions/download-artifact@v4
39+
with:
40+
name: ${{ env.DOCS_FAILURE_ARTIFACT }}
41+
path: ${{ env.DOCS_FAILURE_ARTIFACT }}
42+
run-id: ${{ github.event.workflow_run.id }}
43+
github-token: ${{ secrets.GITHUB_TOKEN }}
44+
45+
- name: Post comment
46+
if: steps.check.outputs.found == 'true'
47+
env:
48+
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
49+
REPO: ${{ github.repository }}
50+
run: |
51+
PR_NUMBER=$(cat "${DOCS_FAILURE_ARTIFACT}/pr_number.txt")
52+
53+
{
54+
echo "### ❌ Docs build failed"
55+
echo
56+
echo '<details open="true">'
57+
echo "<summary>Build logs</summary>"
58+
echo
59+
echo '```'
60+
cat "${DOCS_FAILURE_ARTIFACT}/build.log"
61+
echo '```'
62+
echo
63+
echo "</details>"
64+
} > comment-body.md
65+
66+
gh pr comment "$PR_NUMBER" --repo "$REPO" --body-file comment-body.md

.github/workflows/docs.yml

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,4 +61,24 @@ jobs:
6161
- name: Build docs using Docker (Podman has trouble on GitHub runners)
6262
id: build-docs
6363
run: |
64-
cd doc && ./build_docs -b ${PWD}/_build -c -d
64+
set -o pipefail
65+
mkdir -p build-logs
66+
cd doc && PYTHONUNBUFFERED=1 ./build_docs -b ${PWD}/_build -c -d 2>&1 | tee >(sed -E $'s/\x1b\\[[0-9;]*[a-zA-Z]//g' > "${GITHUB_WORKSPACE}/build-logs/build.log")
67+
# The tee writes build.log for the PR comment (posted by docs-pr-failure-post-comment.yml); the inner sed strips ANSI color codes that would otherwise render as garbage in the comment.
68+
# PYTHONUNBUFFERED=1 because otherwise the teed log will be out of order
69+
70+
# The rest of the steps only trigger on failure of above build-docs step.
71+
# They upload logs that will be used by the docs-pr-failure-post-comment.yml workflow.
72+
73+
- name: Record PR number on failure
74+
if: failure() && steps.build-docs.outcome == 'failure' && github.event_name == 'pull_request'
75+
run: |
76+
mkdir -p build-logs
77+
echo "${{ github.event.pull_request.number }}" > build-logs/pr_number.txt
78+
79+
- name: Upload logs on failure
80+
if: failure() && steps.build-docs.outcome == 'failure'
81+
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
82+
with:
83+
name: test-build-docs-container_failed
84+
path: build-logs/

.gitmodules

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@
2828
[submodule "fates"]
2929
path = src/fates
3030
url = https://github.com/NGEET/fates
31-
fxtag = sci.1.92.0_api.44.0.0
31+
fxtag = sci.1.92.1_api.44.1.0
3232
fxrequired = AlwaysRequired
3333
# Standard Fork to compare to with "git fleximod test" to ensure personal forks aren't committed
3434
fxDONOTUSEurl = https://github.com/NGEET/fates
@@ -68,23 +68,23 @@ fxDONOTUSEurl = https://github.com/ESCOMP/mizuRoute
6868
[submodule "ccs_config"]
6969
path = ccs_config
7070
url = https://github.com/ESMCI/ccs_config_cesm.git
71-
fxtag = ccs_config_cesm1.0.79
71+
fxtag = ccs_config_cesm1.0.83
7272
fxrequired = ToplevelRequired
7373
# Standard Fork to compare to with "git fleximod test" to ensure personal forks aren't committed
7474
fxDONOTUSEurl = https://github.com/ESMCI/ccs_config_cesm.git
7575

7676
[submodule "cime"]
7777
path = cime
7878
url = https://github.com/ESMCI/cime
79-
fxtag = cime6.1.169
79+
fxtag = cime6.1.176
8080
fxrequired = ToplevelRequired
8181
# Standard Fork to compare to with "git fleximod test" to ensure personal forks aren't committed
8282
fxDONOTUSEurl = https://github.com/ESMCI/cime
8383

8484
[submodule "cmeps"]
8585
path = components/cmeps
8686
url = https://github.com/ESCOMP/CMEPS.git
87-
fxtag = cmeps1.1.37
87+
fxtag = cmeps1.1.44
8888
fxrequired = ToplevelRequired
8989
# Standard Fork to compare to with "git fleximod test" to ensure personal forks aren't committed
9090
fxDONOTUSEurl = https://github.com/ESCOMP/CMEPS.git

bld/CLMBuildNamelist.pm

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2083,13 +2083,16 @@ sub setup_logic_irrigate {
20832083
my ($opts, $nl_flags, $definition, $defaults, $nl) = @_;
20842084

20852085
add_default($opts, $nl_flags->{'inputdata_rootdir'}, $definition, $defaults, $nl, 'irrigate',
2086-
'use_crop'=>$nl_flags->{'use_crop'}, 'use_cndv'=>$nl_flags->{'use_cndv'},
2086+
'use_crop'=>$nl_flags->{'use_crop'}, 'use_cndv'=>$nl_flags->{'use_cndv'}, 'use_fates'=>$nl_flags->{'use_fates'},
20872087
'sim_year'=>$nl_flags->{'sim_year'}, 'sim_year_range'=>$nl_flags->{'sim_year_range'}, );
20882088
if ( &value_is_true($nl->get_value('irrigate') ) ) {
20892089
$nl_flags->{'irrigate'} = ".true.";
20902090
if ( $nl_flags->{'sim_year'} eq "PtVg" ) {
20912091
$log->fatal_error("irrigate=TRUE does NOT make sense with the Potential Vegetation dataset, leave irrigate=FALSE");
20922092
}
2093+
if (&value_is_true($nl_flags->{'use_fates'})) {
2094+
$log->fatal_error("irrigate=TRUE is NOT possible with use_fates=TRUE, leave irrigate=FALSE");
2095+
}
20932096
} else {
20942097
$nl_flags->{'irrigate'} = ".false.";
20952098
}

bld/namelist_files/namelist_defaults_ctsm.xml

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -200,10 +200,11 @@ attributes from the config_cache.xml file (with keys converted to upper-case).
200200
<stream_model_year_align_atm_c13 sim_year_range="1850-2000" >1700</stream_model_year_align_atm_c13>
201201

202202
<!-- Irrigation default (Note, the use-cases also set this) -->
203-
<irrigate >.false.</irrigate>
204-
<irrigate use_cndv=".false." sim_year_range="1850-2100">.true.</irrigate>
205-
<irrigate phys="clm6_0" use_cndv=".false." sim_year_range="1850-2000">.true.</irrigate>
206-
<irrigate phys="clm4_5" use_cndv=".false." sim_year_range="1850-2100">.false.</irrigate>
203+
<irrigate >.false.</irrigate>
204+
<irrigate use_fates=".true." >.false.</irrigate>
205+
<irrigate use_cndv=".false." sim_year_range="1850-2100" use_fates=".false." >.true.</irrigate>
206+
<irrigate phys="clm6_0" use_cndv=".false." sim_year_range="1850-2000" use_fates=".false." >.true.</irrigate>
207+
<irrigate phys="clm4_5" use_cndv=".false." sim_year_range="1850-2100" >.false.</irrigate>
207208

208209
<!-- Saturation excess runoff for crops -->
209210
<crop_fsat_equals_zero>.false.</crop_fsat_equals_zero>

cime_config/testdefs/ExpectedTestFails.xml

Lines changed: 14 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -191,6 +191,20 @@
191191
<issue>ESCOMP/mizuRoute#613</issue>
192192
</phase>
193193
</test>
194+
195+
<test name="SMS_D_Ld5.5x5_amazon_rHDMA.I2000Clm60SpMizGs.derecho_gnu.mizuroute-default">
196+
<phase name="NLCOMP">
197+
<status>FAIL</status>
198+
<issue>ESMCI/cime#4966</issue>
199+
</phase>
200+
</test>
201+
202+
<test name="SMS_D_Ld5.5x5_amazon_rHDMA.I2000Clm60SpMizGs.derecho_intel.mizuroute-default">
203+
<phase name="NLCOMP">
204+
<status>FAIL</status>
205+
<issue>ESMCI/cime#4966</issue>
206+
</phase>
207+
</test>
194208

195209
<test name="SMS_D_Ld5.5x5_amazon_rHDMA.I2000Clm60SpMizGs.izumi_nag.mizuroute-default">
196210
<phase name="MODEL_BUILD">
@@ -261,13 +275,6 @@
261275
</phase>
262276
</test>
263277

264-
<test name="ERS_D_Ld30.f45_f45_mg37.I2000Clm50FatesCruRsGs.derecho_intel.clm-FatesColdLUH2">
265-
<phase name="RUN">
266-
<status>FAIL</status>
267-
<issue>#3789</issue>
268-
</phase>
269-
</test>
270-
271278
<test name="ERS_D_Ld30.f45_f45_mg37.I2000Clm50FatesCruRsGs.izumi_nag.clm-FatesColdLUH2">
272279
<phase name="RUN">
273280
<status>FAIL</status>
@@ -282,20 +289,6 @@
282289
</phase>
283290
</test>
284291

285-
<test name="ERS_D_Ld30.f45_f45_mg37.I2000Clm50FatesCruRsGs.derecho_intel.clm-FatesColdLUH2HarvestArea">
286-
<phase name="RUN">
287-
<status>FAIL</status>
288-
<issue>#3789</issue>
289-
</phase>
290-
</test>
291-
292-
<test name="ERS_D_Ld30.f45_f45_mg37.I2000Clm50FatesCruRsGs.derecho_intel.clm-FatesColdLUH2HarvestMass">
293-
<phase name="RUN">
294-
<status>FAIL</status>
295-
<issue>#3789</issue>
296-
</phase>
297-
</test>
298-
299292
<!-- Other submodule test list failures (MOSART, RTM, etc. -->
300293

301294
<test name="SMS_Lh3.f10_f10_mg37.I2000Clm60Sp.derecho_intel.mosart-clmAccelSpinupIgnoreWarn">

components/cmeps

Submodule cmeps updated 40 files

doc/ChangeLog

Lines changed: 106 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,110 @@
11
===============================================================
2+
Tag name: ctsm5.4.034
3+
Originator(s): afoster (Adrianna Foster,UCAR/TSS,303-497-1728)
4+
Date: Wed Apr 22 11:02:13 AM MDT 2026
5+
One-line Summary: bug fix to the FATES land use driver input code
6+
7+
Purpose and description of changes
8+
----------------------------------
9+
10+
This PR includes a cherry-picked fix from NorESMhub/CTSM#209 to address swap in the
11+
order of rangeland and pasture in the reading of the landuse drivers
12+
13+
14+
Bugs fixed
15+
----------
16+
17+
List of CTSM issues fixed (include CTSM Issue # and description):
18+
Resolves FATES https://github.com/NGEET/fates/issues/1551
19+
20+
21+
Testing summary:
22+
----------------
23+
24+
regular tests (aux_clm: https://github.com/ESCOMP/CTSM/wiki/System-Testing-Guide#pre-merge-system-testing):
25+
26+
derecho ----- OK
27+
izumi ------- OK
28+
29+
fates tests: (give name of baseline if different from CTSM tagname, normally fates baselines are fates-<FATES TAG>-<CTSM TAG>)
30+
derecho ----- OK
31+
izumi ------- OK
32+
33+
Added 2 new expected fails for mizuroute NLCOMP DIFFs.
34+
35+
36+
Answer changes
37+
--------------
38+
39+
Changes answers relative to baseline:
40+
41+
Landuse tests are not B4B, otherwise B4B
42+
43+
===============================================================
44+
===============================================================
45+
Tag name: ctsm5.4.033
46+
Originator(s): glemieux (Gregory Lemieux, LBNL, glemieux@lbl.gov)
47+
Date: Fri Apr 17 10:39:02 AM MDT 2026
48+
One-line Summary: Update fates tag with missing land use data check fix
49+
50+
Purpose and description of changes
51+
----------------------------------
52+
53+
This update brings in fates-side changes which allow for checking of
54+
fates land use data that uses either NaN or non-nan fill values. This
55+
also updates the fates land use data tool tag which captures the
56+
associated netcdf write encoding changes to ensure that the land use
57+
data will use non-nan values consistent with the latest default datasets.
58+
59+
60+
Bugs fixed
61+
----------
62+
List of CTSM issues fixed (include CTSM Issue # and description) [one per line]:
63+
Resolves #3789
64+
65+
Notes of particular relevance for developers:
66+
---------------------------------------------
67+
NOTE: Be sure to review the steps in README.CHECKLIST.master_tags as well as the coding style in the Developers Guide
68+
69+
Changes to tests or testing:
70+
- Removes the FatesColdLUH testmods from the expected failures list
71+
72+
Contributors:
73+
74+
Testing summary:
75+
----------------
76+
77+
regular tests (aux_clm: https://github.com/ESCOMP/CTSM/wiki/System-Testing-Guide#pre-merge-system-testing):
78+
79+
derecho ----- OK
80+
izumi ------- OK
81+
82+
fates tests: (give name of baseline if different from CTSM tagname, normally fates baselines are fates-<FATES TAG>-<CTSM TAG>)
83+
derecho ----- OK
84+
izumi ------- OK
85+
86+
87+
Answer changes
88+
--------------
89+
90+
Changes answers relative to baseline: B4B, except for FATES
91+
92+
Other details
93+
-------------
94+
95+
List any git submodules updated (cime, rtm, mosart, cism, fates, etc.):
96+
fates: sci.1.92.0_api.44.0.0 --> sci.1.92.1_api.44.1.0
97+
fates/tools/landusedata: v0.1.1 --> v0.4.1
98+
99+
Pull Requests that document the changes (include PR ids):
100+
(https://github.com/ESCOMP/ctsm/pull)
101+
102+
https://github.com/ESCOMP/CTSM/pull/3926
103+
https://github.com/NGEET/fates/pull/1555
104+
https://github.com/NGEET/tools-fates-landusedata/pull/41
105+
106+
===============================================================
107+
===============================================================
2108
Tag name: ctsm5.4.032
3109
Originator(s): samrabin (Sam Rabin, UCAR/TSS)
4110
Date: Fri Apr 10 11:19:34 MDT 2026

0 commit comments

Comments
 (0)