From b1090c10d55bbb6b12d8604812ba610f52b8de7d Mon Sep 17 00:00:00 2001 From: "Mark C. Miller" Date: Fri, 4 Oct 2024 11:29:59 -0700 Subject: [PATCH] Create check_methoddoc_gen.yaml Create GitHub action for checking MethodDoc.C is generated when functions.rst is changed. --- .github/workflows/check_methoddoc_gen.yaml | 69 ++++++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100644 .github/workflows/check_methoddoc_gen.yaml diff --git a/.github/workflows/check_methoddoc_gen.yaml b/.github/workflows/check_methoddoc_gen.yaml new file mode 100644 index 00000000000..50e5b15dff0 --- /dev/null +++ b/.github/workflows/check_methoddoc_gen.yaml @@ -0,0 +1,69 @@ +name: Check sync of functions.rst and MethodDoc.C + +on: + pull_request: + paths: + - 'src/doc/python_scripting/functions.rst' + - 'src/visitpy/common/MethodDoc.C' + - 'src/visitpy/common/MethodDoc.h' + +jobs: + check-sync: + runs-on: ubuntu-latest + + steps: + + - name: Set up Python + uses: actions/setup-python@v2 + with: + python-version: '3.9' + + - name: Checkout code + uses: actions/checkout@v2 + + - name: Get Changed Files (for PRs) + id: changed-files + uses: tj-actions/changed-files@v42 + with: + separator: ' ' + + - name: Check synced files + run: | + have_func_rst=0 + have_methdoc_c=0 + for f in ${{ steps.changed-files.outputs.all_changed_files }}; do + if [[ "$f" == "src/doc/python_script/functions.rst" ]]; then + have_func_rst=1 + elif [[ "$f" == "src/visitpy/common/MethodDoc.C" ]]; then + have_methdoc_c=1 + fi + done + if [[ $have_func_rst -ne 0 ]]; then + if [[ $have_methdoc_c -eq 0 ]]; then + echo "Error: Changes to functions.rst require regeneration of MethodDoc.C (and possibly MethodDoc.h)" + echo " Please follow https://visit-sphinx-github-user-manual.readthedocs.io/en/develop/dev_manual/UpdatingPythonDocStrings.html" + exit 1 + fi + fi + if [[ $have_methdoc_c -ne 0 ]]; then + if [[ $have_func_rst -eq 0 ]]; then + echo "Error: You have made changes directly to a *generated* file, MethodDoc.C." + echo " You must make your changes to functions.rst and regenerate MethodDoc.C (and possibly MethodDoc.h)." + echo " Please follow https://visit-sphinx-github-user-manual.readthedocs.io/en/develop/dev_manual/UpdatingPythonDocStrings.html" + exit 1 + fi + fi + + - name: Check Generated MethodDoc.C + run: | + cp src/visitpy/common/MethodDoc.C src/visitpy/common/MethodDoc.C.orig + pushd src/doc + ./functions_to_plain_py.py + 2to3 -p PY_RST_FUNCTIONS_TO_PYTHON.py + ./functions_to_method_doc.py + diff --brief src/visitpy/common/MethodDoc.C src/visitpy/common/MethodDoc.C.orig + if [ $? -ne 0 ]; then + echo "Error: MethodDoc.C does not appear to have been generated from functions.rst" + echo " Please follow https://visit-sphinx-github-user-manual.readthedocs.io/en/develop/dev_manual/UpdatingPythonDocStrings.html" + exit 1 + fi