From 77debf2124a08997d5d295ed295dc945b4da2a33 Mon Sep 17 00:00:00 2001 From: Vineet Bansal Date: Mon, 2 Feb 2026 11:50:41 -0500 Subject: [PATCH 01/13] Triggering cibuildwheel to see if it picks up 3.14 --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index d7284cfb..fd18ac6e 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@ [![PyPI version](https://badge.fury.io/py/osqp.svg)](https://badge.fury.io/py/osqp) -[![Python 3.8‒3.13](https://img.shields.io/badge/python-3.8%E2%80%923.13-blue)](https://www.python.org) +[![Python 3.8‒3.14](https://img.shields.io/badge/python-3.8%E2%80%923.14-blue)](https://www.python.org) [![Build](https://github.com/osqp/osqp-python/actions/workflows/build_default.yml/badge.svg)](https://github.com/osqp/osqp-python/actions/workflows/build_default.yml) # OSQP Python From 8dcddf240a508c784a420fd6ac7e01468ef2a210 Mon Sep 17 00:00:00 2001 From: Vineet Bansal Date: Mon, 2 Feb 2026 12:18:49 -0500 Subject: [PATCH 02/13] bumped cibw marketplace action version --- .github/workflows/build_cuda.yml | 2 +- .github/workflows/build_cuda_windows.yml | 2 +- .github/workflows/build_default.yml | 2 +- .github/workflows/build_mkl.yml | 2 +- .github/workflows/build_mkl_windows.yml | 2 +- .github/workflows/build_wasm.yml | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/build_cuda.yml b/.github/workflows/build_cuda.yml index 3b627500..a32a008f 100644 --- a/.github/workflows/build_cuda.yml +++ b/.github/workflows/build_cuda.yml @@ -23,7 +23,7 @@ jobs: - uses: actions/checkout@master - name: Build wheels - uses: pypa/cibuildwheel@v2.23 + uses: pypa/cibuildwheel@v3.3.1 with: package-dir: backend/cuda config-file: backend/cuda/cibuildwheel.toml diff --git a/.github/workflows/build_cuda_windows.yml b/.github/workflows/build_cuda_windows.yml index b4f887ed..9de533ab 100644 --- a/.github/workflows/build_cuda_windows.yml +++ b/.github/workflows/build_cuda_windows.yml @@ -51,7 +51,7 @@ jobs: del %TEMP%\cuda.exe - name: Build wheels - uses: pypa/cibuildwheel@v2.23 + uses: pypa/cibuildwheel@v2 with: package-dir: backend/cuda config-file: backend/cuda/cibuildwheel.toml diff --git a/.github/workflows/build_default.yml b/.github/workflows/build_default.yml index da05f546..af61259b 100644 --- a/.github/workflows/build_default.yml +++ b/.github/workflows/build_default.yml @@ -56,7 +56,7 @@ jobs: - uses: actions/checkout@master - name: Build wheels - uses: pypa/cibuildwheel@v2.23 + uses: pypa/cibuildwheel@v3.3.1 with: config-file: cibuildwheel.toml output-dir: wheelhouse diff --git a/.github/workflows/build_mkl.yml b/.github/workflows/build_mkl.yml index 1457633a..496b7465 100644 --- a/.github/workflows/build_mkl.yml +++ b/.github/workflows/build_mkl.yml @@ -25,7 +25,7 @@ jobs: - uses: actions/checkout@master - name: Build wheels - uses: pypa/cibuildwheel@v2.23 + uses: pypa/cibuildwheel@v3.3.1 with: package-dir: backend/mkl config-file: backend/mkl/cibuildwheel.toml diff --git a/.github/workflows/build_mkl_windows.yml b/.github/workflows/build_mkl_windows.yml index c4c6af4c..f4bbe82f 100644 --- a/.github/workflows/build_mkl_windows.yml +++ b/.github/workflows/build_mkl_windows.yml @@ -49,7 +49,7 @@ jobs: rd /s/q "webimage_base_extracted" - name: Build wheels - uses: pypa/cibuildwheel@v2.23 + uses: pypa/cibuildwheel@v3.3.1 with: package-dir: backend/mkl config-file: backend/mkl/cibuildwheel.toml diff --git a/.github/workflows/build_wasm.yml b/.github/workflows/build_wasm.yml index c1caab96..7f516ff8 100644 --- a/.github/workflows/build_wasm.yml +++ b/.github/workflows/build_wasm.yml @@ -19,7 +19,7 @@ jobs: - uses: actions/checkout@master - name: Build wheels - uses: pypa/cibuildwheel@v2.23 + uses: pypa/cibuildwheel@v3.3.1 env: CIBW_PLATFORM: pyodide with: From c4b789c98dde39bbfbab805dd6ffcbc4ec48aec8 Mon Sep 17 00:00:00 2001 From: Vineet Bansal Date: Mon, 2 Feb 2026 13:29:08 -0500 Subject: [PATCH 03/13] excluded 313t/314t; reduced plats --- .github/workflows/build_cuda.yml | 36 ------------- .github/workflows/build_cuda_windows.yml | 64 ------------------------ .github/workflows/build_default.yml | 18 +++---- .github/workflows/build_mkl.yml | 38 -------------- .github/workflows/build_mkl_windows.yml | 62 ----------------------- cibuildwheel.toml | 2 +- 6 files changed, 10 insertions(+), 210 deletions(-) delete mode 100644 .github/workflows/build_cuda.yml delete mode 100644 .github/workflows/build_cuda_windows.yml delete mode 100644 .github/workflows/build_mkl.yml delete mode 100644 .github/workflows/build_mkl_windows.yml diff --git a/.github/workflows/build_cuda.yml b/.github/workflows/build_cuda.yml deleted file mode 100644 index a32a008f..00000000 --- a/.github/workflows/build_cuda.yml +++ /dev/null @@ -1,36 +0,0 @@ -name: Build CUDA Linux - -on: - push: - branches: - - master - tags: - - '*' - pull_request: - branches: - - master - -jobs: - build_wheels: - name: Build wheel on ${{ matrix.os }} - runs-on: ${{ matrix.os }} - strategy: - fail-fast: false - matrix: - os: [ubuntu-latest] - - steps: - - uses: actions/checkout@master - - - name: Build wheels - uses: pypa/cibuildwheel@v3.3.1 - with: - package-dir: backend/cuda - config-file: backend/cuda/cibuildwheel.toml - output-dir: wheelhouse - - - name: Upload artifacts to github - uses: actions/upload-artifact@v5 - with: - name: wheels-cuda-${{ matrix.os }} - path: ./wheelhouse diff --git a/.github/workflows/build_cuda_windows.yml b/.github/workflows/build_cuda_windows.yml deleted file mode 100644 index 9de533ab..00000000 --- a/.github/workflows/build_cuda_windows.yml +++ /dev/null @@ -1,64 +0,0 @@ -name: Build CUDA Windows - -on: - push: - branches: - - master - tags: - - '*' - pull_request: - branches: - - master - -env: - CUDATOOLKIT_URL: https://developer.download.nvidia.com/compute/cuda/12.6.3/local_installers/cuda_12.6.3_561.17_windows.exe - CUDATOOLKIT_COMPONENTS: nvcc_12.6 cudart_12.6 cublas_dev_12.6 curand_dev_12.6 cusparse_dev_12.6 thrust_12.6 visual_studio_integration_12.6 - -jobs: - build_wheels: - name: Build wheel on ${{ matrix.os }} - runs-on: ${{ matrix.os }} - defaults: - run: - shell: cmd - strategy: - fail-fast: false - matrix: - os: [windows-2022] - - steps: - - uses: actions/checkout@master - - - name: Add msbuild to PATH - uses: microsoft/setup-msbuild@v2.0.0 - - - name: Add Windows SDK - run: | - choco install windows-sdk-8.1 - - - name: cache install cuda - id: cache-install - uses: actions/cache@v4 - with: - path: C:\Program Files (x86)\Intel\oneAPI\ - key: install-${{ env.CUDATOOLKIT_URL }}-${{ env.CUDATOOLKIT_COMPONENTS }} - - - name: install cuda - if: steps.cache-install.outputs.cache-hit != 'true' - run: | - curl.exe --output %TEMP%\cuda.exe --url %CUDATOOLKIT_URL% --retry 5 --retry-delay 5 - start /b /wait %TEMP%\cuda.exe -s %CUDATOOLKIT_COMPONENTS% - del %TEMP%\cuda.exe - - - name: Build wheels - uses: pypa/cibuildwheel@v2 - with: - package-dir: backend/cuda - config-file: backend/cuda/cibuildwheel.toml - output-dir: wheelhouse - - - name: Upload artifacts to github - uses: actions/upload-artifact@v5 - with: - name: wheels-cuda-${{ matrix.os }} - path: ./wheelhouse diff --git a/.github/workflows/build_default.yml b/.github/workflows/build_default.yml index af61259b..3f799060 100644 --- a/.github/workflows/build_default.yml +++ b/.github/workflows/build_default.yml @@ -42,15 +42,15 @@ jobs: include: - os: ubuntu-latest cibw_archs: "x86_64" - - os: ubuntu-24.04-arm - cibw_archs: "auto" - - os: windows-2022 - cibw_archs: "auto64" - # Include macos-15-intel to get Intel x86_64 macs and macos-latest to get the Aaarch64 macs - - os: macos-15-intel - cibw_archs: "x86_64" - - os: macos-latest - cibw_archs: "arm64" +# - os: ubuntu-24.04-arm +# cibw_archs: "auto" +# - os: windows-2022 +# cibw_archs: "auto64" +# # Include macos-15-intel to get Intel x86_64 macs and macos-latest to get the Aaarch64 macs +# - os: macos-15-intel +# cibw_archs: "x86_64" +# - os: macos-latest +# cibw_archs: "arm64" steps: - uses: actions/checkout@master diff --git a/.github/workflows/build_mkl.yml b/.github/workflows/build_mkl.yml deleted file mode 100644 index 496b7465..00000000 --- a/.github/workflows/build_mkl.yml +++ /dev/null @@ -1,38 +0,0 @@ -name: Build MKL Mac/Linux - -on: - push: - branches: - - master - tags: - - '*' - pull_request: - branches: - - master - -jobs: - build_wheels: - name: Build wheel on ${{ matrix.os }} - runs-on: ${{ matrix.os }} - strategy: - fail-fast: false - matrix: - # macos-latest now uses arm64 runners, but MKL is x86_64 only, so restrict to the macos-15-intel runners - # to get x86_64 architecture. - os: [ubuntu-latest, macos-15-intel] - - steps: - - uses: actions/checkout@master - - - name: Build wheels - uses: pypa/cibuildwheel@v3.3.1 - with: - package-dir: backend/mkl - config-file: backend/mkl/cibuildwheel.toml - output-dir: wheelhouse - - - name: Upload artifacts to github - uses: actions/upload-artifact@v5 - with: - name: wheels-mkl-${{ matrix.os }} - path: ./wheelhouse diff --git a/.github/workflows/build_mkl_windows.yml b/.github/workflows/build_mkl_windows.yml deleted file mode 100644 index f4bbe82f..00000000 --- a/.github/workflows/build_mkl_windows.yml +++ /dev/null @@ -1,62 +0,0 @@ -name: Build MKL Windows - -on: - push: - branches: - - master - tags: - - '*' - pull_request: - branches: - - master - -env: - # update urls for oneapi packages according to - # https://github.com/oneapi-src/oneapi-ci/blob/master/.github/workflows/build_all.yml - WINDOWS_BASEKIT_URL: https:/registrationcenter-download.intel.com/akdlm/IRC_NAS/c961e083-5685-4f0b-ada5-c6cf16f561dd/w_BaseKit_p_2023.1.0.47256_offline.exe - WINDOWS_BASEKIT_COMPONENTS: intel.oneapi.win.mkl.devel - - -jobs: - build_wheels: - name: Build wheel on ${{ matrix.os }} - runs-on: ${{ matrix.os }} - defaults: - run: - shell: cmd - strategy: - fail-fast: false - matrix: - os: [windows-2022] - - steps: - - uses: actions/checkout@master - - - name: cache install oneapi - id: cache-install - uses: actions/cache@v4 - with: - path: C:\Program Files (x86)\Intel\oneAPI\ - key: install-${{ env.WINDOWS_BASEKIT_URL }}-${{ env.WINDOWS_BASEKIT_COMPONENTS }} - - - name: install oneapi mkl - if: steps.cache-install.outputs.cache-hit != 'true' - run: | - curl.exe --output %TEMP%\webimage_base.exe --url %WINDOWS_BASEKIT_URL% --retry 5 --retry-delay 5 - start /b /wait %TEMP%\webimage_base.exe -s -x -f webimage_base_extracted --log extract_base.log - del %TEMP%\webimage_base.exe - webimage_base_extracted\bootstrapper.exe -s --action install --components=%WINDOWS_BASEKIT_COMPONENTS% --eula=accept -p=NEED_VS2017_INTEGRATION=0 -p=NEED_VS2019_INTEGRATION=0 --log-dir=. - rd /s/q "webimage_base_extracted" - - - name: Build wheels - uses: pypa/cibuildwheel@v3.3.1 - with: - package-dir: backend/mkl - config-file: backend/mkl/cibuildwheel.toml - output-dir: wheelhouse - - - name: Upload artifacts to github - uses: actions/upload-artifact@v5 - with: - name: wheels-mkl-${{ matrix.os }} - path: ./wheelhouse diff --git a/cibuildwheel.toml b/cibuildwheel.toml index a9082b9d..2cce27a5 100644 --- a/cibuildwheel.toml +++ b/cibuildwheel.toml @@ -1,6 +1,6 @@ [tool.cibuildwheel] build = "cp3*" -skip = ["cp36-*", "cp37-*", "*-win32", "*-manylinux_i686", "*-musllinux_*"] +skip = ["cp36-*", "cp37-*", "cp313t", "cp314t", "*-win32", "*-manylinux_i686", "*-musllinux_*"] build-verbosity = 1 before-build = "rm -rf {package}/osqp_sources/build" # Install CPU-only version of torch beforehand since that allows cibuildwheel From fc01038d15f14829829dd5ac73cb1a9cd47782d9 Mon Sep 17 00:00:00 2001 From: Vineet Bansal Date: Mon, 2 Feb 2026 13:50:00 -0500 Subject: [PATCH 04/13] typo --- .github/workflows/build_default.yml | 18 +++++++++--------- cibuildwheel.toml | 2 +- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/.github/workflows/build_default.yml b/.github/workflows/build_default.yml index 3f799060..af61259b 100644 --- a/.github/workflows/build_default.yml +++ b/.github/workflows/build_default.yml @@ -42,15 +42,15 @@ jobs: include: - os: ubuntu-latest cibw_archs: "x86_64" -# - os: ubuntu-24.04-arm -# cibw_archs: "auto" -# - os: windows-2022 -# cibw_archs: "auto64" -# # Include macos-15-intel to get Intel x86_64 macs and macos-latest to get the Aaarch64 macs -# - os: macos-15-intel -# cibw_archs: "x86_64" -# - os: macos-latest -# cibw_archs: "arm64" + - os: ubuntu-24.04-arm + cibw_archs: "auto" + - os: windows-2022 + cibw_archs: "auto64" + # Include macos-15-intel to get Intel x86_64 macs and macos-latest to get the Aaarch64 macs + - os: macos-15-intel + cibw_archs: "x86_64" + - os: macos-latest + cibw_archs: "arm64" steps: - uses: actions/checkout@master diff --git a/cibuildwheel.toml b/cibuildwheel.toml index 2cce27a5..cff46a62 100644 --- a/cibuildwheel.toml +++ b/cibuildwheel.toml @@ -1,6 +1,6 @@ [tool.cibuildwheel] build = "cp3*" -skip = ["cp36-*", "cp37-*", "cp313t", "cp314t", "*-win32", "*-manylinux_i686", "*-musllinux_*"] +skip = ["cp36-*", "cp37-*", "cp313t-*", "cp314t-*", "*-win32", "*-manylinux_i686", "*-musllinux_*"] build-verbosity = 1 before-build = "rm -rf {package}/osqp_sources/build" # Install CPU-only version of torch beforehand since that allows cibuildwheel From eb9fe519ba0a9266969ffc1a2088329c06b0ad87 Mon Sep 17 00:00:00 2001 From: Vineet Bansal Date: Mon, 2 Feb 2026 14:24:37 -0500 Subject: [PATCH 05/13] skipping torch testing on cp314 on mac --- .github/workflows/build_default.yml | 12 ++++++------ cibuildwheel.toml | 2 +- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/.github/workflows/build_default.yml b/.github/workflows/build_default.yml index af61259b..65dd665e 100644 --- a/.github/workflows/build_default.yml +++ b/.github/workflows/build_default.yml @@ -40,17 +40,17 @@ jobs: fail-fast: false matrix: include: - - os: ubuntu-latest - cibw_archs: "x86_64" +# - os: ubuntu-latest +# cibw_archs: "x86_64" - os: ubuntu-24.04-arm cibw_archs: "auto" - - os: windows-2022 - cibw_archs: "auto64" +# - os: windows-2022 +# cibw_archs: "auto64" # Include macos-15-intel to get Intel x86_64 macs and macos-latest to get the Aaarch64 macs - os: macos-15-intel cibw_archs: "x86_64" - - os: macos-latest - cibw_archs: "arm64" +# - os: macos-latest +# cibw_archs: "arm64" steps: - uses: actions/checkout@master diff --git a/cibuildwheel.toml b/cibuildwheel.toml index cff46a62..e87f55eb 100644 --- a/cibuildwheel.toml +++ b/cibuildwheel.toml @@ -13,7 +13,7 @@ test-command = "python -m pytest -s {project}/src/osqp/tests" [[tool.cibuildwheel.overrides]] # Platforms on which installing pytorch is problematic, so we skip testing # the `osqp.nn` module -select = "*manylinux_aarch64 cp313-macosx_x86_64" +select = "*manylinux_aarch64 cp313-macosx_x86_64 cp314-macosx_x86_64" before-test = 'pip install scipy --prefer-binary' test-groups = ["test-no-nn"] test-command = "python -m pytest -s {project}/src/osqp/tests --continue-on-collection-errors --ignore={project}/src/osqp/tests/nn_test.py" From 00e94562e96e97621f160ee6bf2ec22d726734d8 Mon Sep 17 00:00:00 2001 From: Vineet Bansal Date: Mon, 2 Feb 2026 14:52:31 -0500 Subject: [PATCH 06/13] cuda workflow --- .github/workflows/build_cuda.yml | 36 +++++++++++++ .github/workflows/build_cuda_windows.yml | 64 ++++++++++++++++++++++++ .github/workflows/build_default.yml | 12 ++--- backend/cuda/cibuildwheel.toml | 2 +- 4 files changed, 107 insertions(+), 7 deletions(-) create mode 100644 .github/workflows/build_cuda.yml create mode 100644 .github/workflows/build_cuda_windows.yml diff --git a/.github/workflows/build_cuda.yml b/.github/workflows/build_cuda.yml new file mode 100644 index 00000000..3b627500 --- /dev/null +++ b/.github/workflows/build_cuda.yml @@ -0,0 +1,36 @@ +name: Build CUDA Linux + +on: + push: + branches: + - master + tags: + - '*' + pull_request: + branches: + - master + +jobs: + build_wheels: + name: Build wheel on ${{ matrix.os }} + runs-on: ${{ matrix.os }} + strategy: + fail-fast: false + matrix: + os: [ubuntu-latest] + + steps: + - uses: actions/checkout@master + + - name: Build wheels + uses: pypa/cibuildwheel@v2.23 + with: + package-dir: backend/cuda + config-file: backend/cuda/cibuildwheel.toml + output-dir: wheelhouse + + - name: Upload artifacts to github + uses: actions/upload-artifact@v5 + with: + name: wheels-cuda-${{ matrix.os }} + path: ./wheelhouse diff --git a/.github/workflows/build_cuda_windows.yml b/.github/workflows/build_cuda_windows.yml new file mode 100644 index 00000000..b4f887ed --- /dev/null +++ b/.github/workflows/build_cuda_windows.yml @@ -0,0 +1,64 @@ +name: Build CUDA Windows + +on: + push: + branches: + - master + tags: + - '*' + pull_request: + branches: + - master + +env: + CUDATOOLKIT_URL: https://developer.download.nvidia.com/compute/cuda/12.6.3/local_installers/cuda_12.6.3_561.17_windows.exe + CUDATOOLKIT_COMPONENTS: nvcc_12.6 cudart_12.6 cublas_dev_12.6 curand_dev_12.6 cusparse_dev_12.6 thrust_12.6 visual_studio_integration_12.6 + +jobs: + build_wheels: + name: Build wheel on ${{ matrix.os }} + runs-on: ${{ matrix.os }} + defaults: + run: + shell: cmd + strategy: + fail-fast: false + matrix: + os: [windows-2022] + + steps: + - uses: actions/checkout@master + + - name: Add msbuild to PATH + uses: microsoft/setup-msbuild@v2.0.0 + + - name: Add Windows SDK + run: | + choco install windows-sdk-8.1 + + - name: cache install cuda + id: cache-install + uses: actions/cache@v4 + with: + path: C:\Program Files (x86)\Intel\oneAPI\ + key: install-${{ env.CUDATOOLKIT_URL }}-${{ env.CUDATOOLKIT_COMPONENTS }} + + - name: install cuda + if: steps.cache-install.outputs.cache-hit != 'true' + run: | + curl.exe --output %TEMP%\cuda.exe --url %CUDATOOLKIT_URL% --retry 5 --retry-delay 5 + start /b /wait %TEMP%\cuda.exe -s %CUDATOOLKIT_COMPONENTS% + del %TEMP%\cuda.exe + + - name: Build wheels + uses: pypa/cibuildwheel@v2.23 + with: + package-dir: backend/cuda + config-file: backend/cuda/cibuildwheel.toml + output-dir: wheelhouse + + - name: Upload artifacts to github + uses: actions/upload-artifact@v5 + with: + name: wheels-cuda-${{ matrix.os }} + path: ./wheelhouse diff --git a/.github/workflows/build_default.yml b/.github/workflows/build_default.yml index 65dd665e..af61259b 100644 --- a/.github/workflows/build_default.yml +++ b/.github/workflows/build_default.yml @@ -40,17 +40,17 @@ jobs: fail-fast: false matrix: include: -# - os: ubuntu-latest -# cibw_archs: "x86_64" + - os: ubuntu-latest + cibw_archs: "x86_64" - os: ubuntu-24.04-arm cibw_archs: "auto" -# - os: windows-2022 -# cibw_archs: "auto64" + - os: windows-2022 + cibw_archs: "auto64" # Include macos-15-intel to get Intel x86_64 macs and macos-latest to get the Aaarch64 macs - os: macos-15-intel cibw_archs: "x86_64" -# - os: macos-latest -# cibw_archs: "arm64" + - os: macos-latest + cibw_archs: "arm64" steps: - uses: actions/checkout@master diff --git a/backend/cuda/cibuildwheel.toml b/backend/cuda/cibuildwheel.toml index 6f670d40..227920ef 100644 --- a/backend/cuda/cibuildwheel.toml +++ b/backend/cuda/cibuildwheel.toml @@ -1,6 +1,6 @@ [tool.cibuildwheel] build = "cp3*" -skip = ["cp36-*", "cp37-*", "*-win32", "*-manylinux_i686", "*-musllinux_*"] +skip = ["cp36-*", "cp37-*", "cp313t-*", "cp314t-*", "*-win32", "*-manylinux_i686", "*-musllinux_*"] build-verbosity = 1 before-build = "rm -rf {package}/osqp_sources/build" repair-wheel-command = "" From 74bbf18aad4769a9af0d14b1a48bc8f0d0edf349 Mon Sep 17 00:00:00 2001 From: Vineet Bansal Date: Mon, 2 Feb 2026 14:52:55 -0500 Subject: [PATCH 07/13] only cuda --- .github/workflows/build_default.yml | 95 ----------------------------- 1 file changed, 95 deletions(-) delete mode 100644 .github/workflows/build_default.yml diff --git a/.github/workflows/build_default.yml b/.github/workflows/build_default.yml deleted file mode 100644 index af61259b..00000000 --- a/.github/workflows/build_default.yml +++ /dev/null @@ -1,95 +0,0 @@ -name: Build Default - -on: - push: - branches: - - master - tags: - - '*' - pull_request: - branches: - - master - -jobs: - build_sdist: - name: Build source - runs-on: ubuntu-latest - strategy: - fail-fast: false - steps: - - uses: actions/checkout@master - with: - submodules: 'recursive' - - - name: Build source - run: | - python -m pip install build - python -m build --sdist --outdir=wheelhouse - - - name: Upload sdist to github - uses: actions/upload-artifact@v5 - with: - name: wheels-sdist - path: wheelhouse/*.tar.gz - if-no-files-found: error - - build_wheels: - name: Build wheel on ${{ matrix.os }} for ${{ matrix.cibw_archs }} - runs-on: ${{ matrix.os }} - strategy: - fail-fast: false - matrix: - include: - - os: ubuntu-latest - cibw_archs: "x86_64" - - os: ubuntu-24.04-arm - cibw_archs: "auto" - - os: windows-2022 - cibw_archs: "auto64" - # Include macos-15-intel to get Intel x86_64 macs and macos-latest to get the Aaarch64 macs - - os: macos-15-intel - cibw_archs: "x86_64" - - os: macos-latest - cibw_archs: "arm64" - - steps: - - uses: actions/checkout@master - - - name: Build wheels - uses: pypa/cibuildwheel@v3.3.1 - with: - config-file: cibuildwheel.toml - output-dir: wheelhouse - env: - CIBW_ENVIRONMENT_MACOS: CMAKE_OSX_ARCHITECTURES=${{ matrix.cibw_archs }} - - - name: Upload artifacts to github - uses: actions/upload-artifact@v5 - with: - name: wheels-${{ runner.os }}-${{ matrix.cibw_archs }} - path: ./wheelhouse/*.whl - if-no-files-found: error - - publish_to_pypi: - name: Publish wheels to PyPi - if: github.event_name == 'push' && startsWith(github.event.ref, 'refs/tags') - needs: [build_sdist, build_wheels] - runs-on: ubuntu-latest - steps: - - name: Download packages - uses: actions/download-artifact@v6 - with: - pattern: wheels-* - path: dist - merge-multiple: true - - - name: Print out packages - run: ls -la dist/* - - - name: Upload wheels to pypi - env: - TWINE_USERNAME: __token__ - TWINE_PASSWORD: ${{ secrets.pypi_password }} - run: | - python -m pip install --upgrade twine - twine upload dist/* From 4fe62911f66efdfdfe3eb6391c1228c3cf95f002 Mon Sep 17 00:00:00 2001 From: Vineet Bansal Date: Wed, 11 Feb 2026 09:30:25 -0500 Subject: [PATCH 08/13] added license identifier --- pyproject.toml | 1 + 1 file changed, 1 insertion(+) diff --git a/pyproject.toml b/pyproject.toml index c52e0fc7..55653dc7 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -6,6 +6,7 @@ build-backend = "scikit_build_core.build" name = "osqp" dynamic = ["version"] description = "OSQP: The Operator Splitting QP Solver" +license = "Apache-2.0" readme = "README.md" requires-python = ">=3.8" authors = [ From b54e02548ce6096e735a9710058cb1853f84ac31 Mon Sep 17 00:00:00 2001 From: Vineet Bansal Date: Wed, 11 Feb 2026 09:39:23 -0500 Subject: [PATCH 09/13] added license file --- pyproject.toml | 1 + 1 file changed, 1 insertion(+) diff --git a/pyproject.toml b/pyproject.toml index 55653dc7..29fae926 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -7,6 +7,7 @@ name = "osqp" dynamic = ["version"] description = "OSQP: The Operator Splitting QP Solver" license = "Apache-2.0" +license-files = ["LICENSE"] readme = "README.md" requires-python = ">=3.8" authors = [ From 4d2e455e7453a8136b17acc6f72be2422623c52f Mon Sep 17 00:00:00 2001 From: Vineet Bansal Date: Wed, 11 Feb 2026 09:56:53 -0500 Subject: [PATCH 10/13] everything back in --- .github/workflows/build_default.yml | 95 +++++++++++++++++++++++++ .github/workflows/build_mkl.yml | 38 ++++++++++ .github/workflows/build_mkl_windows.yml | 62 ++++++++++++++++ 3 files changed, 195 insertions(+) create mode 100644 .github/workflows/build_default.yml create mode 100644 .github/workflows/build_mkl.yml create mode 100644 .github/workflows/build_mkl_windows.yml diff --git a/.github/workflows/build_default.yml b/.github/workflows/build_default.yml new file mode 100644 index 00000000..af61259b --- /dev/null +++ b/.github/workflows/build_default.yml @@ -0,0 +1,95 @@ +name: Build Default + +on: + push: + branches: + - master + tags: + - '*' + pull_request: + branches: + - master + +jobs: + build_sdist: + name: Build source + runs-on: ubuntu-latest + strategy: + fail-fast: false + steps: + - uses: actions/checkout@master + with: + submodules: 'recursive' + + - name: Build source + run: | + python -m pip install build + python -m build --sdist --outdir=wheelhouse + + - name: Upload sdist to github + uses: actions/upload-artifact@v5 + with: + name: wheels-sdist + path: wheelhouse/*.tar.gz + if-no-files-found: error + + build_wheels: + name: Build wheel on ${{ matrix.os }} for ${{ matrix.cibw_archs }} + runs-on: ${{ matrix.os }} + strategy: + fail-fast: false + matrix: + include: + - os: ubuntu-latest + cibw_archs: "x86_64" + - os: ubuntu-24.04-arm + cibw_archs: "auto" + - os: windows-2022 + cibw_archs: "auto64" + # Include macos-15-intel to get Intel x86_64 macs and macos-latest to get the Aaarch64 macs + - os: macos-15-intel + cibw_archs: "x86_64" + - os: macos-latest + cibw_archs: "arm64" + + steps: + - uses: actions/checkout@master + + - name: Build wheels + uses: pypa/cibuildwheel@v3.3.1 + with: + config-file: cibuildwheel.toml + output-dir: wheelhouse + env: + CIBW_ENVIRONMENT_MACOS: CMAKE_OSX_ARCHITECTURES=${{ matrix.cibw_archs }} + + - name: Upload artifacts to github + uses: actions/upload-artifact@v5 + with: + name: wheels-${{ runner.os }}-${{ matrix.cibw_archs }} + path: ./wheelhouse/*.whl + if-no-files-found: error + + publish_to_pypi: + name: Publish wheels to PyPi + if: github.event_name == 'push' && startsWith(github.event.ref, 'refs/tags') + needs: [build_sdist, build_wheels] + runs-on: ubuntu-latest + steps: + - name: Download packages + uses: actions/download-artifact@v6 + with: + pattern: wheels-* + path: dist + merge-multiple: true + + - name: Print out packages + run: ls -la dist/* + + - name: Upload wheels to pypi + env: + TWINE_USERNAME: __token__ + TWINE_PASSWORD: ${{ secrets.pypi_password }} + run: | + python -m pip install --upgrade twine + twine upload dist/* diff --git a/.github/workflows/build_mkl.yml b/.github/workflows/build_mkl.yml new file mode 100644 index 00000000..496b7465 --- /dev/null +++ b/.github/workflows/build_mkl.yml @@ -0,0 +1,38 @@ +name: Build MKL Mac/Linux + +on: + push: + branches: + - master + tags: + - '*' + pull_request: + branches: + - master + +jobs: + build_wheels: + name: Build wheel on ${{ matrix.os }} + runs-on: ${{ matrix.os }} + strategy: + fail-fast: false + matrix: + # macos-latest now uses arm64 runners, but MKL is x86_64 only, so restrict to the macos-15-intel runners + # to get x86_64 architecture. + os: [ubuntu-latest, macos-15-intel] + + steps: + - uses: actions/checkout@master + + - name: Build wheels + uses: pypa/cibuildwheel@v3.3.1 + with: + package-dir: backend/mkl + config-file: backend/mkl/cibuildwheel.toml + output-dir: wheelhouse + + - name: Upload artifacts to github + uses: actions/upload-artifact@v5 + with: + name: wheels-mkl-${{ matrix.os }} + path: ./wheelhouse diff --git a/.github/workflows/build_mkl_windows.yml b/.github/workflows/build_mkl_windows.yml new file mode 100644 index 00000000..f4bbe82f --- /dev/null +++ b/.github/workflows/build_mkl_windows.yml @@ -0,0 +1,62 @@ +name: Build MKL Windows + +on: + push: + branches: + - master + tags: + - '*' + pull_request: + branches: + - master + +env: + # update urls for oneapi packages according to + # https://github.com/oneapi-src/oneapi-ci/blob/master/.github/workflows/build_all.yml + WINDOWS_BASEKIT_URL: https:/registrationcenter-download.intel.com/akdlm/IRC_NAS/c961e083-5685-4f0b-ada5-c6cf16f561dd/w_BaseKit_p_2023.1.0.47256_offline.exe + WINDOWS_BASEKIT_COMPONENTS: intel.oneapi.win.mkl.devel + + +jobs: + build_wheels: + name: Build wheel on ${{ matrix.os }} + runs-on: ${{ matrix.os }} + defaults: + run: + shell: cmd + strategy: + fail-fast: false + matrix: + os: [windows-2022] + + steps: + - uses: actions/checkout@master + + - name: cache install oneapi + id: cache-install + uses: actions/cache@v4 + with: + path: C:\Program Files (x86)\Intel\oneAPI\ + key: install-${{ env.WINDOWS_BASEKIT_URL }}-${{ env.WINDOWS_BASEKIT_COMPONENTS }} + + - name: install oneapi mkl + if: steps.cache-install.outputs.cache-hit != 'true' + run: | + curl.exe --output %TEMP%\webimage_base.exe --url %WINDOWS_BASEKIT_URL% --retry 5 --retry-delay 5 + start /b /wait %TEMP%\webimage_base.exe -s -x -f webimage_base_extracted --log extract_base.log + del %TEMP%\webimage_base.exe + webimage_base_extracted\bootstrapper.exe -s --action install --components=%WINDOWS_BASEKIT_COMPONENTS% --eula=accept -p=NEED_VS2017_INTEGRATION=0 -p=NEED_VS2019_INTEGRATION=0 --log-dir=. + rd /s/q "webimage_base_extracted" + + - name: Build wheels + uses: pypa/cibuildwheel@v3.3.1 + with: + package-dir: backend/mkl + config-file: backend/mkl/cibuildwheel.toml + output-dir: wheelhouse + + - name: Upload artifacts to github + uses: actions/upload-artifact@v5 + with: + name: wheels-mkl-${{ matrix.os }} + path: ./wheelhouse From 62029e8b8c99a411e46f10b69e6f02c946f1a582 Mon Sep 17 00:00:00 2001 From: Vineet Bansal Date: Wed, 11 Feb 2026 10:28:22 -0500 Subject: [PATCH 11/13] mkl fixes --- backend/cuda/cibuildwheel.toml | 2 +- backend/mkl/cibuildwheel.toml | 4 ++-- cibuildwheel.toml | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/backend/cuda/cibuildwheel.toml b/backend/cuda/cibuildwheel.toml index 227920ef..f8b0b453 100644 --- a/backend/cuda/cibuildwheel.toml +++ b/backend/cuda/cibuildwheel.toml @@ -1,6 +1,6 @@ [tool.cibuildwheel] build = "cp3*" -skip = ["cp36-*", "cp37-*", "cp313t-*", "cp314t-*", "*-win32", "*-manylinux_i686", "*-musllinux_*"] +skip = ["cp313t-*", "cp314t-*", "*-win32", "*-manylinux_i686", "*-musllinux_*"] build-verbosity = 1 before-build = "rm -rf {package}/osqp_sources/build" repair-wheel-command = "" diff --git a/backend/mkl/cibuildwheel.toml b/backend/mkl/cibuildwheel.toml index a257b34f..85caa1c6 100644 --- a/backend/mkl/cibuildwheel.toml +++ b/backend/mkl/cibuildwheel.toml @@ -1,6 +1,6 @@ [tool.cibuildwheel] build = "cp3*" -skip = ["cp36-*", "cp37-*", "*-win32", "*-manylinux_i686", "*-musllinux_*"] +skip = ["cp313t-*", "cp314t-*", "*-win32", "*-manylinux_i686", "*-musllinux_*"] build-verbosity = 1 before-build = "rm -rf {package}/osqp_sources/build" @@ -8,7 +8,7 @@ before-build = "rm -rf {package}/osqp_sources/build" before-all = [ "yum-config-manager --add-repo https://yum.repos.intel.com/oneapi", "rpm --import https://yum.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB", - "yum --nogpgcheck install -y intel-oneapi-mkl-devel-2023.0.0" + "yum --nogpgcheck install -y intel-oneapi-mkl-devel" ] environment = { MKL_ROOT = "/opt/intel/oneapi/mkl/latest" } repair-wheel-command = "" diff --git a/cibuildwheel.toml b/cibuildwheel.toml index e87f55eb..3661c8bf 100644 --- a/cibuildwheel.toml +++ b/cibuildwheel.toml @@ -1,6 +1,6 @@ [tool.cibuildwheel] build = "cp3*" -skip = ["cp36-*", "cp37-*", "cp313t-*", "cp314t-*", "*-win32", "*-manylinux_i686", "*-musllinux_*"] +skip = ["cp313t-*", "cp314t-*", "*-win32", "*-manylinux_i686", "*-musllinux_*"] build-verbosity = 1 before-build = "rm -rf {package}/osqp_sources/build" # Install CPU-only version of torch beforehand since that allows cibuildwheel From e1fa80a686c88c24284b81c8655ae5eeb00f2aac Mon Sep 17 00:00:00 2001 From: Vineet Bansal Date: Wed, 11 Feb 2026 11:40:02 -0500 Subject: [PATCH 12/13] using dnf instead of yum --- backend/cuda/cibuildwheel.toml | 6 +++--- backend/mkl/cibuildwheel.toml | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/backend/cuda/cibuildwheel.toml b/backend/cuda/cibuildwheel.toml index f8b0b453..710d9e6a 100644 --- a/backend/cuda/cibuildwheel.toml +++ b/backend/cuda/cibuildwheel.toml @@ -7,9 +7,9 @@ repair-wheel-command = "" [tool.cibuildwheel.linux] before-all = [ - "yum-config-manager --add-repo https://developer.download.nvidia.com/compute/cuda/repos/rhel9/x86_64/cuda-rhel9.repo", - "yum search cuda-toolkit*", - "yum install -y cuda-toolkit-12-6" + "dnf config-manager --add-repo https://developer.download.nvidia.com/compute/cuda/repos/rhel9/x86_64/cuda-rhel9.repo", + "dnf search cuda-toolkit*", + "dnf install -y cuda-toolkit-12-6" ] environment = { CMAKE_CUDA_COMPILER = "/usr/local/cuda-12.6/bin/nvcc" } diff --git a/backend/mkl/cibuildwheel.toml b/backend/mkl/cibuildwheel.toml index 85caa1c6..c70c14cb 100644 --- a/backend/mkl/cibuildwheel.toml +++ b/backend/mkl/cibuildwheel.toml @@ -6,9 +6,9 @@ before-build = "rm -rf {package}/osqp_sources/build" [tool.cibuildwheel.linux] before-all = [ - "yum-config-manager --add-repo https://yum.repos.intel.com/oneapi", + "dnf config-manager --add-repo https://yum.repos.intel.com/oneapi", "rpm --import https://yum.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB", - "yum --nogpgcheck install -y intel-oneapi-mkl-devel" + "dnf --nogpgcheck install -y intel-oneapi-mkl-devel-2023.0.0" ] environment = { MKL_ROOT = "/opt/intel/oneapi/mkl/latest" } repair-wheel-command = "" From b8567827f9ebd53b0cebb8cb57df09ff769dcd11 Mon Sep 17 00:00:00 2001 From: Vineet Bansal Date: Wed, 11 Feb 2026 11:47:26 -0500 Subject: [PATCH 13/13] yum for cuda wheels --- backend/cuda/cibuildwheel.toml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/backend/cuda/cibuildwheel.toml b/backend/cuda/cibuildwheel.toml index 710d9e6a..f8b0b453 100644 --- a/backend/cuda/cibuildwheel.toml +++ b/backend/cuda/cibuildwheel.toml @@ -7,9 +7,9 @@ repair-wheel-command = "" [tool.cibuildwheel.linux] before-all = [ - "dnf config-manager --add-repo https://developer.download.nvidia.com/compute/cuda/repos/rhel9/x86_64/cuda-rhel9.repo", - "dnf search cuda-toolkit*", - "dnf install -y cuda-toolkit-12-6" + "yum-config-manager --add-repo https://developer.download.nvidia.com/compute/cuda/repos/rhel9/x86_64/cuda-rhel9.repo", + "yum search cuda-toolkit*", + "yum install -y cuda-toolkit-12-6" ] environment = { CMAKE_CUDA_COMPILER = "/usr/local/cuda-12.6/bin/nvcc" }