From e56fe3fe1525e420aa7f7d2a010a2055fd71ec1a Mon Sep 17 00:00:00 2001 From: Bill Dolinar Date: Mon, 23 Mar 2026 15:53:26 -0600 Subject: [PATCH] Regenerate CI from xmsconan 2.6.0, update dependencies, standardize .gitignore --- .github/workflows/XmsInterp-CI.yaml | 144 +++++++++++++++++----------- .gitignore | 103 +++++++++----------- build.toml | 5 +- 3 files changed, 137 insertions(+), 115 deletions(-) diff --git a/.github/workflows/XmsInterp-CI.yaml b/.github/workflows/XmsInterp-CI.yaml index 742a9322..8571535d 100644 --- a/.github/workflows/XmsInterp-CI.yaml +++ b/.github/workflows/XmsInterp-CI.yaml @@ -1,10 +1,18 @@ -name: XmsInterp-Conan2 +# Required repository secrets: +# CONAN2_USER_SECRET - Conan remote login username +# CONAN2_PASSWORD_SECRET - Conan remote login password +# AQUAPI_USERNAME_SECRET - devpi username for wheel uploads +# AQUAPI_PASSWORD_SECRET - devpi password for wheel uploads +# AQUAPI_URL_DEV - devpi index URL for wheel uploads +# AQUAVEO_GITHUB_TOKEN - GitHub token for release asset uploads +# +# Generated by xmsconan_ci — do not edit manually. + +name: XmsInterp-CI on: push: pull_request: - # schedule: - # - cron: "0 12 * * 1" jobs: # ---------------------------------------------------------------------------------------------- @@ -57,9 +65,9 @@ jobs: MATRIX_NAME: ${{ matrix.platform }}-Clang${{ matrix.compiler-version }}-${{ matrix.build_type }} # Library Variables LIBRARY_NAME: xmsinterp - XMS_VERSION: 7.0.0 + XMS_VERSION: '0.0.0' # Conan Variables - CONAN_REFERENCE: xmsinterp/7.0.0 + CONAN_REFERENCE: xmsinterp/0.0.0 CONAN_ARCHS: x86_64 CONAN_USERNAME: aquaveo CONAN_CHANNEL: testing @@ -95,17 +103,11 @@ jobs: - name: Install Python Dependencies run: | python -m pip install --upgrade pip - pip install conan devpi-client wheel cibuildwheel - python -m pip install xmsconan>=2.2.1 -i https://public.aquapi.aquaveo.com/aquaveo/dev/+simple + pip install conan devpi-client wheel + python -m pip install xmsconan>=2.6.0 -i https://public.aquapi.aquaveo.com/aquaveo/dev/+simple # Setup Conan - name: Setup Conan - run: | - conan --version - conan profile detect - conan remote add aquaveo ${{ env.CONAN_REMOTE_URL }} --force --index 0 - conan remote remove conancenter - conan remote login aquaveo - conan remote list + run: xmsconan_conan_setup --remote-url ${{ env.CONAN_REMOTE_URL }} --login --remove-conancenter shell: bash # Get Tag Name - name: Get Tag @@ -130,14 +132,30 @@ jobs: with: CONAN_CHANNEL: stable AQUAPI_URL: ${{ secrets.AQUAPI_URL_DEV}} - if: startsWith(github.ref, 'refs/tags/') && startsWith(env.BRANCH_NAME, ${{ env.XMS_VERSION }}) + if: ${{ startsWith(github.ref, 'refs/tags/') && startsWith(env.BRANCH_NAME, env.XMS_VERSION) }} # Generate XMS Conan - name: Generate XMS Conan run: xmsconan_gen --version ${{ env.XMS_VERSION }} build.toml # Build the Conan Package - name: Build the Conan Packages - run: "python build.py --enable-macos-pybind --filter=\"{\\\"build_type\\\": \\\"${{ matrix.build_type }}\\\"}\"" + run: "python build.py --filter=\"{\\\"build_type\\\": \\\"${{ matrix.build_type }}\\\"}\" --wheel-dir wheelhouse" shell: bash + # Repair wheel (Release only) + - name: Repair wheel + run: xmsconan_wheel_repair --wheel-dir wheelhouse --platform macos + shell: bash + if: matrix.build_type == 'Release' + - name: Upload wheel artifact + uses: actions/upload-artifact@v4 + with: + name: wheel-${{ runner.os }} + path: wheelhouse/*.whl + if: matrix.build_type == 'Release' + # Upload wheel to Aquapi + - name: Upload wheel to Aquapi + run: xmsconan_wheel_deploy --wheel-dir wheelhouse + shell: bash + if: startsWith(github.ref, 'refs/tags/') && matrix.build_type == 'Release' # Upload Release to Conan - name: Upload Releases to Conan run: "python build.py --skip-build --upload --filter=\"{\\\"build_type\\\": \\\"${{ matrix.build_type }}\\\"}\"" @@ -171,24 +189,24 @@ jobs: # LINUX # ---------------------------------------------------------------------------------------------- linux: - name: GCC-${{ matrix.compiler-version }} (${{ matrix.build_type }}, ${{ matrix.python-version }}, Linux) - runs-on: ${{ matrix.platform }} + name: GCC-13 (${{ matrix.build_type }}, Linux) + runs-on: ubuntu-latest + + container: + image: ghcr.io/aquaveo/conan-gcc13-py3.13:latest strategy: fail-fast: false matrix: - platform: [ubuntu-latest] - python-version: ['3.13'] - compiler-version: [15] build_type: [Release, Debug] env: - MATRIX_NAME: ${{ matrix.platform }}-GCC${{ matrix.compiler-version }}-${{ matrix.build_type }} + MATRIX_NAME: linux-GCC13-${{ matrix.build_type }} # Library Variables LIBRARY_NAME: xmsinterp - XMS_VERSION: 7.0.0 + XMS_VERSION: '0.0.0' # Conan Variables - CONAN_REFERENCE: xmsinterp/7.0.0 + CONAN_REFERENCE: xmsinterp/0.0.0 CONAN_ARCHS: x86_64 CONAN_USERNAME: aquaveo CONAN_CHANNEL: testing @@ -201,33 +219,21 @@ jobs: AQUAPI_PASSWORD: ${{ secrets.AQUAPI_PASSWORD_SECRET }} AQUAPI_URL: ${{ secrets.AQUAPI_URL_DEV }} # Python Variables - PYTHON_TARGET_VERSION: ${{ matrix.python-version }} + PYTHON_TARGET_VERSION: '3.13' RELEASE_PYTHON: 'False' steps: # Checkout Sources - name: Checkout Source uses: actions/checkout@v2 - # Setup Python - - name: Set up Python 3.13 - uses: actions/setup-python@v5 - with: - python-version: '3.13' - # Setup GCC G++ # Install Python Dependencies - name: Install Python Dependencies run: | - python -m pip install --upgrade pip - pip install conan devpi-client wheel cibuildwheel - python -m pip install xmsconan>=2.2.1 -i https://public.aquapi.aquaveo.com/aquaveo/dev/+simple + pip install conan devpi-client wheel + pip install xmsconan>=2.6.0 -i https://public.aquapi.aquaveo.com/aquaveo/dev/+simple # Setup Conan - name: Setup Conan - run: | - conan --version - conan profile detect - conan remote add aquaveo ${{ env.CONAN_REMOTE_URL }} --force --index 0 - conan remote login aquaveo - conan remote list + run: xmsconan_conan_setup --remote-url ${{ env.CONAN_REMOTE_URL }} --login shell: bash # Get Tag Name - name: Get Tag @@ -242,7 +248,7 @@ jobs: XMS_VERSION: ${{ steps.gitTag.outputs.tag }} CONAN_UPLOAD: https://conan.aquaveo.com RELEASE_PYTHON: 'True' - if: startsWith(github.ref, 'refs/tags/') + if: startsWith(github.ref, 'refs/tags/') # Check for release branch - name: Get Branch Name id: gitBranch @@ -252,14 +258,30 @@ jobs: with: CONAN_CHANNEL: stable AQUAPI_URL: ${{ secrets.AQUAPI_URL_DEV }} - if: startsWith(github.ref, 'refs/tags/') && startsWith(env.BRANCH_NAME, ${{ env.XMS_VERSION }}) + if: ${{ startsWith(github.ref, 'refs/tags/') && startsWith(env.BRANCH_NAME, env.XMS_VERSION) }} # Generate XMS Conan - name: Generate XMS Conan 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 }}\\\"}\"" + run: "python build.py --filter=\"{\\\"build_type\\\": \\\"${{ matrix.build_type }}\\\"}\" --wheel-dir wheelhouse" + shell: bash + # Repair wheel (Release only) + - name: Repair wheel + run: xmsconan_wheel_repair --wheel-dir wheelhouse --platform linux shell: bash + if: matrix.build_type == 'Release' + - name: Upload wheel artifact + uses: actions/upload-artifact@v4 + with: + name: wheel-${{ runner.os }} + path: wheelhouse/*.whl + if: matrix.build_type == 'Release' + # Upload wheel to Aquapi + - name: Upload wheel to Aquapi + run: xmsconan_wheel_deploy --wheel-dir wheelhouse + shell: bash + if: startsWith(github.ref, 'refs/tags/') && matrix.build_type == 'Release' # Upload Release to Conan - name: Upload Releases to Conan run: "python build.py --skip-build --upload --filter=\"{\\\"build_type\\\": \\\"${{ matrix.build_type }}\\\"}\"" @@ -308,9 +330,9 @@ jobs: MATRIX_NAME: ${{ matrix.platform }}-VS${{ matrix.compiler-version }}-${{ matrix.build_type }} # Library Variables LIBRARY_NAME: xmsinterp - XMS_VERSION: 7.0.0 + XMS_VERSION: '0.0.0' # Conan Variables - CONAN_REFERENCE: xmsinterp/7.0.0 + CONAN_REFERENCE: xmsinterp/0.0.0 CONAN_ARCHS: x86_64 CONAN_USERNAME: aquaveo CONAN_CHANNEL: testing @@ -344,19 +366,14 @@ jobs: - name: Install Python Dependencies run: | python -m pip install --upgrade pip - pip install conan devpi-client wheel cibuildwheel - python -m pip install xmsconan>=2.2.1 -i https://public.aquapi.aquaveo.com/aquaveo/dev/+simple + pip install conan devpi-client wheel + python -m pip install xmsconan>=2.6.0 -i https://public.aquapi.aquaveo.com/aquaveo/dev/+simple # Setup Visual Studio - name: Setup Visual Studio uses: microsoft/setup-msbuild@v2 # Setup Conan - name: Setup Conan - run: | - conan --version - conan profile detect - conan remote add aquaveo ${{ env.CONAN_REMOTE_URL }} --force --index 0 - conan remote login aquaveo - conan remote list + run: xmsconan_conan_setup --remote-url ${{ env.CONAN_REMOTE_URL }} --login shell: cmd # Get Tag Name - name: Get Tag @@ -381,14 +398,30 @@ jobs: with: CONAN_CHANNEL: stable AQUAPI_URL: ${{ secrets.AQUAPI_URL_DEV }} - if: startsWith(github.ref, 'refs/tags/') && startsWith(env.BRANCH_NAME, ${{ env.XMS_VERSION }}) + if: ${{ startsWith(github.ref, 'refs/tags/') && startsWith(env.BRANCH_NAME, env.XMS_VERSION) }} # Generate XMS Conan - name: Generate XMS Conan 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 }}\\\"}\"" + run: "python build.py --filter=\"{\\\"build_type\\\": \\\"${{ matrix.build_type }}\\\"}\" --wheel-dir wheelhouse" shell: cmd + # Repair wheel (Release only) + - name: Repair wheel + run: xmsconan_wheel_repair --wheel-dir wheelhouse --platform windows + shell: bash + if: matrix.build_type == 'Release' + - name: Upload wheel artifact + uses: actions/upload-artifact@v4 + with: + name: wheel-${{ runner.os }} + path: wheelhouse/*.whl + if: matrix.build_type == 'Release' + # Upload wheel to Aquapi + - name: Upload wheel to Aquapi + run: xmsconan_wheel_deploy --wheel-dir wheelhouse + shell: bash + if: startsWith(github.ref, 'refs/tags/') && matrix.build_type == 'Release' # Upload Release to Conan - name: Upload Releases to Conan run: "python build.py --skip-build --upload --filter=\"{\\\"build_type\\\": \\\"${{ matrix.build_type }}\\\"}\"" @@ -417,4 +450,3 @@ jobs: asset_name: ${{ env.MATRIX_NAME }}.tar.gz asset_content_type: application/zip if: startsWith(github.ref, 'refs/tags/') - diff --git a/.gitignore b/.gitignore index 4e21cb4a..82da5231 100644 --- a/.gitignore +++ b/.gitignore @@ -1,98 +1,87 @@ -# Conan Files -build.py +# ── Generated build files (Conan/CMake) ──────── CMakeLists.txt conanfile.py +build.py +xms_conan2_file.py _package/pyproject.toml -# Misc -*.DS_STORE -*~ -*.pyc +# ── Build output ─────────────────────────────── build/ +build_*/ +pybuild/ +build_py/ +build_test/ test_package/build/ +wheelhouse/ -# IDE Files -.*.swp -*.swo -.lvimrc -.idea -.vscode -cmake-build-debug/ -cmake-build-release/ - -# Prerequisites +# ── Compiled artifacts ───────────────────────── *.d - -# Compiled Object files *.slo *.lo *.o *.obj - -# Precompiled Headers *.gch *.pch - -# Compiled Dynamic libraries *.so *.dylib *.dll *.pyd - -# Fortran module files -*.mod -*.smod - -# Compiled Static libraries *.lai *.la *.a *.lib - -# Executables *.exe *.out *.app +*.mod +*.smod -# Doxygen -Doxygen/*.tag -Doxygen/html/*.css -Doxygen/html/*.html -Doxygen/html/*.js -Doxygen/html/*.png -Doxygen/html/search -Doxygen/html/pydocs/* -doxy_warn.log +# ── Python ───────────────────────────────────── +*.pyc +*.pyi +.venv/ +.mypy_cache/ -# Sphinx -pydocs/build +# ── IDE & editor ─────────────────────────────── +.*.swp +*.swo +*~ +*.TMP +.lvimrc +.idea/ +.vscode/ +.vs/ +.junie/ +cmake-build-*/ + +# ── Documentation ────────────────────────────── +Doxygen/ +doc/_build/ +doxy_warn.log +pydocs/build/ sphinx_warnings.log -# Build Folders -build/* -pybuild/* -build_py/* -build_test/* +# ── Coverage ─────────────────────────────────── +coverage_report/ +*.profraw +*.profdata +*.gcda +*.gcno -# AI assistant configuration (local only) +# ── Local configuration ─────────────────────── .claude/ CLAUDE.md CLAUDE.local.md .envrc - -# CMake presets (local configuration) CMakePresets.json CMakeUserPresets.json **/CMakeUserPresets.json - -# Conan profiles (local configuration) conan_profiles/ +docker-compose.yml -# Coverage artifacts -coverage_report/ -*.profraw -*.profdata - -# clangd +# ── Tooling caches ───────────────────────────── compile_commands.json .cache/ + +# ── OS-specific ──────────────────────────────── +.DS_Store diff --git a/build.toml b/build.toml index 03414090..4095dd4d 100644 --- a/build.toml +++ b/build.toml @@ -1,9 +1,10 @@ library_name = "xmsinterp" description = "Interpolation library for XMS products" +ci_type = "github" xms_dependencies = [ - { name = "xmscore", version = "7.0.1" }, - { name = "xmsgrid", version = "9.0.4" }, + { name = "xmscore", version = "7.0.4" }, + { name = "xmsgrid", version = "9.0.5" }, ] python_namespaced_dir = "interp"