Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[develop] Use uwtools instead of set_namelist #1054

Merged

Conversation

christinaholtNOAA
Copy link
Collaborator

@christinaholtNOAA christinaholtNOAA commented Mar 12, 2024

DESCRIPTION OF CHANGES:

Continues the integration of the uwtools package. In this PR, I've done the following:

  • Call the UW config tool instead of set_namelist using the uwtools CLI in bash scripts and API in Python scripts
  • Lint the ush/set_fv3nml*.py files
  • Update uwtools to the latest release version

Type of change

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • This change requires a documentation update

TESTS CONDUCTED:

  • hera.intel
  • orion.intel
  • hercules.intel
  • cheyenne.intel
  • cheyenne.gnu
  • derecho.intel
  • gaea.intel
  • gaeac5.intel
  • jet.intel
  • wcoss2.intel
  • NOAA Cloud (indicate which platform)
  • Jenkins
  • fundamental test suite
  • comprehensive tests (specify which if a subset was used)

The final test is still running (slowly) after updating to the latest version of uwtools. I don't expect trouble out of it give our changes between uwtools v2.0.1 and v2.1.0 were backwards compatible and this PR worked as expected on Hera with uwtools v.2.0.1.

DEPENDENCIES:

n/a

DOCUMENTATION:

I don't think so, but could have missed something.

ISSUE:

n/a

CHECKLIST

  • My code follows the style guidelines in the Contributor's Guide
  • I have performed a self-review of my own code using the Code Reviewer's Guide
  • I have commented my code, particularly in hard-to-understand areas
  • My changes need updates to the documentation. I have made corresponding changes to the documentation
  • My changes do not require updates to the documentation (explain).
  • My changes generate no new warnings
  • New and existing tests pass with my changes
  • Any dependent changes have been merged and published

@@ -83,7 +78,7 @@ FV3_HRRR:
<<: *RRFS_v1beta_phys
cdmbgwd: [3.5, 1.0]
do_mynnsfclay: True
do_sfcperts: !!python/none
do_sfcperts:
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The latest version of pyyaml did not need/want this tag.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Does this represent a potential back-compatibility issue for any yaml config files? If so it should probably be documented.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@gspetro-NOAA do you have a suggestion where this kind of information can/should go? Perhaps release notes would be sufficient, but in the absence of a release, do we have an ongoing list of changes since the release?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I also got a nice off-line suggestion to use null as the value here instead of leaving it blank. It will be more explicit and not make unfamiliar users feel like it might have been a mistake or oversight.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@christinaholtNOAA For what it's worth, issue #981 contains all of the PRs and their commit messages since the SRW v2.2.0 release.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@christinaholtNOAA There's also a "Known Issues" page for issues related to develop or general issues. Known issues related to a specific release can be added to the appropriate release page in the Known Issues section.

parm/fixed_files_mapping.yaml Show resolved Hide resolved
'lx': ${NEG_NX_OF_DOM_WITH_WIDE_HALO},
'ly': ${NEG_NY_OF_DOM_WITH_WIDE_HALO},
'pazi': ${PAZI},
}
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Several of these blocks show up, and this is to ensure that the resulting input file for the tool is proper YAML.

for k, v in values.copy().items():
if v is None:
del base_namelist[sect][k]
base_namelist.dump(FV3_NML_FP)
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The set_namelist tool handled all of the steps now included here with the help of the uwtools API.

@@ -1,32 +1,28 @@
#!/usr/bin/env python3
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This file was linted to PEP8 standards adopted by SRW. That includes its new lower case naming convention required of Python modules.

"-c", "--cdate",
dest="cdate",
required=True,
type=lambda d: dt.datetime.strptime(d, '%Y%m%d%H'),
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This line does what str_to_type handles, but with less ambiguity.

"FV3_NML_FP",
"PARMdir",
"RUN_ENVIR",
]
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Here, I'm limiting the namespace of global variables this script requires from all the ones in the general sections of the experiment config file.

fixed_cfg = load_config_file(os.path.join(PARMdir, "fixed_files_mapping.yaml"))
IMPORTS = ["SFC_CLIMO_FIELDS", "FV3_NML_VARNAME_TO_SFC_CLIMO_FIELD_MAPPING"]
import_vars(dictionary=flatten_dict(fixed_cfg), env_vars=IMPORTS)
fixed_cfg = get_yaml_config(os.path.join(PARMdir, "fixed_files_mapping.yaml"))["fixed_files"]
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Use uwtools to get the YAML config, and appropriate sub-section.

nml_var_name = tup[0]
sfc_climo_field_name = tup[1]
for mapping in fixed_cfg["FV3_NML_VARNAME_TO_SFC_CLIMO_FIELD_MAPPING"]:
nml_var_name, sfc_climo_field_name = re.search(regex_search, mapping).groups()
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Removing some magic numbers.

settings =

{settings_str}
"""
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It was already an f-string. Treat it as such.

Copy link
Collaborator

@mkavulich mkavulich left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Great to see these new tools being updated. I have a few comments/questions

@@ -83,7 +78,7 @@ FV3_HRRR:
<<: *RRFS_v1beta_phys
cdmbgwd: [3.5, 1.0]
do_mynnsfclay: True
do_sfcperts: !!python/none
do_sfcperts:
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Does this represent a potential back-compatibility issue for any yaml config files? If so it should probably be documented.

parm/fixed_files_mapping.yaml Show resolved Hide resolved
scripts/exregional_make_grid.sh Outdated Show resolved Hide resolved
scripts/exregional_make_ics.sh Outdated Show resolved Hide resolved
scripts/exregional_make_lbcs.sh Outdated Show resolved Hide resolved
scripts/exregional_run_met_pb2nc_obs.sh Outdated Show resolved Hide resolved

uw config realize \
-i ${tmpfile} \
) | uw config realize \

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just FYI, since a settings variable is defined (unlike in my previous example, which had no intermediate variable), I believe you can also just:

echo "$settings" | uw config realize ...

without the ( cat ... ) subshell command, e.g.

$ export VAR1=foo
$ export VAR2=bar
$ settings="
config:
  foo: $VAR1
  bar: $VAR2
"
$ echo "$settings" | uw config realize --input-format yaml --output-format nml
&config
    foo = 'foo'
    bar = 'bar'
/

Copy link
Collaborator

@mkavulich mkavulich left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for addressing those comments

Copy link
Collaborator

@MichaelLueken MichaelLueken left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@christinaholtNOAA -

These changes overall look good to me! Thank you for updating the version of uwtools and replacing set_namelists with the uw config realize option! I have successfully ran the fundamental tests on Hercules:

----------------------------------------------------------------------------------------------------
Experiment name                                                  | Status    | Core hours used 
----------------------------------------------------------------------------------------------------
grid_RRFS_CONUScompact_25km_ics_HRRR_lbcs_RAP_suite_RRFS_v1beta_2  COMPLETE              14.32
nco_grid_RRFS_CONUS_25km_ics_FV3GFS_lbcs_FV3GFS_timeoffset_suite_  COMPLETE              17.86
grid_RRFS_CONUS_25km_ics_FV3GFS_lbcs_FV3GFS_suite_GFS_v15p2_20240  COMPLETE               9.64
grid_RRFS_CONUS_25km_ics_FV3GFS_lbcs_FV3GFS_suite_GFS_v17_p8_plot  COMPLETE              20.06
grid_RRFS_CONUScompact_25km_ics_HRRR_lbcs_HRRR_suite_HRRR_2024031  COMPLETE              28.27
grid_SUBCONUS_Ind_3km_ics_HRRR_lbcs_RAP_suite_WoFS_v0_20240315095  COMPLETE              22.15
grid_RRFS_CONUS_25km_ics_NAM_lbcs_NAM_suite_GFS_v16_2024031509565  COMPLETE              34.74
----------------------------------------------------------------------------------------------------
Total                                                              COMPLETE             147.04

and ran all of the verification tests on Hera:

----------------------------------------------------------------------------------------------------
Experiment name                                                  | Status    | Core hours used
----------------------------------------------------------------------------------------------------
MET_ensemble_verification_only_vx_time_lag_20240315142246          COMPLETE               3.65
MET_ensemble_verification_only_vx_20240315142250                   COMPLETE               1.00
MET_ensemble_verification_winter_wx_20240315142252                 COMPLETE             111.73
MET_ensemble_verification_20240315142254                           COMPLETE              20.18
MET_verification_only_vx_20240315142257                            COMPLETE               0.23
MET_verification_winter_wx_20240315142258                          COMPLETE              12.20
MET_verification_20240315142300                                    COMPLETE              10.38
----------------------------------------------------------------------------------------------------
Total                                                              COMPLETE             159.37

An AQM test is also underway on Hera.

Is there a reason that the header for exregional_run_met_pb2nc_obs.sh was changed from /usr/bin/env bash to /bin/bash? The /usr/bin/env bash method should be more robust, so isn't clear why this modification was made (and why only for this one script, the rest of the scripts still use /usr/bin/env bash). Any clarification would be greatly appreciated.

scripts/exregional_run_met_pb2nc_obs.sh Outdated Show resolved Hide resolved
Copy link
Collaborator

@MichaelLueken MichaelLueken left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@christinaholtNOAA -

Thank you very much for putting back the /usr/bin/env bash in scripts/exregional_run_met_pb2nc_obs.sh!

The AQM test successfully passed:

----------------------------------------------------------------------------------------------------
Experiment name                                                  | Status    | Core hours used
----------------------------------------------------------------------------------------------------
aqm_grid_AQM_NA13km_suite_GFS_v16_20240315173059                   COMPLETE            2787.88
----------------------------------------------------------------------------------------------------
Total                                                              COMPLETE            2787.88

Merging in PR #1055 has caused a conflict in parm/FV3.input.yml. Please merge the latest HEAD in develop to your branch, then I will launch the automated Jenkins tests for this PR.

Thanks!

Copy link
Collaborator

@MichaelLueken MichaelLueken left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The conflict has been resolved, everything looks good and testing successfully passed. Approving PR now.

@MichaelLueken MichaelLueken added the run_we2e_coverage_tests Run the coverage set of SRW end-to-end tests label Mar 18, 2024
@MichaelLueken
Copy link
Collaborator

Manual testing of the WE2E coverage tests on Hera Intel have successfully completed:

----------------------------------------------------------------------------------------------------
Experiment name                                                  | Status    | Core hours used 
----------------------------------------------------------------------------------------------------
custom_ESGgrid_Peru_12km_20240318190205                            COMPLETE              18.31
get_from_HPSS_ics_FV3GFS_lbcs_FV3GFS_fmt_grib2_2019061200_2024031  COMPLETE               6.49
get_from_HPSS_ics_GDAS_lbcs_GDAS_fmt_netcdf_2022040400_ensemble_2  COMPLETE             762.25
get_from_HPSS_ics_HRRR_lbcs_RAP_20240318190209                     COMPLETE              14.46
grid_RRFS_CONUS_25km_ics_FV3GFS_lbcs_FV3GFS_suite_GFS_v15p2_20240  COMPLETE               6.24
grid_RRFS_CONUS_25km_ics_FV3GFS_lbcs_FV3GFS_suite_GFS_v16_plot_20  COMPLETE              13.14
grid_RRFS_CONUS_25km_ics_FV3GFS_lbcs_RAP_suite_RAP_20240318190213  COMPLETE              10.44
grid_RRFS_CONUS_25km_ics_GSMGFS_lbcs_GSMGFS_suite_GFS_v15p2_20240  COMPLETE               6.48
grid_RRFS_CONUS_3km_ics_FV3GFS_lbcs_FV3GFS_suite_GFS_v15p2_202403  COMPLETE             232.17
grid_RRFS_CONUS_3km_ics_FV3GFS_lbcs_FV3GFS_suite_GFS_v16_20240318  COMPLETE             307.73
grid_RRFS_CONUScompact_3km_ics_HRRR_lbcs_RAP_suite_HRRR_202403181  COMPLETE             334.05
pregen_grid_orog_sfc_climo_20240318190219                          COMPLETE               8.16
----------------------------------------------------------------------------------------------------
Total                                                              COMPLETE            1719.92

@MichaelLueken
Copy link
Collaborator

@christinaholtNOAA -

The manual Hera GNU WE2E coverage tests successfully passed on Rocky8:

----------------------------------------------------------------------------------------------------
Experiment name                                                  | Status    | Core hours used
----------------------------------------------------------------------------------------------------
custom_ESGgrid_Central_Asia_3km_20240318202335                     COMPLETE              37.79
get_from_HPSS_ics_FV3GFS_lbcs_FV3GFS_fmt_nemsio_2019061200_202403  COMPLETE              11.19
get_from_NOMADS_ics_FV3GFS_lbcs_FV3GFS_20240318202337              COMPLETE              16.66
grid_RRFS_CONUS_13km_ics_FV3GFS_lbcs_FV3GFS_suite_HRRR_2024031820  COMPLETE              44.77
grid_RRFS_CONUS_25km_ics_FV3GFS_lbcs_FV3GFS_suite_RRFS_v1beta_202  COMPLETE              25.55
grid_SUBCONUS_Ind_3km_ics_HRRR_lbcs_RAP_suite_WoFS_v0_20240318202  COMPLETE              19.99
long_fcst_20240318202342                                           COMPLETE              72.13
MET_verification_only_vx_20240318202343                            COMPLETE               0.26
MET_ensemble_verification_only_vx_time_lag_20240318202345          COMPLETE               9.42
nco_grid_RRFS_CONUS_13km_ics_FV3GFS_lbcs_FV3GFS_suite_GFS_v16_202  COMPLETE              60.01
2019_halloween_storm_20240318202350                                COMPLETE              52.46
----------------------------------------------------------------------------------------------------
Total                                                              COMPLETE             350.23

The manual launched fundamental tests successfully passed on Orion:

----------------------------------------------------------------------------------------------------
Experiment name                                                  | Status    | Core hours used
----------------------------------------------------------------------------------------------------
grid_RRFS_CONUScompact_25km_ics_HRRR_lbcs_RAP_suite_RRFS_v1beta_2  COMPLETE              11.17
nco_grid_RRFS_CONUS_25km_ics_FV3GFS_lbcs_FV3GFS_timeoffset_suite_  COMPLETE              13.59
grid_RRFS_CONUS_25km_ics_FV3GFS_lbcs_FV3GFS_suite_GFS_v15p2_20240  COMPLETE               9.42
grid_RRFS_CONUS_25km_ics_FV3GFS_lbcs_FV3GFS_suite_GFS_v17_p8_plot  COMPLETE              17.86
grid_RRFS_CONUScompact_25km_ics_HRRR_lbcs_HRRR_suite_HRRR_2024031  COMPLETE              33.18
grid_SUBCONUS_Ind_3km_ics_HRRR_lbcs_RAP_suite_WoFS_v0_20240318134  COMPLETE              16.18
grid_RRFS_CONUS_25km_ics_NAM_lbcs_NAM_suite_GFS_v16_2024031813460  COMPLETE              24.59
----------------------------------------------------------------------------------------------------
Total                                                              COMPLETE             125.99

The automated Gaea and Hercules tests successfully passed.

On Jet, the grid_RRFS_CONUS_25km_ics_FV3GFS_lbcs_FV3GFS_suite_GFS_v15p2 test failed in run_fcst. The use of rocotorewind/rocotoboot allowed this test to successfully pass:

----------------------------------------------------------------------------------------------------
Experiment name                                                  | Status    | Core hours used 
----------------------------------------------------------------------------------------------------
community_20240318192628                                           COMPLETE              21.54
custom_ESGgrid_20240318192631                                      COMPLETE              19.49
custom_ESGgrid_Great_Lakes_snow_8km_20240318192632                 COMPLETE              17.65
custom_GFDLgrid_20240318192634                                     COMPLETE              14.12
get_from_HPSS_ics_FV3GFS_lbcs_FV3GFS_fmt_nemsio_2021032018_202403  COMPLETE              13.02
get_from_HPSS_ics_FV3GFS_lbcs_FV3GFS_fmt_netcdf_2022060112_48h_20  COMPLETE              59.30
get_from_HPSS_ics_RAP_lbcs_RAP_20240318192638                      COMPLETE              18.18
grid_RRFS_AK_3km_ics_FV3GFS_lbcs_FV3GFS_suite_HRRR_20240318192640  COMPLETE             224.65
grid_RRFS_CONUS_13km_ics_FV3GFS_lbcs_FV3GFS_suite_GFS_v16_plot_20  COMPLETE              43.69
grid_RRFS_CONUS_25km_ics_FV3GFS_lbcs_FV3GFS_suite_GFS_v15p2_20240  COMPLETE               7.65
grid_RRFS_CONUS_3km_ics_FV3GFS_lbcs_FV3GFS_suite_RRFS_v1beta_2024  COMPLETE             505.07
nco_grid_RRFS_CONUScompact_25km_ics_HRRR_lbcs_RAP_suite_HRRR_2024  COMPLETE              10.96
----------------------------------------------------------------------------------------------------
Total                                                              COMPLETE             955.32

On Derecho, the grid_SUBCONUS_Ind_3km_ics_HRRR_lbcs_HRRR_suite_HRRR test failed in run_fcst_mem001 and run_fcst_mem002. The logs for this test can be found - /glade/derecho/scratch/epicufsrt/jenkins/workspace/s-srweather-app_pipeline_PR-1054/derecho/expt_dirs/grid_SUBCONUS_Ind_3km_ics_HRRR_lbcs_HRRR_suite_HRRR/log. The traceback is:

Traceback (most recent call last):
  File "/glade/derecho/scratch/epicufsrt/jenkins/workspace/s-srweather-app_pipeline_PR-1054/derecho/ush/set_fv3nml_ens_stoch_seeds.py", line 145, in <module>
    set_fv3nml_ens_stoch_seeds(args.cdate, config)
  File "/glade/derecho/scratch/epicufsrt/jenkins/workspace/s-srweather-app_pipeline_PR-1054/derecho/ush/set_fv3nml_ens_stoch_seeds.py", line 48, in set_fv3nml_ens_stoch_seeds
    import_vars(dictionary=expt_config["global"])
                           ~~~~~~~~~~~^^^^^^^^^^
  File "/glade/derecho/scratch/epicufsrt/jenkins/workspace/s-srweather-app_pipeline_PR-1054/derecho/conda/envs/srw_app/lib/python3.11/collections/__init__.py", line 1126, in __getitem__
    raise KeyError(key)
KeyError: 'global'

I have also opened PR #3 in your fork. This PR will change the Hera spack-stack from CentOS to Rocky8.

Once PR #3 has been merged and the issue with grid_SUBCONUS_Ind_3km_ics_HRRR_lbcs_HRRR_suite_HRRR has been addressed on Derecho, I will move forward with merging this PR.

@MichaelLueken
Copy link
Collaborator

The Derecho WE2E coverage tests are now passing:

----------------------------------------------------------------------------------------------------
Experiment name                                                  | Status    | Core hours used 
----------------------------------------------------------------------------------------------------
custom_ESGgrid_IndianOcean_6km_20240319130911                      COMPLETE              28.47
grid_RRFS_CONUS_13km_ics_FV3GFS_lbcs_FV3GFS_suite_GFS_v16_plot_20  COMPLETE              46.09
grid_RRFS_CONUS_25km_ics_NAM_lbcs_NAM_suite_GFS_v16_2024031913091  COMPLETE              53.24
grid_RRFS_CONUScompact_13km_ics_HRRR_lbcs_RAP_suite_HRRR_20240319  COMPLETE              35.42
grid_RRFS_CONUScompact_25km_ics_HRRR_lbcs_RAP_suite_RRFS_v1beta_2  COMPLETE              21.59
grid_SUBCONUS_Ind_3km_ics_HRRR_lbcs_HRRR_suite_HRRR_2024031913092  COMPLETE              46.95
nco_grid_RRFS_CONUS_25km_ics_FV3GFS_lbcs_FV3GFS_timeoffset_suite_  COMPLETE              27.61
pregen_grid_orog_sfc_climo_20240319130928                          COMPLETE              21.14
specify_template_filenames_20240319130931                          COMPLETE              21.72
2019_hurricane_barry_20240319130932                                COMPLETE              41.34
----------------------------------------------------------------------------------------------------
Total                                                              COMPLETE             343.57

The Gaea WE2E coverage tests were also ran to ensure that the deterministic stochastic test still functions. All tests successfully passed:

----------------------------------------------------------------------------------------------------
Experiment name                                                  | Status    | Core hours used 
----------------------------------------------------------------------------------------------------
community_20240319161319                                           COMPLETE              48.59
custom_ESGgrid_NewZealand_3km_20240319161327                       COMPLETE              54.69
grid_RRFS_CONUScompact_13km_ics_HRRR_lbcs_RAP_suite_RRFS_v1beta_2  COMPLETE              36.58
grid_RRFS_CONUS_13km_ics_FV3GFS_lbcs_FV3GFS_suite_RAP_20240319161  COMPLETE              40.97
grid_RRFS_CONUS_13km_ics_FV3GFS_lbcs_FV3GFS_suite_HRRR_2024031916  COMPLETE              39.66
grid_RRFS_CONUS_3km_ics_FV3GFS_lbcs_FV3GFS_suite_GFS_v15_thompson  COMPLETE             360.78
grid_RRFS_CONUScompact_25km_ics_HRRR_lbcs_HRRR_suite_HRRR_2024031  COMPLETE              43.79
grid_RRFS_CONUScompact_3km_ics_HRRR_lbcs_RAP_suite_RRFS_v1beta_20  COMPLETE             297.49
grid_SUBCONUS_Ind_3km_ics_RAP_lbcs_RAP_suite_RRFS_v1beta_plot_202  COMPLETE              22.08
nco_ensemble_20240319161414                                        COMPLETE             121.49
nco_grid_RRFS_CONUS_3km_ics_FV3GFS_lbcs_FV3GFS_suite_GFS_v15_thom  COMPLETE             347.88
2020_CAPE_20240319161437                                           COMPLETE              43.40
----------------------------------------------------------------------------------------------------
Total                                                              COMPLETE            1457.40

Moving forward with merging this PR now.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
run_we2e_coverage_tests Run the coverage set of SRW end-to-end tests
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants