From f84c4389cd3444984eea707ba3ca234a4a031c4c Mon Sep 17 00:00:00 2001 From: Gage Larsen Date: Mon, 24 Aug 2026 09:40:02 -0600 Subject: [PATCH] Regenerate CI with xmsconan 2.23.0 master has been red since 2026-08-21 on all seven Debug legs. xmsconan 2.22.0 made `--wheel-dir` a request build.py must satisfy -- it exits 1 when no complete set of wheels comes out -- while the workflow passed the flag on every build type. `[matrix].pybind_build_types` defaults to Release only, so a Debug leg has no pybind configuration to extract a wheel from: >> All configurations built successfully. >> No pybind package found to extract. error: --wheel-dir wheelhouse was given but no complete set of wheels was extracted; see the message above. xmsconan 2.23.0 gates the flag on `matrix.build_type == 'Release'`, which is how repair, artifact upload and deploy in this workflow were already gated. The fix does not arrive on its own: `build.py` is regenerated on every run and picked up the breaking change through the floating pin, but the workflow itself is committed, so it takes this regeneration to pick up the fix. Also in this regeneration, all from xmsconan 2.23.0: - Third-party actions pinned to commit SHAs with the tag in a trailing comment. A tag is a movable ref in someone else's repository, and these steps run with this workflow's secrets in their environment. - `actions/setup-python` v2 to v5 on the flake job. - `flake8-tidy-imports` added to the flake job. It registers `banned-modules`, which the generated `.flake8` sets; flake8 ignores config options no installed plugin claims, so the osgeo ban was silently enforcing nothing while the job reported green. - xmsconan floor 2.21.0 to 2.23.0. No source, build.toml or version change -- CI only. xmsgrid stays at 9.1.0 until master is green and 9.1.1 is tagged. --- .github/workflows/XmsGrid-CI.yaml | 66 ++++++++++++++++++------------- 1 file changed, 39 insertions(+), 27 deletions(-) diff --git a/.github/workflows/XmsGrid-CI.yaml b/.github/workflows/XmsGrid-CI.yaml index a0fd7cf4..6766a5ac 100644 --- a/.github/workflows/XmsGrid-CI.yaml +++ b/.github/workflows/XmsGrid-CI.yaml @@ -6,6 +6,13 @@ # AQUAPI_URL_DEV - devpi index URL for wheel uploads # AQUAVEO_GITHUB_TOKEN - GitHub token for release asset uploads # +# Third-party actions are pinned to a commit SHA with the tag in a trailing +# comment. A tag is a movable ref in someone else's repository: whoever owns +# it can retarget it at new code, which then runs here with this workflow's +# secrets in its environment. Update a pin by resolving the new tag +# (`gh api repos///commits/ --jq .sha`) and editing the +# template -- not the generated file. +# # Generated by xmsconan_ci — do not edit manually. name: XmsGrid-CI @@ -34,15 +41,20 @@ jobs: uses: actions/checkout@v4 # Setup Python - name: Setup Python ${{ matrix.python-version }} - uses: actions/setup-python@v2 + uses: actions/setup-python@v5 with: python-version: ${{ matrix.python-version }} # Install Python Dependencies - name: Install Python Dependencies run: | python -m pip install --upgrade pip - pip install flake8 flake8-docstrings flake8-bugbear flake8-import-order pep8-naming - pip install --upgrade "xmsconan>=2.21.0" -i https://public.aquapi.aquaveo.com/aquaveo/dev/+simple + # flake8-tidy-imports registers `banned-modules`, which the .flake8 + # generated below sets. flake8 ignores config options no installed + # plugin claims, so without the plugin the osgeo ban was accepted + # and silently enforced nothing -- while this job reported the same + # green as a run that had checked it. + pip install flake8 flake8-docstrings flake8-bugbear flake8-import-order pep8-naming flake8-tidy-imports + pip install --upgrade "xmsconan>=2.23.0" -i https://public.aquapi.aquaveo.com/aquaveo/dev/+simple # Generate .flake8 so CI lints with the same config developers use locally. # Do not inline the flake8 settings here: that duplicates .flake8.jinja and # the two copies drift apart silently. @@ -91,7 +103,7 @@ jobs: steps: # Get Correct Version of Xcode - - uses: maxim-lobanov/setup-xcode@v1 + - uses: maxim-lobanov/setup-xcode@ed7a3b1fda3918c0306d1b724322adc0b8cc0a90 # v1 with: xcode-version: 16.4 - name: Setup Clang @@ -113,7 +125,7 @@ jobs: # package_id computation and silently detach builds from the binaries # already published to the remote. Bump this deliberately. pip install "conan~=2.31.0" devpi-client wheel - python -m pip install --upgrade "xmsconan>=2.21.0" -i https://public.aquapi.aquaveo.com/aquaveo/dev/+simple + python -m pip install --upgrade "xmsconan>=2.23.0" -i https://public.aquapi.aquaveo.com/aquaveo/dev/+simple # Setup Conan - name: Setup Conan run: xmsconan_conan_setup --remote-url ${{ env.CONAN_REMOTE_URL }} --login --remove-conancenter @@ -121,11 +133,11 @@ jobs: # Get Tag Name - name: Get Tag id: gitTag - uses: little-core-labs/get-git-tag@v3.0.2 + uses: little-core-labs/get-git-tag@2c292ff564c1a61b989e29f0410d131317f89b03 # v3.0.2 if: startsWith(github.ref, 'refs/tags/') # Set Conan Version - name: Set Conan Version - uses: allenevans/set-env@v2.0.0 + uses: allenevans/set-env@b68e0a75c99b96b43963b54bc2be13e2f103ad87 # v2.0.0 with: CONAN_REFERENCE: 'xmsgrid/${{ steps.gitTag.outputs.tag }}' XMS_VERSION: ${{ steps.gitTag.outputs.tag }} @@ -135,9 +147,9 @@ jobs: # Check for release branch - name: Get Branch Name id: gitBranch - uses: nelonoel/branch-name@v1.0.1 + uses: nelonoel/branch-name@1ea5c86cb559a8c4e623da7f188496208232e49f # v1.0.1 - name: Change Channel and URL if Release Branch - uses: allenevans/set-env@v2.0.0 + uses: allenevans/set-env@b68e0a75c99b96b43963b54bc2be13e2f103ad87 # v2.0.0 with: CONAN_CHANNEL: stable AQUAPI_URL: ${{ secrets.AQUAPI_URL_DEV}} @@ -147,7 +159,7 @@ jobs: run: xmsconan_gen --version ${{ env.XMS_VERSION }} build.toml # Build the Conan Package - name: Build the Conan Packages - run: "python build.py --filter=\"{\\\"build_type\\\": \\\"${{ matrix.build_type }}\\\"}\" --wheel-dir wheelhouse --artifacts-dir test_artifacts" + run: "python build.py --filter=\"{\\\"build_type\\\": \\\"${{ matrix.build_type }}\\\"}\"${{ matrix.build_type == 'Release' && ' --wheel-dir wheelhouse' || '' }} --artifacts-dir test_artifacts" shell: bash - name: Upload test artifacts uses: actions/upload-artifact@v4 @@ -180,7 +192,7 @@ jobs: # Get the Release Data - name: Get Release id: git_release - uses: bruceadams/get-release@v1.3.2 + uses: bruceadams/get-release@74c3d60f5a28f358ccf241a00c9021ea16f0569f # v1.3.2 env: GITHUB_TOKEN: ${{ secrets.AQUAVEO_GITHUB_TOKEN }} if: startsWith(github.ref, 'refs/tags/') @@ -251,7 +263,7 @@ jobs: # package_id computation and silently detach builds from the binaries # already published to the remote. Bump this deliberately. pip install "conan~=2.31.0" devpi-client wheel - pip install --upgrade "xmsconan>=2.21.0" -i https://public.aquapi.aquaveo.com/aquaveo/dev/+simple + pip install --upgrade "xmsconan>=2.23.0" -i https://public.aquapi.aquaveo.com/aquaveo/dev/+simple # Setup Conan - name: Setup Conan run: xmsconan_conan_setup --remote-url ${{ env.CONAN_REMOTE_URL }} --login @@ -259,11 +271,11 @@ jobs: # Get Tag Name - name: Get Tag id: gitTag - uses: little-core-labs/get-git-tag@v3.0.2 + uses: little-core-labs/get-git-tag@2c292ff564c1a61b989e29f0410d131317f89b03 # v3.0.2 if: startsWith(github.ref, 'refs/tags/') # Set Conan Version - name: Set Conan Version - uses: allenevans/set-env@v2.0.0 + uses: allenevans/set-env@b68e0a75c99b96b43963b54bc2be13e2f103ad87 # v2.0.0 with: CONAN_REFERENCE: 'xmsgrid/${{ steps.gitTag.outputs.tag }}' XMS_VERSION: ${{ steps.gitTag.outputs.tag }} @@ -273,9 +285,9 @@ jobs: # Check for release branch - name: Get Branch Name id: gitBranch - uses: nelonoel/branch-name@v1.0.1 + uses: nelonoel/branch-name@1ea5c86cb559a8c4e623da7f188496208232e49f # v1.0.1 - name: Change Channel and URL if Release Branch - uses: allenevans/set-env@v2.0.0 + uses: allenevans/set-env@b68e0a75c99b96b43963b54bc2be13e2f103ad87 # v2.0.0 with: CONAN_CHANNEL: stable AQUAPI_URL: ${{ secrets.AQUAPI_URL_DEV }} @@ -285,7 +297,7 @@ jobs: run: xmsconan_gen --version ${{ env.XMS_VERSION }} build.toml # Build the Conan Package - name: Build the Conan Packages - run: "python build.py --filter=\"{\\\"build_type\\\": \\\"${{ matrix.build_type }}\\\"}\" --wheel-dir wheelhouse --artifacts-dir test_artifacts" + run: "python build.py --filter=\"{\\\"build_type\\\": \\\"${{ matrix.build_type }}\\\"}\"${{ matrix.build_type == 'Release' && ' --wheel-dir wheelhouse' || '' }} --artifacts-dir test_artifacts" shell: bash - name: Upload test artifacts uses: actions/upload-artifact@v4 @@ -318,7 +330,7 @@ jobs: # Get the Release Data - name: Get Release id: git_release - uses: bruceadams/get-release@v1.3.2 + uses: bruceadams/get-release@74c3d60f5a28f358ccf241a00c9021ea16f0569f # v1.3.2 env: GITHUB_TOKEN: ${{ secrets.AQUAVEO_GITHUB_TOKEN }} if: startsWith(github.ref, 'refs/tags/') @@ -388,7 +400,7 @@ jobs: python-version: ${{ matrix.python-version }} # Setup Dev Command Prompt env for MSVC - name: Setup MSVC env - uses: ilammy/msvc-dev-cmd@v1 + uses: ilammy/msvc-dev-cmd@0b201ec74fa43914dc39ae48a89fd1d8cb592756 # v1 with: arch: x64 # Install Python Dependencies @@ -399,10 +411,10 @@ jobs: # package_id computation and silently detach builds from the binaries # already published to the remote. Bump this deliberately. pip install "conan~=2.31.0" devpi-client wheel - python -m pip install --upgrade "xmsconan>=2.21.0" -i https://public.aquapi.aquaveo.com/aquaveo/dev/+simple + python -m pip install --upgrade "xmsconan>=2.23.0" -i https://public.aquapi.aquaveo.com/aquaveo/dev/+simple # Setup Visual Studio - name: Setup Visual Studio - uses: microsoft/setup-msbuild@v2 + uses: microsoft/setup-msbuild@6fb02220983dee41ce7ae257b6f4d8f9bf5ed4ce # v2 # Setup Conan - name: Setup Conan run: xmsconan_conan_setup --remote-url ${{ env.CONAN_REMOTE_URL }} --login @@ -410,11 +422,11 @@ jobs: # Get Tag Name - name: Get Tag id: gitTag - uses: little-core-labs/get-git-tag@v3.0.2 + uses: little-core-labs/get-git-tag@2c292ff564c1a61b989e29f0410d131317f89b03 # v3.0.2 if: startsWith(github.ref, 'refs/tags/') # Set Conan Version - name: Set Conan Version - uses: allenevans/set-env@v2.0.0 + uses: allenevans/set-env@b68e0a75c99b96b43963b54bc2be13e2f103ad87 # v2.0.0 with: CONAN_REFERENCE: 'xmsgrid/${{ steps.gitTag.outputs.tag }}' XMS_VERSION: ${{ steps.gitTag.outputs.tag }} @@ -424,9 +436,9 @@ jobs: # Check for release branch - name: Get Branch Name id: gitBranch - uses: nelonoel/branch-name@v1.0.1 + uses: nelonoel/branch-name@1ea5c86cb559a8c4e623da7f188496208232e49f # v1.0.1 - name: Change Channel and URL if Release Branch - uses: allenevans/set-env@v2.0.0 + uses: allenevans/set-env@b68e0a75c99b96b43963b54bc2be13e2f103ad87 # v2.0.0 with: CONAN_CHANNEL: stable AQUAPI_URL: ${{ secrets.AQUAPI_URL_DEV }} @@ -436,7 +448,7 @@ jobs: run: xmsconan_gen --version ${{ env.XMS_VERSION }} build.toml # Build the Conan Package - name: Build the Conan Packages - run: "python build.py --filter=\"{\\\"build_type\\\": \\\"${{ matrix.build_type }}\\\"}\" --wheel-dir wheelhouse --artifacts-dir test_artifacts" + run: "python build.py --filter=\"{\\\"build_type\\\": \\\"${{ matrix.build_type }}\\\"}\"${{ matrix.build_type == 'Release' && ' --wheel-dir wheelhouse' || '' }} --artifacts-dir test_artifacts" shell: cmd - name: Upload test artifacts uses: actions/upload-artifact@v4 @@ -469,7 +481,7 @@ jobs: # Get the Release Data - name: Get Release id: git_release - uses: bruceadams/get-release@v1.3.2 + uses: bruceadams/get-release@74c3d60f5a28f358ccf241a00c9021ea16f0569f # v1.3.2 env: GITHUB_TOKEN: ${{ secrets.AQUAVEO_GITHUB_TOKEN }} if: startsWith(github.ref, 'refs/tags/')