From 13538206a2c0ddd092987d1c6a9918b5f562daf8 Mon Sep 17 00:00:00 2001 From: alejandrobodas Date: Tue, 8 Oct 2019 15:05:50 +0100 Subject: [PATCH 1/9] Add link to users group --- README.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/README.md b/README.md index f383fd0..900da11 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,8 @@ Welcome to the COSP web pages. This repository hosts the COSP web pages, and it is independent from the sister repository that hosts the [code](https://github.com/CFMIP/COSPv2.0). +If you would like to be up to date with the latest news and contribute to discussions with other users, please join the [COSP + users Google group.](https://groups.google.com/forum/#!forum/cosp-user) + ## Information for COSP users The installation instructions are in the [README](https://github.com/CFMIP/COSPv2.0/blob/master/README.md) file of the code repository. From 580118e0f114c5080b5d3d3599815a63d4236452 Mon Sep 17 00:00:00 2001 From: alejandrobodas Date: Mon, 6 Jul 2020 09:45:39 +0100 Subject: [PATCH 2/9] Update working_practices.md --- COSP/working_practices.md | 28 +++++++++++++++++++++++----- 1 file changed, 23 insertions(+), 5 deletions(-) diff --git a/COSP/working_practices.md b/COSP/working_practices.md index 3a2da3a..7d8ada2 100644 --- a/COSP/working_practices.md +++ b/COSP/working_practices.md @@ -9,14 +9,29 @@ It is the developers responsibility to contact the PMC at the start of this proc In order to develop a change, you will need your own forked copy of the COSP repository. Once you have done that, you will create a new branch in which you will develop your new changes. ## Run regression tests -Sometimes, using a different compiler or running in a different architecture in which the reference files have been created can produce differences that will show in the regression tests. In order to catch these situations, pleaser run the regression tests before doing any development. If differences are reported, please document these in the issue, and update your reference files. +Sometimes, using a different compiler or running in a different architecture in which the reference files have been created can produce differences that will show in the regression tests. In order to catch these situations, pleaser run the regression tests locally before doing any development. If differences are reported, please document these in the issue, and update your reference files. ## Develop your change You should make regular commits to your branch to provide a history of your work that others can follow. This will help them to understand what you've done and why. ## Test your change COSP provides you with a battery of regression tests to check that your changes don’t break the code. Test your changes regularly, not only at the end of the development process. This will help identify problems early. -This section will be expanded with examples of the testing process. + +Currently, we have the follwing regression tests, which must be run from the `driver/run/` directory. They produce outputs that are saved in `driver/data/outputs/UKMO/`. + +**Table 1.** Regression tests. +Test # | Input namelist | Input file | Output file | KGO | Description +------------ | ------------ | ------------- | ------------- | ------------- | ------------- +1 | cosp2test cosp2_input_nl.txt | cosp2_input_um.nc | cosp2_output_um.nc | cosp2_output_um.gfortran.kgo.nc | Basic test (~150 gridpoints). +2 | cosp2test cosp2_input_nl.um_global.txt | cosp2_input.um_global.nc | cosp2_output.um_global.nc | cosp2_output.um_global.gfortran.kgo.nc | Low-res global model snapshot. + +The data files for Test 1 are small and live in the github repository, and therefore distributed with the the code. Other data files are stored in Google Drive and can be downloaded by running `download_test_data.sh` from within the `driver/` directory. The script `download_test_data.sh` checks the downloaded data files against md5 sums in `data/outputs/UKMO/`, to make sure that you are using the correct files. + +In `driver/`, the script `compare_to_kgo.py` can be used to test your ouputs against the references files. For instance, for the first test in the table above: + + `python compare_to_kgo.py data/outputs/UKMO/cosp2_output_um.gfortran.kgo.nc data/outputs/UKMO/cosp2_output_um.nc` + +The script accepts thresholds for absolute and relative tolerances, named atol and rtol respectively. By default the script will report all differences, i.e. --atol=0.0 --rtol=0.0. Any modification that reduces the performance and it is not protected by a logical switch (e.g. new simulator or diagnostic) will have to be strongly motivated. @@ -24,14 +39,17 @@ Any modification that reduces the performance and it is not protected by a logic Add meaningful comments to the source code, and modify the documentation if necessary. ## Code review -Once you are happy with the changes and documentation, and all the necessary tests have passed, you can initiate a _pull request_. If some of your changes do not pass the necessary tests, then go back and figure out why and fix the problem so that they pass the tests. - -If answers change, provide a detailed explanation why the code changes modify the results. This will trigger discussion with the PMC about your changes. +Once you are happy with the changes and documentation, and all the necessary tests have passed, you can initiate a _pull request_. This will trigger a battery of regression tests that are run in the github servers. These tests are the ones listed in Table 1, but run with a driver program built with different compilers. The outputs of these tests are recorded in the Actions sections of the gthub repository. If some of your changes do not pass the necessary tests, then go back and figure out why and fix the problem so that they pass the tests. The developer should assess the impact of the change and the need for a review and get agreement from the PMC. The review process is open to community members outside the PMC. If a review is considered necessary, the developer should find someone to do the review, not necessarily a PMC member. Typically, the reviewer will suggest improvements and modifications that will lead to iterations in the modified code. Once the reviewer is satisfied, they will approve the changes and the branch will be ready for merging. +**Do you changes change the results?** + +If answers change, provide a detailed explanation why the code changes modify the results. This will trigger discussion with the PMC about your changes. +This process is facilitated by the Continous Integration (CI) tests. When the comparison against the KGO fails, the script `plot_test_outputs.py` is run and plots for the new output file are produced and uploaded to the _Artifact_ created by the CI action. Currently, `plot_test_outputs.py` can only produce plots for 2D output files (like Test 2). If the new results are accepted, you will need to change the md5 sums of the relevant files, and a member of the PMC will upload the new files to Google Drive. + ## Merge to the master branch (trunk) Now that your changes have been reviewed, tested, and approved, a member of the PMC will merge your code into the master branch. From e5271571cf8e38c1d5a8ce7df8f3317141339943 Mon Sep 17 00:00:00 2001 From: alejandrobodas Date: Mon, 6 Jul 2020 09:46:35 +0100 Subject: [PATCH 3/9] Update working_practices.md --- COSP/working_practices.md | 1 + 1 file changed, 1 insertion(+) diff --git a/COSP/working_practices.md b/COSP/working_practices.md index 7d8ada2..fe0981f 100644 --- a/COSP/working_practices.md +++ b/COSP/working_practices.md @@ -20,6 +20,7 @@ COSP provides you with a battery of regression tests to check that your changes Currently, we have the follwing regression tests, which must be run from the `driver/run/` directory. They produce outputs that are saved in `driver/data/outputs/UKMO/`. **Table 1.** Regression tests. + Test # | Input namelist | Input file | Output file | KGO | Description ------------ | ------------ | ------------- | ------------- | ------------- | ------------- 1 | cosp2test cosp2_input_nl.txt | cosp2_input_um.nc | cosp2_output_um.nc | cosp2_output_um.gfortran.kgo.nc | Basic test (~150 gridpoints). From 212105755eb4ad25b33cdffa353f70ec9b8032da Mon Sep 17 00:00:00 2001 From: alejandrobodas Date: Mon, 6 Jul 2020 10:05:26 +0100 Subject: [PATCH 4/9] Update working_practices.md --- COSP/working_practices.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/COSP/working_practices.md b/COSP/working_practices.md index fe0981f..d6bfbd0 100644 --- a/COSP/working_practices.md +++ b/COSP/working_practices.md @@ -30,7 +30,7 @@ The data files for Test 1 are small and live in the github repository, and there In `driver/`, the script `compare_to_kgo.py` can be used to test your ouputs against the references files. For instance, for the first test in the table above: - `python compare_to_kgo.py data/outputs/UKMO/cosp2_output_um.gfortran.kgo.nc data/outputs/UKMO/cosp2_output_um.nc` +`python compare_to_kgo.py data/outputs/UKMO/cosp2_output_um.gfortran.kgo.nc data/outputs/UKMO/cosp2_output_um.nc` The script accepts thresholds for absolute and relative tolerances, named atol and rtol respectively. By default the script will report all differences, i.e. --atol=0.0 --rtol=0.0. From b5661e8bec1e7dbdabe68d34662fb472c9682c69 Mon Sep 17 00:00:00 2001 From: alejandrobodas Date: Mon, 6 Jul 2020 10:06:52 +0100 Subject: [PATCH 5/9] Update working_practices.md --- COSP/working_practices.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/COSP/working_practices.md b/COSP/working_practices.md index d6bfbd0..e150bcb 100644 --- a/COSP/working_practices.md +++ b/COSP/working_practices.md @@ -21,7 +21,7 @@ Currently, we have the follwing regression tests, which must be run from the `dr **Table 1.** Regression tests. -Test # | Input namelist | Input file | Output file | KGO | Description +Test # | Command | Input file | Output file | KGO | Description ------------ | ------------ | ------------- | ------------- | ------------- | ------------- 1 | cosp2test cosp2_input_nl.txt | cosp2_input_um.nc | cosp2_output_um.nc | cosp2_output_um.gfortran.kgo.nc | Basic test (~150 gridpoints). 2 | cosp2test cosp2_input_nl.um_global.txt | cosp2_input.um_global.nc | cosp2_output.um_global.nc | cosp2_output.um_global.gfortran.kgo.nc | Low-res global model snapshot. From 9dcfa0e2c16fd2524776e0f4f6a43531e327b11d Mon Sep 17 00:00:00 2001 From: alejandrobodas Date: Mon, 29 Mar 2021 20:57:40 +0100 Subject: [PATCH 6/9] Update working_practices.md --- COSP/working_practices.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/COSP/working_practices.md b/COSP/working_practices.md index e150bcb..fc9b854 100644 --- a/COSP/working_practices.md +++ b/COSP/working_practices.md @@ -23,10 +23,10 @@ Currently, we have the follwing regression tests, which must be run from the `dr Test # | Command | Input file | Output file | KGO | Description ------------ | ------------ | ------------- | ------------- | ------------- | ------------- -1 | cosp2test cosp2_input_nl.txt | cosp2_input_um.nc | cosp2_output_um.nc | cosp2_output_um.gfortran.kgo.nc | Basic test (~150 gridpoints). -2 | cosp2test cosp2_input_nl.um_global.txt | cosp2_input.um_global.nc | cosp2_output.um_global.nc | cosp2_output.um_global.gfortran.kgo.nc | Low-res global model snapshot. +1 | cosp2test cosp2_input_nl.txt | cosp2_input_um.nc | cosp2_output_um.nc | cosp2_output_um.gfortran.kgo.v001.nc | Basic test (~150 gridpoints). +2 | cosp2test cosp2_input_nl.um_global.txt | cosp2_input.um_global.nc | cosp2_output.um_global.nc | cosp2_output.um_global.gfortran.kgo.v001.nc | Low-res global model snapshot. -The data files for Test 1 are small and live in the github repository, and therefore distributed with the the code. Other data files are stored in Google Drive and can be downloaded by running `download_test_data.sh` from within the `driver/` directory. The script `download_test_data.sh` checks the downloaded data files against md5 sums in `data/outputs/UKMO/`, to make sure that you are using the correct files. +The input NetCDF file for Test 1 is small and lives in the github repository, and therefore it is distributed with the code. Other data files are stored in Google Drive and can be downloaded by running `download_test_data.sh` from within the `driver/` directory. The script `download_test_data.sh` checks the downloaded data files against md5 sums in `data/outputs/UKMO/`, to make sure that you are using the correct files. In `driver/`, the script `compare_to_kgo.py` can be used to test your ouputs against the references files. For instance, for the first test in the table above: @@ -46,7 +46,7 @@ The developer should assess the impact of the change and the need for a review a Typically, the reviewer will suggest improvements and modifications that will lead to iterations in the modified code. Once the reviewer is satisfied, they will approve the changes and the branch will be ready for merging. -**Do you changes change the results?** +**Do your changes change the results?** If answers change, provide a detailed explanation why the code changes modify the results. This will trigger discussion with the PMC about your changes. This process is facilitated by the Continous Integration (CI) tests. When the comparison against the KGO fails, the script `plot_test_outputs.py` is run and plots for the new output file are produced and uploaded to the _Artifact_ created by the CI action. Currently, `plot_test_outputs.py` can only produce plots for 2D output files (like Test 2). If the new results are accepted, you will need to change the md5 sums of the relevant files, and a member of the PMC will upload the new files to Google Drive. From 93f14b104a50cac45c33b68cb0bcd0685d497dac Mon Sep 17 00:00:00 2001 From: Dustin Swales Date: Thu, 17 Mar 2022 11:01:01 -0600 Subject: [PATCH 7/9] Updated issues on website. --- COSP/users_issues.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/COSP/users_issues.md b/COSP/users_issues.md index 261d7a7..3c3c0ac 100644 --- a/COSP/users_issues.md +++ b/COSP/users_issues.md @@ -1,4 +1,7 @@ List of users issues, with links to the issues discussion: - [Issue #3:](https://github.com/CFMIP/CFMIP.github.io/issues/3) better documentation of changes in stable versions. - +- [#63] (https://github.com/CFMIP/COSPv2.0/issues/63) +- [#59] (https://github.com/CFMIP/COSPv2.0/issues/59) +- [#50] (https://github.com/CFMIP/COSPv2.0/issues/50) +- [#34] (https://github.com/CFMIP/COSPv2.0/issues/34) If you want to open a new discussion item, please [open a new issue.](https://github.com/CFMIP/CFMIP.github.io/issues) From 12adbb3f76370edb4ffabaab6068bdd6a1fd7f38 Mon Sep 17 00:00:00 2001 From: Dustin Swales Date: Thu, 17 Mar 2022 11:06:03 -0600 Subject: [PATCH 8/9] Updated issues on website. --- COSP/users_issues.md | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/COSP/users_issues.md b/COSP/users_issues.md index 3c3c0ac..ed10d0e 100644 --- a/COSP/users_issues.md +++ b/COSP/users_issues.md @@ -1,7 +1,4 @@ List of users issues, with links to the issues discussion: - [Issue #3:](https://github.com/CFMIP/CFMIP.github.io/issues/3) better documentation of changes in stable versions. -- [#63] (https://github.com/CFMIP/COSPv2.0/issues/63) -- [#59] (https://github.com/CFMIP/COSPv2.0/issues/59) -- [#50] (https://github.com/CFMIP/COSPv2.0/issues/50) -- [#34] (https://github.com/CFMIP/COSPv2.0/issues/34) +- [COSP] (https://github.com/CFMIP/COSPv2.0/issues) If you want to open a new discussion item, please [open a new issue.](https://github.com/CFMIP/CFMIP.github.io/issues) From 3b80380ddeed6380e036bfd61c33cf142418afb4 Mon Sep 17 00:00:00 2001 From: Dustin Swales Date: Thu, 17 Mar 2022 11:07:07 -0600 Subject: [PATCH 9/9] Updated issues on website. --- COSP/users_issues.md | 1 + 1 file changed, 1 insertion(+) diff --git a/COSP/users_issues.md b/COSP/users_issues.md index ed10d0e..6b6851d 100644 --- a/COSP/users_issues.md +++ b/COSP/users_issues.md @@ -1,4 +1,5 @@ List of users issues, with links to the issues discussion: - [Issue #3:](https://github.com/CFMIP/CFMIP.github.io/issues/3) better documentation of changes in stable versions. - [COSP] (https://github.com/CFMIP/COSPv2.0/issues) + If you want to open a new discussion item, please [open a new issue.](https://github.com/CFMIP/CFMIP.github.io/issues)