Skip to content

Commit 9935617

Browse files
committed
Merge branch 'release/8.4.0' into main
2 parents 8fad5b5 + ed4d9d6 commit 9935617

File tree

352 files changed

+31229
-19841
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

352 files changed

+31229
-19841
lines changed

.circleci/config.yml

+9-10
Original file line numberDiff line numberDiff line change
@@ -247,7 +247,7 @@ jobs:
247247
command: git clone --branch $CIRCLE_BRANCH https://github.com/esmf-org/esmf.git
248248
- run:
249249
name: Docker Run API Changes
250-
command: docker build -t "esmf/api-change:${CIRCLE_BRANCH_NEW}" --file "ESCOMP-Containers/ESMF/API_changes/Dockerfile" --build-arg DOCKER_NAMESPACE="esmf" --build-arg TAG1="ESMF_8_2_0" --build-arg TAG2="${CIRCLE_BRANCH}" --no-cache .
250+
command: docker build -t "esmf/api-change:${CIRCLE_BRANCH_NEW}" --file "ESCOMP-Containers/ESMF/API_changes/Dockerfile" --build-arg DOCKER_NAMESPACE="esmf" --build-arg TAG1="v8.3.0" --build-arg TAG2="${CIRCLE_BRANCH}" --no-cache .
251251
- run:
252252
name: Extract API Changes
253253
command: bash esmf/.circleci/sh/extract-artifacts.sh "/tmp/artifacts" "/artifacts/api_change-artifacts.zip" "esmf/api-change:${CIRCLE_BRANCH_NEW}"
@@ -490,12 +490,11 @@ workflows:
490490

491491
docs-commit:
492492
jobs:
493-
# - should-build-docs:
494-
# type: approval
495-
# - build-esmf-docs:
496-
# requires:
497-
# - should-build-docs
498-
- build-esmf-docs
493+
- should-build-docs:
494+
type: approval
495+
- build-esmf-docs:
496+
requires:
497+
- should-build-docs
499498
- publish-esmf-docs:
500499
requires:
501500
- build-esmf-docs
@@ -504,9 +503,9 @@ workflows:
504503
# only:
505504
# - develop
506505
# - /^release/.*$/
507-
- build-esmpy-docs
508-
# requires:
509-
# - should-build-docs
506+
- build-esmpy-docs:
507+
requires:
508+
- should-build-docs
510509
- publish-esmpy-docs:
511510
requires:
512511
- build-esmpy-docs

.gitattributes

+2
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
11
src/doc export-ignore
22
.gitattributes export-ignore
33
.gitignore export-ignore
4+
5+
*.C linguist-language=C++
+5
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
name: Framework Issue
3+
about: Issues for tracking specific changes to the ESMF codebase. These are typically created by ESMF Core Team members.
4+
5+
---

.github/ISSUE_TEMPLATE/config.yml

+5
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
blank_issues_enabled: false
2+
contact_links:
3+
- name: ESMF Support
4+
url: http://earthsystemmodeling.org/support/
5+
about: To get help with using ESMF, please send an email to esmf_support@ucar.edu.

.github/workflows/api-change.yml

+47
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
name: Generate API changes
2+
3+
on:
4+
workflow_dispatch:
5+
inputs:
6+
tag1:
7+
description: 'First ESMF Tag'
8+
required: true
9+
default: 'v8.3.0'
10+
tag2:
11+
description: 'Second ESMF Tag'
12+
required: true
13+
default: 'develop'
14+
15+
jobs:
16+
17+
build:
18+
19+
runs-on: ubuntu-latest
20+
21+
steps:
22+
23+
- name: Checkout Dockerfiles
24+
uses: actions/checkout@v3
25+
with:
26+
repository: esmf-org/esmf-containers
27+
path: esmf-containers
28+
ref: main
29+
30+
- name: Build Docker image
31+
run: |
32+
cd ${{ github.workspace }}/esmf-containers/api-change
33+
docker build . --tag esmf/api-change --build-arg TAG1="${{ inputs.tag1 }}" --build-arg TAG2="${{ inputs.tag2 }}"
34+
35+
- name: Copy artifacts
36+
run: |
37+
mkdir -p ${{ github.workspace }}/artifacts
38+
CID=$(docker run -dit --name runner esmf/api-change)
39+
docker cp ${CID}:/artifacts/api_change-artifacts.zip ${{ github.workspace }}/artifacts
40+
docker stop ${CID}
41+
docker rm ${CID}
42+
43+
- name: Upload artifacts
44+
uses: actions/upload-artifact@v3
45+
with:
46+
name: api-change
47+
path: ${{ github.workspace }}/artifacts

.github/workflows/build-esmf-docs.yml

+75
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
1+
name: Build ESMF Docs
2+
3+
on:
4+
workflow_dispatch:
5+
push:
6+
7+
concurrency:
8+
group: build-esmf-docs-${{ github.ref_name }}
9+
cancel-in-progress: true
10+
11+
jobs:
12+
13+
build:
14+
15+
runs-on: ubuntu-latest
16+
17+
steps:
18+
19+
- name: Checkout Dockerfiles
20+
uses: actions/checkout@v3
21+
with:
22+
repository: esmf-org/esmf-containers
23+
path: esmf-containers
24+
ref: main
25+
26+
- name: Build Docker image
27+
run: |
28+
cd ${{ github.workspace }}/esmf-containers/build-esmf-docs/esmf
29+
docker build . --tag esmf/build-esmf-docs --build-arg ESMF_BRANCH="${{ github.ref_name }}" --no-cache
30+
31+
- name: Extract artifacts
32+
run: |
33+
mkdir -p ${{ github.workspace }}/artifacts
34+
CID=$(docker run -dit --name runner esmf/build-esmf-docs)
35+
docker cp ${CID}:/artifacts/doc-artifacts.zip ${{ github.workspace }}/artifacts
36+
docker stop ${CID}
37+
docker rm ${CID}
38+
39+
- name: Upload artifacts
40+
uses: actions/upload-artifact@v3
41+
with:
42+
name: esmf-docs
43+
path: ${{ github.workspace }}/artifacts
44+
45+
- name: Checkout esmf-org.github.io
46+
uses: actions/checkout@v3
47+
with:
48+
repository: esmf-org/esmf-org.github.io
49+
path: esmf-org.github.io
50+
token: ${{ secrets.ESMF_WEB_TOKEN }}
51+
52+
- name: Copy docs
53+
run: |
54+
cd ${{ github.workspace }}/esmf-org.github.io
55+
mkdir -p docs/nightly/${{ github.ref_name }}/dev_guide
56+
cd ${{ github.workspace }}/artifacts
57+
unzip doc-artifacts.zip
58+
cd ${{ github.workspace }}/artifacts/artifacts/doc-esmf
59+
cp -rf ./* ${{ github.workspace }}/esmf-org.github.io/docs/nightly/${{ github.ref_name }}/
60+
cd ${{ github.workspace }}/artifacts/artifacts/doc-nuopc
61+
cp -rf NUOPC_refdoc ${{ github.workspace }}/esmf-org.github.io/docs/nightly/${{ github.ref_name }}/
62+
cp -rf NUOPC_refdoc.pdf ${{ github.workspace }}/esmf-org.github.io/docs/nightly/${{ github.ref_name }}/
63+
cp -rf NUOPC_howtodoc ${{ github.workspace }}/esmf-org.github.io/docs/nightly/${{ github.ref_name }}/
64+
cp -rf NUOPC_howtodoc.pdf ${{ github.workspace }}/esmf-org.github.io/docs/nightly/${{ github.ref_name }}/
65+
cd ${{ github.workspace }}/artifacts/artifacts/doc-dev_guide
66+
cp -rf ./dev_guide/dev_guide/* ${{ github.workspace }}/esmf-org.github.io/docs/nightly/${{ github.ref_name }}/dev_guide/
67+
68+
- name: Commit and publish docs
69+
uses: actions-js/push@master
70+
with:
71+
repository: esmf-org/esmf-org.github.io
72+
directory: ${{ github.workspace }}/esmf-org.github.io
73+
branch: master
74+
github_token: ${{ secrets.ESMF_WEB_TOKEN }}
75+
message: 'Publish ESMF Docs'
+69
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
name: Build ESMPy Docs
2+
3+
on:
4+
workflow_dispatch:
5+
push:
6+
7+
concurrency:
8+
group: build-esmpy-docs-${{ github.ref_name }}
9+
cancel-in-progress: true
10+
11+
jobs:
12+
13+
build:
14+
15+
runs-on: ubuntu-latest
16+
17+
steps:
18+
19+
- name: Checkout Dockerfiles
20+
uses: actions/checkout@v3
21+
with:
22+
repository: esmf-org/esmf-containers
23+
path: esmf-containers
24+
ref: main
25+
26+
- name: Build Docker image
27+
run: |
28+
cd ${{ github.workspace }}/esmf-containers/build-esmf-docs/esmpy
29+
docker build . --tag esmf/build-esmpy-docs --build-arg ESMF_BRANCH="${{ github.ref_name }}" --no-cache
30+
31+
- name: Copy artifacts
32+
run: |
33+
mkdir -p ${{ github.workspace }}/artifacts
34+
CID=$(docker run -dit --name runner esmf/build-esmpy-docs)
35+
docker cp ${CID}:/artifacts/doc-esmpy.zip ${{ github.workspace }}/artifacts
36+
docker stop ${CID}
37+
docker rm ${CID}
38+
39+
- name: Upload artifacts
40+
uses: actions/upload-artifact@v3
41+
with:
42+
name: esmpy-docs
43+
path: ${{ github.workspace }}/artifacts
44+
45+
- name: Checkout esmpy_doc
46+
uses: actions/checkout@v3
47+
with:
48+
repository: esmf-org/esmpy_doc
49+
path: esmpy_doc
50+
token: ${{ secrets.ESMF_WEB_TOKEN }}
51+
52+
- name: Copy docs
53+
run: |
54+
cd ${{ github.workspace }}/esmpy_doc
55+
mkdir -p docs/nightly/${{ github.ref_name }}
56+
cd ${{ github.workspace }}/artifacts
57+
unzip doc-esmpy.zip
58+
cd ${{ github.workspace }}/artifacts/doc-esmpy/esmpy_doc
59+
cp -rf html ${{ github.workspace }}/esmpy_doc/docs/nightly/${{ github.ref_name }}/
60+
cp -rf latex/ESMPy.pdf ${{ github.workspace }}/esmpy_doc/docs/nightly/${{ github.ref_name }}/
61+
62+
- name: Commit and publish docs
63+
uses: actions-js/push@master
64+
with:
65+
repository: esmf-org/esmpy_doc
66+
directory: ${{ github.workspace }}/esmpy_doc
67+
branch: master
68+
github_token: ${{ secrets.ESMF_WEB_TOKEN }}
69+
message: 'Publish ESMPy Docs'

.github/workflows/test-coverage.yml

+43
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
name: Test Coverage
2+
3+
on:
4+
workflow_dispatch:
5+
inputs:
6+
esmf_branch:
7+
description: 'ESMF Branch'
8+
required: true
9+
default: 'develop'
10+
11+
jobs:
12+
13+
build:
14+
15+
runs-on: ubuntu-latest
16+
17+
steps:
18+
19+
- name: Checkout Dockerfiles
20+
uses: actions/checkout@v3
21+
with:
22+
repository: esmf-org/esmf-containers
23+
path: esmf-containers
24+
ref: main
25+
26+
- name: Build Docker image
27+
run: |
28+
cd ${{ github.workspace }}/esmf-containers/test-coverage
29+
docker build . --tag esmf/test-coverage --build-arg ESMF_BRANCH="${{ inputs.esmf_branch }}"
30+
31+
- name: Copy artifacts
32+
run: |
33+
mkdir -p ${{ github.workspace }}/artifacts
34+
CID=$(docker run -dit --name runner esmf/test-coverage)
35+
docker cp ${CID}:/artifacts/test_coverage-artifacts.zip ${{ github.workspace }}/artifacts
36+
docker stop ${CID}
37+
docker rm ${CID}
38+
39+
- name: Upload artifacts
40+
uses: actions/upload-artifact@v3
41+
with:
42+
name: test-coverage
43+
path: ${{ github.workspace }}/artifacts

.gitignore

+2
Original file line numberDiff line numberDiff line change
@@ -117,6 +117,8 @@ src/system_tests/ESMF_ArrayRedistMPMD/user_model2.mod
117117
src/system_tests/ESMF_ArrayRedistMPMD/user_model2.o
118118
src/system_tests/ESMF_ArrayRedistSharedObj/user_coupler.so
119119
src/system_tests/ESMF_ArrayRedistSharedObj/user_model1.so
120+
src/system_tests/ESMF_ArrayRedistSharedObj/user_coupler.dylib
121+
src/system_tests/ESMF_ArrayRedistSharedObj/user_model1.dylib
120122

121123
src/Infrastructure/Trace/preload/preload.o
122124
src/Infrastructure/Trace/preload/preload_io.o

README.md

+7-4
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
1-
[![ESMF](https://circleci.com/gh/esmf-org/esmf.svg?style=svg)](http://www.earthsystemmodeling.org/docs/nightly/develop/ESMF_refdoc/)
1+
[![ESMF Doc Build](https://github.com/esmf-org/esmf/actions/workflows/build-esmf-docs.yml/badge.svg)](https://github.com/esmf-org/esmf/actions/workflows/build-esmf-docs.yml)
2+
[![ESMPy Doc Build](https://github.com/esmf-org/esmf/actions/workflows/build-esmpy-docs.yml/badge.svg)](https://github.com/esmf-org/esmf/actions/workflows/build-esmpy-docs.yml)
23

3-
# Earth System Modeling Framework (ESMF)
4+
# Earth System Modeling Framework (ESMF)
45

56
>Copyright (c) 2002-2022 University Corporation for Atmospheric Research, Massachusetts Institute of Technology, Geophysical Fluid Dynamics Laboratory, University of Michigan, National Centers for Environmental Prediction, Los Alamos National Laboratory, Argonne National Laboratory, NASA Goddard Space Flight Center. All rights reserved.
67
@@ -32,8 +33,10 @@ conda create -c conda-forge -n <env> esmf esmpy
3233
## Add-On Packages
3334

3435
Several add-on packages are included with ESMF under [`./src/addon`](https://github.com/esmf-org/esmf/tree/master/src/addon):
35-
* [ESMPy](src/addon/ESMPy/README.md) - Python interface to ESMF.
36-
* [NUOPC](src/addon/NUOPC/README) - Interoperability layer developed under the National Unified Operational Prediction Capability (NUOPC) program.
36+
* [ESMPy](src/addon/esmpy) - Python interface to ESMF.
37+
* [ESMX](src/addon/ESMX) - A layer providing the Earth System Model eXecutable.
38+
The ESMX layer is built on top of ESMF and NUOPC.
39+
* [NUOPC](src/addon/NUOPC) - Interoperability layer developed under the National Unified Operational Prediction Capability (NUOPC) program.
3740

3841
See each addon package for a specific README file.
3942

build/common.mk

+7
Original file line numberDiff line numberDiff line change
@@ -356,6 +356,10 @@ ifeq ($(ESMF_MACHINE),x86_64)
356356
# except x86_64
357357
export ESMF_ABI = 64
358358
endif
359+
ifeq ($(ESMF_MACHINE),arm64)
360+
# and arm64
361+
export ESMF_ABI = 64
362+
endif
359363
endif
360364

361365
ifeq ($(ESMF_OS),Cygwin)
@@ -633,6 +637,9 @@ ESMF_EXDIR = $(ESMF_BUILD)/examples/examples$(ESMF_BOPT)/$(ESMF_OS).$(ESMF_
633637
# apps executable directory
634638
ESMF_APPSDIR = $(ESMF_BUILD)/apps/apps$(ESMF_BOPT)/$(ESMF_OS).$(ESMF_COMPILER).$(ESMF_ABI).$(ESMF_COMM).$(ESMF_SITE)
635639

640+
# unified nuopc executable directory
641+
ESMF_ESMXDIR = $(ESMF_BUILD)/src/addon/ESMX
642+
636643
# include file directory
637644
ESMF_INCDIR = $(ESMF_BUILD)/src/include
638645

0 commit comments

Comments
 (0)