Skip to content

Commit 1803407

Browse files
authored
Merge pull request #304 from xylar/omega/doc/document-omega-pr-suite
Better document testing requirements for Omega PRs This merge adds a "Code Testing" page to the documentation that describes running the omega_pr test suite for each Omega PR. It also updates the PR checklist to better describe testing. The updated version provides better links to the documentation and a more thorough list of testing requirements. It includes many fixes to typos in the Quick Start.
2 parents 1ba2778 + 956ab94 commit 1803407

File tree

4 files changed

+379
-23
lines changed

4 files changed

+379
-23
lines changed

.github/pull_request_template.md

Lines changed: 18 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -8,19 +8,27 @@ Below are a few things we ask you or your reviewers to kindly check.
88
-->
99
Checklist
1010
* [ ] Documentation:
11-
* [ ] Design document has been generated and added to the docs
12-
* [ ] User's Guide has been updated
13-
* [ ] Developer's Guide has been updated
14-
* [ ] Documentation has been [built locally](https://e3sm-project.github.io/Omega/omega/develop/devGuide/BuildDocs.html) and changes look as expected
11+
* [ ] Design document has been generated and [added to the docs](https://github.com/E3SM-Project/Omega/tree/develop/components/omega/doc/design)
12+
* [ ] [User's Guide](https://github.com/E3SM-Project/Omega/tree/develop/components/omega/doc/userGuide) has been updated
13+
* [ ] [Developer's Guide](https://github.com/E3SM-Project/Omega/tree/develop/components/omega/doc/devGuide) has been updated
14+
* [ ] Documentation has been [built locally](https://docs.e3sm.org/Omega/Omega/devGuide/BuildDocs.html) and changes look as expected
15+
* [ ] Linting
16+
* [ ] [Pre-commit](https://docs.e3sm.org/Omega/Omega/devGuide/Linting.html) run locally
1517
* [ ] Building
1618
* [ ] CMake build does not produce any new warnings from changes in this PR
1719
* [ ] Testing
18-
* [ ] A comment in the PR documents testing used to verify the changes including any tests that are added/modified/impacted.
19-
* [ ] CTest unit tests for new features have been added per the approved design.
20-
* [ ] Polaris tests for new features have been added per the approved design (and included in a test suite)
21-
* [ ] Unit tests have passed. Please provide a relevant CDash build entry for verification.
22-
* [ ] Polaris test suite has passed
23-
* [ ] Performance related PRs: Please include a relevant PACE experiment link documenting performance before and after.
20+
* [ ] Add a comment to the PR titled `Testing` with the following:
21+
* [ ] Which machines [CTest unit tests](https://docs.e3sm.org/Omega/Omega/devGuide/QuickStart.html#running-ctests)
22+
have been run on and indicate that are all passing.
23+
* [ ] The [Polaris omega_pr test suite](https://docs.e3sm.org/Omega/Omega/devGuide/Testing.html)
24+
has passed, using the Polaris `e3sm_submodules/Omega` baseline
25+
* [ ] Document machine(s), compiler(s), and the build path(s) used for `-p` for both the baseline (Polaris `e3sm_submodules/Omega`) and the PR build
26+
* [ ] Indicate "All tests passed" or document failing tests
27+
* [ ] Document testing used to verify the changes including any tests that are added/modified/impacted.
28+
* [ ] Performance related PRs: Please include a relevant PACE experiment link documenting performance before and after.
29+
* [ ] New tests:
30+
* [ ] CTest unit tests for new features have been added per the approved design.
31+
* [ ] Polaris tests for new features have been added per the approved design (and included in a test suite)
2432
* [ ] Stealth Features
2533
* [ ] If any stealth features are included in the PR, please confirm that they have been documented.
2634

components/omega/doc/devGuide/QuickStart.md

Lines changed: 19 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -12,10 +12,10 @@ branches. To do this, go to the page for the
1212
click on the `fork` button near the upper right corner. Set "owner" to your
1313
GitHub username (this should be the default) and click "Create fork".
1414

15-
There is no need to have a separate for for Omega, since the Omega repository
16-
is also a fork of E3SM. Your E3SM fork will server for both E3SM and Omega
15+
There is no need to have a separate fork for Omega, since the Omega repository
16+
is also a fork of E3SM. Your E3SM fork will serve for both E3SM and Omega
1717
development. In fact, GitHub will not let you make an Omega fork if you
18-
already have an E3SM fork (or visa versa).
18+
already have an E3SM fork (or vice versa).
1919

2020
### Check out the code
2121

@@ -52,7 +52,7 @@ If you do not have conda set up in your own space yet, follow
5252

5353

5454
Activate the `base` conda environment. Go to the base of the Omega branch you
55-
plan to develop and create conda environment for
55+
plan to develop and create a conda environment for
5656
linting your code and building the documentation:
5757
```sh
5858
cd components/omega/
@@ -74,13 +74,19 @@ that `pre-commit` and the associated linting utilities are available and that
7474
they check your code as it is committed (rather than requiring fix-up commits
7575
later on).
7676

77+
(omega-dev-quick-start-build-test)=
78+
7779
## Building and testing Omega
7880

81+
(omega-dev-quick-start-ctest-util)=
82+
7983
### Polaris CTest Utility
8084

8185
If you are using Polaris, you may wish to use its
8286
[Omega CTest utility](https://github.com/E3SM-Project/polaris/tree/main/utils/omega/ctest)
83-
to buid and test Omega. The utility automates many of the steps below.
87+
to build and test Omega. The utility automates many of the steps below.
88+
89+
(omega-dev-quick-start-build)=
8490

8591
### Building Omega
8692

@@ -96,7 +102,7 @@ git submodule update --init --recursive \
96102
cime
97103
```
98104

99-
Since some systems require tests to be run on in a scratch space, it is a good
105+
Since some systems require tests to be run in a scratch space, it is a good
100106
idea to build the code somewhere in your scratch space. We will simply refer
101107
to the build directory as `$BUILD_DIR` and leave it up to you to decide where
102108
it is best to put it. If you have previously built in `$BUILD_DIR`, you
@@ -109,8 +115,8 @@ cd $BUILD_DIR
109115

110116
Set `$PARMETIS_ROOT` to the appropriate location for Metis and Parmetis
111117
libraries built for your machine and compiler (see
112-
{ref}`omega-dev-parmetis-libs` below for some shared locations on some
113-
supported machines):
118+
{ref}`omega-dev-parmetis-libs` below for shared locations on supported
119+
machines):
114120
```sh
115121
export PARMETIS_ROOT=<parmetis_root>
116122
```
@@ -204,8 +210,8 @@ Total Test time (real) = 8.91 sec
204210

205211
If Omega CTests are failing or simulations are crashing, setting
206212
`OMEGA_BUILD_TYPE` to `Debug` can be helpful for debugging purposes. If you
207-
need to identify which test has failed, it may be useful to examine the CMake
208-
ctest log file located at `$BUILD_DIR/Testing/Temporary/LastTest.log`.
213+
need to identify which test has failed, it may be useful to examine the CTest
214+
log file located at `$BUILD_DIR/Testing/Temporary/LastTest.log`.
209215

210216
(omega-dev-parmetis-libs)=
211217

@@ -264,16 +270,16 @@ used to but the hope is that it leads to a coherent code style in Omega.
264270
You may wish to consider using an integrated development environment (IDE) to
265271
develop your code. A convenient option for developing on HPC is
266272
[Visual Studio Code (VS Code)](https://code.visualstudio.com/). It has plugins
267-
for [c++](https://marketplace.visualstudio.com/items?itemName=ms-vscode.cpptools),
273+
for [C++](https://marketplace.visualstudio.com/items?itemName=ms-vscode.cpptools),
268274
[CMake](https://marketplace.visualstudio.com/items?itemName=ms-vscode.cmake-tools),
269275
[Python](https://marketplace.visualstudio.com/items?itemName=ms-python.python),
270276
and so on. If configured correctly, it should help to enforce the
271277
[code formatting style](https://code.visualstudio.com/docs/cpp/cpp-ide#_code-formatting)
272278
by recognizing Omega's `.clang-format` file.
273279

274-
A convenient feature is the ability to connect to edit code directly on HPC
280+
A convenient feature is the ability to connect and edit code directly on HPC
275281
systems from your laptop or desktop
276-
[using a n SSH connection](https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-ssh).
282+
[using an SSH connection](https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-ssh).
277283

278284
VS Code also provides a convenient way to preview the Markdown files used in
279285
the Omega documentation as you are writing them.

0 commit comments

Comments
 (0)