From 32091a16549136beeb6dc41e521db897f039f76d Mon Sep 17 00:00:00 2001 From: Kevin Marchais Date: Mon, 26 Jan 2026 13:38:02 +0100 Subject: [PATCH 1/5] Update conda_build_config.yaml for carma to support Python 3.14 --- carma.recipe/conda_build_config.yaml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/carma.recipe/conda_build_config.yaml b/carma.recipe/conda_build_config.yaml index ee8077a02..a5b366701 100755 --- a/carma.recipe/conda_build_config.yaml +++ b/carma.recipe/conda_build_config.yaml @@ -1,10 +1,9 @@ python: - - 3.8 - - 3.9 - 3.10 - 3.11 - 3.12 - 3.13 + - 3.14 numpy: - 1.26 From 21b27f8a8208cf2c6150603b267a9d98b9466453 Mon Sep 17 00:00:00 2001 From: Kevin Marchais Date: Mon, 26 Jan 2026 13:41:36 +0100 Subject: [PATCH 2/5] Refactor carma-conda.yml: matrix strategy, PR triggers, API token auth - Consolidate 4 jobs into 1 matrix job - Add PR trigger for carma.recipe/** and workflow file changes - Add upload input (default: true), only upload on workflow_dispatch - Switch from username/password to ANACONDA_API_TOKEN - Update actions to v6/v3 --- .github/workflows/carma-conda.yml | 110 +++++++++++------------------- 1 file changed, 41 insertions(+), 69 deletions(-) diff --git a/.github/workflows/carma-conda.yml b/.github/workflows/carma-conda.yml index 42527c6a5..e8f4cdaba 100644 --- a/.github/workflows/carma-conda.yml +++ b/.github/workflows/carma-conda.yml @@ -2,81 +2,53 @@ name: Create conda package for carma on: workflow_dispatch: + inputs: + upload: + description: 'Upload packages to Anaconda' + type: boolean + default: true + pull_request: + paths: + - 'carma.recipe/**' + - '.github/workflows/carma-conda.yml' jobs: - Linux: - name: Linux - runs-on: "ubuntu-latest" - steps: - - uses: actions/checkout@v2 - - uses: conda-incubator/setup-miniconda@v2 - with: - miniconda-version: "latest" - activate-environment: packaging - - name: Conda build for Linux - shell: bash -l {0} - run: | - conda update --all - conda install python=3.11 conda-build anaconda-client conda-verify - conda-build carma.recipe -c conda-forge -c set3mah --output-folder . - anaconda login --username ${{ secrets.ANACONDA_USERNAME }} --password ${{ secrets.ANACONDA_PASSWORD }} - anaconda upload linux-64/*.conda --force - anaconda logout - - macos: - name: MacOS - runs-on: "macos-14" + build: + name: ${{ matrix.os }} + runs-on: ${{ matrix.runner }} + strategy: + fail-fast: false + matrix: + include: + - os: Linux + runner: ubuntu-latest + target-platform: linux-64 + - os: MacOS + runner: macos-latest + target-platform: osx-arm64 + - os: Windows + runner: windows-latest + target-platform: win-64 + steps: - - uses: actions/checkout@v2 - - uses: conda-incubator/setup-miniconda@v2 + - uses: actions/checkout@v6 + + - uses: conda-incubator/setup-miniconda@v3 with: - miniconda-version: "latest" + miniconda-version: latest activate-environment: packaging - - name: Conda build for MacOS + + - name: Conda build shell: bash -l {0} run: | - conda update --all - conda install python=3.11 conda-build anaconda-client conda-verify - conda-build carma.recipe -c conda-forge -c set3mah --output-folder . - anaconda login --username ${{ secrets.ANACONDA_USERNAME }} --password ${{ secrets.ANACONDA_PASSWORD }} - anaconda upload osx-64/*.conda --force - anaconda logout - - macos-arm64: - name: MacOS-arm64 - runs-on: "macos-14-arm64" - steps: - - uses: actions/checkout@v2 - - uses: conda-incubator/setup-miniconda@v2 - with: - miniconda-version: "latest" - activate-environment: packaging - - name: Conda build for MacOS - arm64 - shell: bash -l {0} - run: | - conda update --all - conda install python=3.11 conda-build anaconda-client conda-verify - conda-build carma.recipe -c conda-forge -c set3mah --output-folder . - anaconda login --username ${{ secrets.ANACONDA_USERNAME }} --password ${{ secrets.ANACONDA_PASSWORD }} - anaconda upload osx-arm64/*.conda --force - anaconda logout + conda update --all -y + conda install -y conda-build anaconda-client conda-verify + conda-build carma.recipe -c conda-forge -c set3mah --output-folder . - - windows: - name: Windows - runs-on: "windows-latest" - steps: - - uses: actions/checkout@v2 - - uses: conda-incubator/setup-miniconda@v2 - with: - miniconda-version: "latest" - activate-environment: packaging - - name: Conda build for Windows - shell: pwsh + - name: Upload to Anaconda + if: github.event_name == 'workflow_dispatch' && inputs.upload + shell: bash -l {0} + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} run: | - conda update --all - conda install python=3.11 conda-build anaconda-client conda-verify - conda-build carma.recipe -c conda-forge -c set3mah --output-folder . - anaconda login --username ${{ secrets.ANACONDA_USERNAME }} --password ${{ secrets.ANACONDA_PASSWORD }} - anaconda upload win-64/*.conda --force - anaconda logout + anaconda upload ${{ matrix.target-platform }}/*.conda --force From 9e8cef645332fa73910e8c70daa2c08903e1e361 Mon Sep 17 00:00:00 2001 From: Kevin Marchais Date: Mon, 26 Jan 2026 15:17:22 +0100 Subject: [PATCH 3/5] Make carma package Python-version independent carma is a header-only C++ library - it doesn't need Python-specific builds. Changes: - Remove python and numpy from requirements (not needed for headers) - Remove Python version matrix from conda_build_config.yaml - Keep only armadillo and pybind11 as dependencies --- carma.recipe/conda_build_config.yaml | 11 ++--------- carma.recipe/meta.yaml | 6 ------ 2 files changed, 2 insertions(+), 15 deletions(-) diff --git a/carma.recipe/conda_build_config.yaml b/carma.recipe/conda_build_config.yaml index a5b366701..6699be3e1 100755 --- a/carma.recipe/conda_build_config.yaml +++ b/carma.recipe/conda_build_config.yaml @@ -1,9 +1,2 @@ -python: - - 3.10 - - 3.11 - - 3.12 - - 3.13 - - 3.14 - -numpy: - - 1.26 +# No Python matrix needed - carma is a header-only library +# Package is Python-version independent diff --git a/carma.recipe/meta.yaml b/carma.recipe/meta.yaml index 309d89368..9821e0960 100755 --- a/carma.recipe/meta.yaml +++ b/carma.recipe/meta.yaml @@ -13,17 +13,11 @@ requirements: build: - git # [win] - cmake - - python - {{ compiler('cxx') }} - ninja # [win] host: - - python - - pip - armadillo - - numpy>=1.24 - pybind11 run: - - python - armadillo - - numpy>=1.24 - pybind11 From 9c809772d393407c27c46f824fcaacdce54a0fdc Mon Sep 17 00:00:00 2001 From: Kevin Marchais Date: Mon, 26 Jan 2026 15:46:55 +0100 Subject: [PATCH 4/5] Remove carma recipe and workflow - use conda-forge instead carma is available on conda-forge as a Python-version independent header-only package. No need to maintain a separate build. --- .github/workflows/carma-conda.yml | 54 ---------------------------- carma.recipe/bld.bat | 8 ----- carma.recipe/build.sh | 13 ------- carma.recipe/conda_build_config.yaml | 2 -- carma.recipe/meta.yaml | 23 ------------ 5 files changed, 100 deletions(-) delete mode 100644 .github/workflows/carma-conda.yml delete mode 100644 carma.recipe/bld.bat delete mode 100755 carma.recipe/build.sh delete mode 100755 carma.recipe/conda_build_config.yaml delete mode 100755 carma.recipe/meta.yaml diff --git a/.github/workflows/carma-conda.yml b/.github/workflows/carma-conda.yml deleted file mode 100644 index e8f4cdaba..000000000 --- a/.github/workflows/carma-conda.yml +++ /dev/null @@ -1,54 +0,0 @@ -name: Create conda package for carma - -on: - workflow_dispatch: - inputs: - upload: - description: 'Upload packages to Anaconda' - type: boolean - default: true - pull_request: - paths: - - 'carma.recipe/**' - - '.github/workflows/carma-conda.yml' - -jobs: - build: - name: ${{ matrix.os }} - runs-on: ${{ matrix.runner }} - strategy: - fail-fast: false - matrix: - include: - - os: Linux - runner: ubuntu-latest - target-platform: linux-64 - - os: MacOS - runner: macos-latest - target-platform: osx-arm64 - - os: Windows - runner: windows-latest - target-platform: win-64 - - steps: - - uses: actions/checkout@v6 - - - uses: conda-incubator/setup-miniconda@v3 - with: - miniconda-version: latest - activate-environment: packaging - - - name: Conda build - shell: bash -l {0} - run: | - conda update --all -y - conda install -y conda-build anaconda-client conda-verify - conda-build carma.recipe -c conda-forge -c set3mah --output-folder . - - - name: Upload to Anaconda - if: github.event_name == 'workflow_dispatch' && inputs.upload - shell: bash -l {0} - env: - ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} - run: | - anaconda upload ${{ matrix.target-platform }}/*.conda --force diff --git a/carma.recipe/bld.bat b/carma.recipe/bld.bat deleted file mode 100644 index 07249ba59..000000000 --- a/carma.recipe/bld.bat +++ /dev/null @@ -1,8 +0,0 @@ -cmake -G"Visual Studio 17 2022" ^ - -D CMAKE_BUILD_TYPE:STRING=Release ^ - -D CMAKE_INSTALL_PREFIX=%PREFIX%/Library ^ - -D CARMA_INSTALL_LIB=ON ^ - -S . -B build - -cmake --build build --config Release -cmake --install build diff --git a/carma.recipe/build.sh b/carma.recipe/build.sh deleted file mode 100755 index 9d9a22990..000000000 --- a/carma.recipe/build.sh +++ /dev/null @@ -1,13 +0,0 @@ -#!/bin/bash - -set -ex - -cd $SRC_DIR - -cmake ${CMAKE_ARGS} -S . -B build \ - -D CMAKE_BUILD_TYPE=Release \ - -D CMAKE_INSTALL_PREFIX:path=$PREFIX \ - -D CARMA_INSTALL_LIB=ON - -cmake --build build --config Release -cmake --install build diff --git a/carma.recipe/conda_build_config.yaml b/carma.recipe/conda_build_config.yaml deleted file mode 100755 index 6699be3e1..000000000 --- a/carma.recipe/conda_build_config.yaml +++ /dev/null @@ -1,2 +0,0 @@ -# No Python matrix needed - carma is a header-only library -# Package is Python-version independent diff --git a/carma.recipe/meta.yaml b/carma.recipe/meta.yaml deleted file mode 100755 index 9821e0960..000000000 --- a/carma.recipe/meta.yaml +++ /dev/null @@ -1,23 +0,0 @@ -package: - name: carma - version: 0.8.0 - -source: - git_url: https://github.com/RUrlus/carma - git_tag: v0.8.0 - -build: - number: 0 - -requirements: - build: - - git # [win] - - cmake - - {{ compiler('cxx') }} - - ninja # [win] - host: - - armadillo - - pybind11 - run: - - armadillo - - pybind11 From 93bf67e26e8f18343b7eae455c8fdf020d804071 Mon Sep 17 00:00:00 2001 From: Kevin Marchais Date: Mon, 26 Jan 2026 16:05:14 +0100 Subject: [PATCH 5/5] Use conda-forge carma in environment_win.yml --- environment_win.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/environment_win.yml b/environment_win.yml index a397726ee..7074b37c0 100644 --- a/environment_win.yml +++ b/environment_win.yml @@ -1,8 +1,8 @@ name: my-env channels: - - set3mah - conda-forge + - set3mah dependencies: - pkg-config @@ -16,7 +16,7 @@ dependencies: - gtest - pybind11 - armadillo >= 12.6 - - set3mah::carma + - carma - pytest - ninja - mkl