diff --git a/.github/workflows/Coverage.yaml b/.github/workflows/Coverage.yaml index 48e74338..519a079e 100644 --- a/.github/workflows/Coverage.yaml +++ b/.github/workflows/Coverage.yaml @@ -45,7 +45,7 @@ jobs: - name: Install Python Dependencies run: | pip install conan wheel "gcovr>=7,<9" - pip install --upgrade "xmsconan>=2.18.0" -i https://public.aquapi.aquaveo.com/aquaveo/dev/+simple + pip install --upgrade "xmsconan>=2.21.0" -i https://public.aquapi.aquaveo.com/aquaveo/dev/+simple - name: Setup Conan run: xmsconan_conan_setup --remote-url ${{ env.CONAN_REMOTE_URL }} --login diff --git a/.github/workflows/XmsCore-CI.yaml b/.github/workflows/XmsCore-CI.yaml index fd5a3ed7..c3048c10 100644 --- a/.github/workflows/XmsCore-CI.yaml +++ b/.github/workflows/XmsCore-CI.yaml @@ -42,7 +42,7 @@ jobs: run: | python -m pip install --upgrade pip pip install flake8 flake8-docstrings flake8-bugbear flake8-import-order pep8-naming - pip install --upgrade "xmsconan>=2.18.0" -i https://public.aquapi.aquaveo.com/aquaveo/dev/+simple + pip install --upgrade "xmsconan>=2.21.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. @@ -63,11 +63,11 @@ jobs: fail-fast: false matrix: platform: [macos-15] - python-version: ['3.13'] + python-version: ["3.13", "3.14"] build_type: [Release, Debug] env: - MATRIX_NAME: ${{ matrix.platform }}-Clang${{ matrix.compiler-version }}-${{ matrix.build_type }} + MATRIX_NAME: ${{ matrix.platform }}-Clang${{ matrix.compiler-version }}-${{ matrix.build_type }}-py${{ matrix.python-version }} # Library Variables LIBRARY_NAME: xmscore XMS_VERSION: '0.0.0' @@ -113,7 +113,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.18.0" -i https://public.aquapi.aquaveo.com/aquaveo/dev/+simple + python -m pip install --upgrade "xmsconan>=2.21.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 @@ -164,7 +164,7 @@ jobs: - name: Upload wheel artifact uses: actions/upload-artifact@v4 with: - name: wheel-${{ runner.os }} + name: wheel-${{ runner.os }}-py${{ matrix.python-version }} path: wheelhouse/*.whl if: matrix.build_type == 'Release' # Upload wheel to Aquapi @@ -205,19 +205,20 @@ jobs: # LINUX # ---------------------------------------------------------------------------------------------- linux: - name: GCC-13 (${{ matrix.build_type }}, Linux) + name: GCC-13 (${{ matrix.build_type }}, ${{ matrix.python-version }}, Linux) runs-on: ubuntu-latest container: - image: ghcr.io/aquaveo/conan-gcc13-py3.13:latest + image: ghcr.io/aquaveo/conan-gcc13-py${{ matrix.python-version }}:latest strategy: fail-fast: false matrix: build_type: [Release, Debug] + python-version: ["3.13", "3.14"] env: - MATRIX_NAME: linux-GCC13-${{ matrix.build_type }} + MATRIX_NAME: linux-GCC13-${{ matrix.build_type }}-py${{ matrix.python-version }} # Library Variables LIBRARY_NAME: xmscore XMS_VERSION: '0.0.0' @@ -235,7 +236,7 @@ jobs: AQUAPI_PASSWORD: ${{ secrets.AQUAPI_PASSWORD_SECRET }} AQUAPI_URL: ${{ secrets.AQUAPI_URL_DEV }} # Python Variables - PYTHON_TARGET_VERSION: '3.13' + PYTHON_TARGET_VERSION: ${{ matrix.python-version }} RELEASE_PYTHON: 'False' CTEST_PARALLEL_LEVEL: '8' @@ -250,7 +251,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.18.0" -i https://public.aquapi.aquaveo.com/aquaveo/dev/+simple + pip install --upgrade "xmsconan>=2.21.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 @@ -301,7 +302,7 @@ jobs: - name: Upload wheel artifact uses: actions/upload-artifact@v4 with: - name: wheel-${{ runner.os }} + name: wheel-${{ runner.os }}-py${{ matrix.python-version }} path: wheelhouse/*.whl if: matrix.build_type == 'Release' # Upload wheel to Aquapi @@ -349,7 +350,7 @@ jobs: fail-fast: false matrix: platform: [windows-2022] - python-version: ["3.10", "3.13"] + python-version: ["3.10", "3.13", "3.14"] compiler-version: [17] build_type: [Release, Debug] @@ -398,7 +399,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.18.0" -i https://public.aquapi.aquaveo.com/aquaveo/dev/+simple + python -m pip install --upgrade "xmsconan>=2.21.0" -i https://public.aquapi.aquaveo.com/aquaveo/dev/+simple # Setup Visual Studio - name: Setup Visual Studio uses: microsoft/setup-msbuild@v2 diff --git a/build.toml b/build.toml index 1ed66725..ac0bd24a 100644 --- a/build.toml +++ b/build.toml @@ -103,9 +103,16 @@ pybind_headers = [ ] [ci] -python_versions = ["3.10", "3.13"] +python_versions = ["3.10", "3.13", "3.14"] +mac_python_versions = ["3.13", "3.14"] +linux_python_versions = ["3.13", "3.14"] coverage = true [coverage] +# Pinned so adding 3.14 to the build matrix does not also move the coverage +# gate. Coverage otherwise follows the highest [ci].linux_python_versions +# entry, which would have shifted it 3.13 -> 3.14 as a side effect of this +# change. Revisit once 3.14 is proven across the suite. +python_version = "3.13" cpp_threshold = 0 python_threshold = 0