diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml new file mode 100644 index 00000000..6f7c2e3b --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -0,0 +1,76 @@ +name: Bug report +description: Report something that is incorrect or broken +labels: ["bug", "triage"] + +body: + - type: markdown + attributes: + value: | + Your bug may already be reported! + Please search on the [Issue tracker](https://github.com/NOAA-EMC/gfs-utils/issues) before creating one. + + - type: textarea + id: current_behavior + attributes: + label: What is wrong? + description: Give a brief description of what is incorrect or broken. + placeholder: | + Short log snippets that illustrate the problem can be included here. + + For any longer logs, please create a GitHub gist (https://gist.github.com/) and link it here. + validations: + required: true + + - type: textarea + id: expected_behavior + attributes: + label: What should have happened? + placeholder: Describe what you expected to happen. + validations: + required: true + + - type: dropdown + id: hpc + attributes: + label: What machines are impacted? + description: You may select multiple machines. + multiple: true + options: + - All or N/A + - WCOSS2 + - Hera + - Orion + - Hercules + - Jet + - Cloud + validations: + required: true + + - type: textarea + id: reproduction_steps + attributes: + label: Steps to reproduce + description: Please give explicit instructions to reproduce the error + placeholder: | + 1. + 2. + 3. + validations: + required: true + + - type: textarea + id: description + attributes: + label: Additional information + description: Provide context or any additional information about the bug. + validations: + required: true + + - type: textarea + id: propsed_implementation + attributes: + label: Do you have a proposed solution? + description: If you already have an idea on how to fix this, please provide it here. + placeholder: Optional + validations: + required: false diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml new file mode 100644 index 00000000..3ba13e0c --- /dev/null +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -0,0 +1 @@ +blank_issues_enabled: false diff --git a/.github/ISSUE_TEMPLATE/feature_request.yml b/.github/ISSUE_TEMPLATE/feature_request.yml new file mode 100644 index 00000000..8c1dfb8e --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature_request.yml @@ -0,0 +1,55 @@ +name: Feature request +description: Request new capability +labels: ["feature", "triage"] + +body: + - type: markdown + attributes: + value: | + If your issue falls into one of the follow categories, please go back and use the appropriate template: + - Something is wrong or broken + - It is a request from NCO + - It is initiating a production update + - Files need to be updated or added to fix + + + Please search on the [Issue tracker](https://github.com/NOAA-EMC/gfs-utils/issues) to make sure the feature has not already been requested to avoid duplicates. + + - type: textarea + id: description + attributes: + label: What new functionality do you need? + placeholder: Provide a consise description of the problem to be addressed by this feature request. Please be clear what parts of the problem are considered to be in-scope and out-of-scope + validations: + required: true + + - type: textarea + id: requirements + attributes: + label: What are the requirements for the new functionality? + validations: + required: true + + - type: textarea + id: criteria + attributes: + label: Acceptance Criteria + placeholder: What does it mean for this issue to be complete? + validations: + required: true + + - type: textarea + id: suggested_solution + attributes: + label: Suggest a solution (optional) + placeholder: | + Propose how this issue can be resolved. + + Things to address include: + * Details of the technical implementation + * Tradeoffs made in design decisions + * Caveats and considerations for the future + + If there are multiple solutions, please present each one separately. Save comparisons for the very end.)" + validations: + required: false diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md new file mode 100644 index 00000000..30649c96 --- /dev/null +++ b/.github/pull_request_template.md @@ -0,0 +1,52 @@ + + + +# Description + + + +# Type of change + +- Bug fix (fixes something broken) +- New feature (adds functionality) +- Maintenance (code refactor, clean-up, new CI test, etc.) + +# Change characteristics +- Is this a breaking change (a change in existing functionality)? YES/NO +- Does this change require a documentation update? YES/NO + +# How has this been tested? + + +# Checklist +- [ ] Any dependent changes have been merged and published +- [ ] My code follows the style guidelines of this project +- [ ] I have performed a self-review of my own code +- [ ] I have commented my code, particularly in hard-to-understand areas +- [ ] My changes generate no new warnings +- [ ] New and existing tests pass with my changes +- [ ] I have made corresponding changes to the documentation if necessary diff --git a/.github/workflows/linters.yaml b/.github/workflows/linters.yaml new file mode 100644 index 00000000..0e4c03f9 --- /dev/null +++ b/.github/workflows/linters.yaml @@ -0,0 +1,37 @@ +# +name: shellnorms +on: + pull_request: + +permissions: + contents: read + +defaults: + run: + shell: bash -o pipefail {0} + +jobs: + lint-shell: + runs-on: ubuntu-latest + + permissions: + security-events: write + + steps: + - name: Checkout code + uses: actions/checkout@v3 + with: + fetch-depth: 0 + + - id: ShellCheck + name: Lint shell scripts + uses: redhat-plumbers-in-action/differential-shellcheck@v4 + with: + token: ${{ secrets.GITHUB_TOKEN }} + + - if: ${{ always() }} + name: Upload artifact with ShellCheck defects in SARIF format + uses: actions/upload-artifact@v3 + with: + name: Differential ShellCheck SARIF + path: ${{ steps.ShellCheck.outputs.sarif }} diff --git a/.github/workflows/pynorms.yaml b/.github/workflows/pynorms.yaml new file mode 100644 index 00000000..366a8757 --- /dev/null +++ b/.github/workflows/pynorms.yaml @@ -0,0 +1,24 @@ +name: pynorms +on: [push, pull_request] + +jobs: + check_norms: + runs-on: ubuntu-latest + name: Check Python coding norms with pycodestyle + + steps: + + - name: Install dependencies + run: | + pip install --upgrade pip + pip install pycodestyle + + - name: Checkout + uses: actions/checkout@v3 + with: + path: gfs-utils + + - name: Run pycodestyle + run: | + cd $GITHUB_WORKSPACE/gfs-utils + pycodestyle -v --config ./.pycodestyle ./ diff --git a/modulefiles/gfsutils_hera.intel.lua b/modulefiles/gfsutils_hera.intel.lua index 0c775510..16a82c00 100644 --- a/modulefiles/gfsutils_hera.intel.lua +++ b/modulefiles/gfsutils_hera.intel.lua @@ -15,7 +15,7 @@ load(pathJoin("cmake", cmake_ver)) load("gfsutils_common") local gempak_ver=os.getenv("gempak_ver") or "7.4.2" -load(pathJoin("gempak", gempak_ver)) +-- load(pathJoin("gempak", gempak_ver)) -- Used in rdbfmsua.f setenv("gfortran_ROOT", "/apps/gnu/gcc-9.2.0") diff --git a/modulefiles/gfsutils_orion.intel.lua b/modulefiles/gfsutils_orion.intel.lua index 59bd5ba3..985051ca 100644 --- a/modulefiles/gfsutils_orion.intel.lua +++ b/modulefiles/gfsutils_orion.intel.lua @@ -15,7 +15,7 @@ load(pathJoin("cmake", cmake_ver)) load("gfsutils_common") local gempak_ver=os.getenv("gempak_ver") or "7.5.1" -load(pathJoin("gempak", gempak_ver)) +-- load(pathJoin("gempak", gempak_ver)) -- Used in rdbfmsua.f setenv("gfortran_ROOT", "/apps/gcc-8/gcc-8.3.0") diff --git a/modulefiles/gfsutils_wcoss2.intel.lua b/modulefiles/gfsutils_wcoss2.intel.lua index 4711c5c2..4f9df05b 100644 --- a/modulefiles/gfsutils_wcoss2.intel.lua +++ b/modulefiles/gfsutils_wcoss2.intel.lua @@ -50,7 +50,7 @@ load(pathJoin("nemsio", nemsio_ver)) load(pathJoin("wrf_io", wrf_io_ver)) load(pathJoin("g2", g2_ver)) load(pathJoin("landsfcutil", landsfcutil_ver)) -load(pathJoin("gempak", gempak_ver)) +-- load(pathJoin("gempak", gempak_ver)) load(pathJoin("wgrib2", wgrib2_ver)) -- Used in rdbfmsua.f