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

Internal: Determine/document a process to test use cases that can't run in automated test environment #2779

Open
24 tasks
georgemccabe opened this issue Nov 11, 2024 · 1 comment · Fixed by #2792
Assignees
Labels
alert: NEED MORE DEFINITION Not yet actionable, additional definition required reporting: DTC NOAA BASE NOAA Office of Atmospheric Research DTC Project type: task An actionable item of work
Milestone

Comments

@georgemccabe
Copy link
Collaborator

Currently there are a few use case that are not run in GitHub Actions for various reasons, like they exceed the memory limit or disk space limit. Some of these are noted in the Contributor's Guide. As part of the release process, we should make sure to run these use cases outside of the GitHub Actions automated testing environment to ensure that they run as expected.

The Contributor's Guide describes the process to add use cases that can't be run by not assigning a number to the use case in the internal/tests/use_cases/all_use_cases.txt file and excluding them from the .github/parm/use_case_groups.json file that determines the groups of use cases to run in the automated tests. We have since added support for a "disabled" key in the use_case_groups.json file to always skip those use cases.

There are a few use cases that are not run in the automated tests, but the reason is unclear because they are not listed in the Contributor's Guide section. This could happen for various external reasons (unrelated to GitHub Actions limitations) and we may be planning on eventually getting these cases working again.

Describe the Task

  • Update the documentation and process for adding use cases that can't be run in GHA to:
    • Assign a number
    • Mark them as disabled in the JSON use case groups file
    • Add a reason why it is disabled for internal reference so we know if it will never be able to run in GHA or not
  • Develop a process to run the use cases that can be run outside of GHA and run them to test that they work (on seneca?)
  • Document process to run the cases and see if this step can be scripted to make this testing easier for future releases

Time Estimate

This depends on how much of this work we want to complete for this release and which should move to another issue for future work. We should at very least test the use cases that need to be tested!

Sub-Issues

Consider breaking the task down into sub-issues.

  • Add a checkbox for each sub-issue here.

Relevant Deadlines

List relevant project deadlines here or state NONE.

Funding Source

Define the source of funding and account keys here or state NONE.

Define the Metadata

Assignee

  • Select engineer(s) or no engineer required
  • Select scientist(s) or no scientist required

Labels

  • Review default alert labels
  • Select component(s)
  • Select priority
  • Select requestor(s)

Milestone and Projects

  • Select Milestone as a METplus-Wrappers-X.Y.Z version, Consider for Next Release, or Backlog of Development Ideas
  • For a METplus-Wrappers-X.Y.Z version, select the METplus-Wrappers-X.Y.Z Development project

Define Related Issue(s)

Consider the impact to the other METplus components.

Task Checklist

See the METplus Workflow for details.

  • Complete the issue definition above, including the Time Estimate and Funding Source.
  • Fork this repository or create a branch of develop.
    Branch name: feature_<Issue Number>_<Description>
  • Complete the development and test your changes.
  • Add/update log messages for easier debugging.
  • Add/update unit tests.
  • Add/update documentation.
  • Add any new Python packages to the METplus Components Python Requirements table.
  • For any new datasets, an entry to the METplus Verification Datasets Guide.
  • Push local changes to GitHub.
  • Submit a pull request to merge into develop.
    Pull request: feature <Issue Number> <Description>
  • Define the pull request metadata, as permissions allow.
    Select: Reviewer(s) and Development issue
    Select: Milestone as the next official version
    Select: METplus-Wrappers-X.Y.Z Development project for development toward the next official release
  • Iterate until the reviewer(s) accept and merge your changes.
  • Delete your fork or branch.
  • Close this issue.
@georgemccabe georgemccabe added type: task An actionable item of work alert: NEED MORE DEFINITION Not yet actionable, additional definition required alert: NEED ACCOUNT KEY Need to assign an account key to this issue alert: NEED CYCLE ASSIGNMENT Need to assign to a release development cycle labels Nov 11, 2024
@georgemccabe georgemccabe added this to the METplus-6.0.0 milestone Nov 11, 2024
@georgemccabe georgemccabe self-assigned this Nov 11, 2024
@georgemccabe georgemccabe moved this from 🩺 Needs Triage to 🟢 Ready in METplus-Wrappers-6.0.0 Development Nov 11, 2024
@georgemccabe georgemccabe moved this from 🟢 Ready to 🩺 Needs Triage in METplus-Wrappers-6.0.0 Development Nov 11, 2024
@georgemccabe georgemccabe removed the alert: NEED CYCLE ASSIGNMENT Need to assign to a release development cycle label Nov 11, 2024
georgemccabe added a commit that referenced this issue Nov 11, 2024
… and added a reason to describe why the use cases have been disabled
@georgemccabe georgemccabe moved this from 🩺 Needs Triage to 🏗 In progress in METplus-Wrappers-6.0.0 Development Nov 13, 2024
@georgemccabe
Copy link
Collaborator Author

georgemccabe commented Nov 13, 2024

For now, I will start with testing the use cases that are not run in GHA on seneca. Some of the use cases have input data that is provided with the rest of the data for the model_applications categories. Some of them have data in an additional tar file on the web.

  • marine_and_cryosphere:11 GridStat_fcstRTOFS_obsGHRSST_climWOA_sst

    • Ran without errors
    • Ran on seneca using command:
      run_metplus.py \
      ~/METplus/parm/use_cases/model_applications/marine_and_cryosphere/GridStat_fcstRTOFS_obsGHRSST_climWOA_sst.conf \
      ~/mccabe.seneca.conf \
      user_env_vars.MET_PYTHON_EXE=/home/met_test/miniforge3/envs/icecover.v6.0/bin/python3
      
  • s2s_stratosphere:1 UserScript_fcstGFS_obsERA_StratospherePolar

    • Data found in https://dtcenter.ucar.edu/dfiles/code/METplus/METplus_Data/v6.0/additional_data_UserScript_fcstGFS_obsERA_StratospherePolar.tgz
    • Added data to seneca:/d1/projects/METplus/METplus_Data/not_in_gha
    • Ran without errors (after bugfix to METcalcpy)
    • Ran on seneca using command:
      mamba activate weatherregime.v6.0
      run_metplus.py \
      ~/METplus/parm/use_cases/model_applications/s2s_stratosphere/UserScript_fcstGFS_obsERA_StratospherePolar.conf \
      ~/mccabe.seneca.conf \
      config.INPUT_BASE=/d1/projects/METplus/METplus_Data/not_in_gha \
      config.OUTPUT_BASE=/d1/personal/mccabe/out_s2s_strat \
      user_env_vars.PYTHONPATH=/home/mccabe/METcalcpy:/home/mccabe/METdataio:/home/mccabe/METplotpy
      
  • s2s_stratosphere:2 UserScript_fcstGFS_obsERA_StratosphereQBO

    • Data found in https://dtcenter.ucar.edu/dfiles/code/METplus/METplus_Data/v6.0/additional_data_UserScript_fcstGFS_obsERA_StratosphereQBO.tgz
    • Added data to seneca:/d1/projects/METplus/METplus_Data/not_in_gha
    • Ran without errors
    • Ran on seneca using command:
      mamba activate weatherregime.v6.0
      run_metplus.py \
      ~/METplus/parm/use_cases/model_applications/s2s_stratosphere/UserScript_fcstGFS_obsERA_StratosphereQBO.conf \
      ~/mccabe.seneca.conf \
      config.INPUT_BASE=/d1/projects/METplus/METplus_Data/not_in_gha \
      config.OUTPUT_BASE=/d1/personal/mccabe/out_s2s_strat2 \
      user_env_vars.PYTHONPATH=/home/mccabe/METcalcpy:/home/mccabe/METdataio:/home/mccabe/METplotpy
      
  • short_range:14 UserScript_fcstRRFS_fcstOnly_Reformat_Aggregate_Plot

    • Disabled reason: "need new RRFS data with new line types"
    • Not expected to successfully run because we need new input data
    • Ran without errors (after a few minor changes to use case scripts)
    • Ran on seneca using command:
      mamba activate rrfs_usecase_env
      run_metplus.py \
      ~/METplus/parm/use_cases/model_applications/short_range/UserScript_fcstRRFS_fcstOnly_Reformat_Aggregate_Plot.conf \
      ~/mccabe.seneca.conf \
      config.OUTPUT_BASE=/d1/personal/mccabe/out_short_range14 \
      user_env_vars.PYTHONPATH=/home/mccabe/METcalcpy:/home/mccabe/METdataio:/home/mccabe/METplotpy
      
    • Note: will need to create a conda environment in internal/scripts/docker_env for this use case!
  • short_range:15 MODEMultivar_fcstRRFS_obsGOES_MRMS_BrightnessTemp_Lightning

    • Ran without errors
    • Ran on seneca using command:
      run_metplus.py \
      ~/METplus/parm/use_cases/model_applications/short_range/MODEMultivar_fcstRRFS_obsGOES_MRMS_BrightnessTemp_Lightning.conf \
      ~/mccabe.seneca.conf
      

I ran each of these using today's MET nightly build directory on seneca. I automate this by setting an environment variable in my .bashrc:
export TODAY_YMD=$(date +%Y%m%d)
then set the following in mccabe.seneca.conf:
MET_INSTALL_DIR=/d1/projects/MET/MET_regression/develop/NB{ENV[TODAY_YMD]}/MET-develop

@georgemccabe georgemccabe linked a pull request Nov 13, 2024 that will close this issue
16 tasks
@michelleharrold michelleharrold added reporting: DTC NOAA BASE NOAA Office of Atmospheric Research DTC Project and removed alert: NEED ACCOUNT KEY Need to assign an account key to this issue labels Nov 14, 2024
georgemccabe added a commit that referenced this issue Nov 14, 2024
* Per #2779, assigned a number to all use cases that are not run in GHA and added a reason to describe why the use cases have been disabled

* adding location information

* updating location information

* Revert "adding location information"

This reverts commit cc6d185.

* Revert "updating location information"

This reverts commit 5920779.

* added location of input data that is not found with rest of input data for use case category

* added information on how to run generate_release_notes.py script and updated script to clean up some formatting issues

* Per #2789, added release notes for rc1 release

* update version for rc1 release

* fixed broken commands in use case scripts

---------

Co-authored-by: lisagoodrich <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
alert: NEED MORE DEFINITION Not yet actionable, additional definition required reporting: DTC NOAA BASE NOAA Office of Atmospheric Research DTC Project type: task An actionable item of work
Projects
Status: 🏗 In progress
Development

Successfully merging a pull request may close this issue.

2 participants