NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #1449 most downloaded on PyPI
Splitting conic solver
Last release 29 days ago
05 Sep 2026
Release timing varies
gaps range from 2 weeks to 8 months
Some releases are documented
notes for 12 of 48 stable releases
1 version withdrawn
withdrawn after publishing
12 years old
49 releases · first in 2014
Python bindings for SCS 3.3.1 , pinned to core commit cc244ebc4bff620e2e228e99a4e2e24ab12f9e3b .
Python bindings for SCS 3.3.1, pinned to core commit cc244ebc4bff620e2e228e99a4e2e24ab12f9e3b.
The 3.3.0 x86-64 Linux wheels omitted MKL's dynamically loaded CPU-dispatch libraries. Wheel-repair tools did not detect those dependencies, so a first solve on a machine without an external MKL installation could abort Python with Intel oneMKL FATAL ERROR: Cannot load libmkl_def.so.3 (cvxgrp/scs#423).
3.3.1 fixes the packaging rather than requiring users to repair their loader environment. Upgrade with:
python -m pip install --upgrade scs
python -c "import scs; print(scs.__version__)"The version check should report 3.3.1. The historical 3.3.0 release remains yanked; its warning is not removed by this release.
| Wheel platform | Standard BLAS/LAPACK | Packaged MKL Pardiso | Default solver |
|---|---|---|---|
| x86-64 Linux, manylinux/glibc | Vendored OpenBLAS | Static, sequential MKL | MKL Pardiso |
| Linux aarch64, manylinux | Vendored OpenBLAS | No | QDLDL |
| x86-64 Linux, musllinux | Vendored OpenBLAS | No | QDLDL |
| macOS Apple Silicon | Apple Accelerate | No | QDLDL |
| Windows x86-64 | OpenBLAS | No | QDLDL |
_scs_mkl; its symbols are hidden to avoid interposition with other libraries. No MKL shared libraries, separate runtime installation, LD_LIBRARY_PATH adjustment, or scs[mkl] extra is required. The Intel license notice is included in the wheel.The published inventory is 45 wheels and one source distribution: nine Python/ABI combinations on each of the five platforms above (CPython 3.9–3.15, plus 3.14t and 3.15t). Intel macOS wheels are not part of this inventory; use a source build or another suitable distribution on that platform. Python-version wheel availability is not a statement that every upstream Python version is already a stable release.
use_blas64=true requires link_mkl=true, and MKL ILP64 requires 64-bit SCS indices (int32=false). This prevents declaring 64-bit BLAS integers while calling an LP64 provider.--blas64 path is rejected because it cannot verify the provider contract. Use the Meson build instead, for example:python -m pip install . \
-Csetup-args=-Dlink_mkl=true \
-Csetup-args=-Duse_blas64=true \
-Csetup-args=-Dint32=falsemkl_rt as an actual link dependency so the core's interface-width check cannot be silently dropped by the linker. Windows source configurations select sequential MKL to avoid broken threaded-provider metadata.acceleration_regularization: its absolute magnitude is pinned rather than adaptively scaled. Both AA types are tested with a real solved problem; NaN and both infinities remain invalid. Zero remains allowed.Python 3.9 or newer remains required. The 3.3.0 linear_solver=scs.LinearSolver.* selection API remains in place; this release does not add a backward-compatibility shim for the old boolean solver-selection arguments.
Every wheel is tested during its build. Linux wheel auditing checks standard extensions, vendored OpenBLAS, the appropriate MKL extension, absence of dynamic Intel dependencies, and relative loader paths. Clean x86-64 containers on Python 3.9, 3.14, and 3.14t import MKL, verify AUTO selects it, and solve a problem containing a PSD cone with each packaged backend before PyPI publication. Source MKL lanes cover LP64 success, ILP64 mismatch rejection, and ILP64 success; free-threading has a separate test workflow.
Local release validation built and installed a CPython 3.14 macOS arm64 wheel: native runtime, installed distribution, and wheel metadata all report 3.3.1; 396 tests passed, with 67 platform/optional-feature skips. The sdist was checked against the pinned core and successfully rebuilt into a wheel. Those local results do not substitute for the Linux MKL or Windows release gates.
The production release workflow passed, including PyPI upload. Every published filename, size, and SHA-256 digest matches the corresponding tested CI artifact (45 wheels and one sdist). Wheel metadata and backend inventories were checked across all five platforms. The production clean-container logs explicitly report SCS 3.3.1, AUTO selecting _scs_mkl, and successful Pardiso solves on Python 3.9, 3.14, and 3.14t.
The macOS CPython 3.14 wheel was additionally downloaded directly from PyPI, installed in an isolated directory, and rerun through the full local suite: 396 passed, 67 platform/optional-feature skips; runtime and distribution versions both report 3.3.1.
One column per quarter.
…scs_int truncation and OOM crash fixed, proper DeprecationWarning for the legacy 'f' cone, defensive NULL checks and better error messages. Test-suite…
Warning
The PyPI wheels for this release are broken on x86-64 Linux (and likely Windows): the first solve aborts the interpreter with Intel oneMKL FATAL ERROR: Cannot load libmkl_def.so.3 — the wheels omitted MKL's dlopen'd CPU dispatch kernels (cvxgrp/scs#423). 3.3.0 has been yanked on PyPI — pin scs!=3.3.0, use conda-forge, or build from sdist. Fixed wheels ship in 3.3.1.
Python bindings for SCS 3.3.0 — a major core performance release: +92 solved problems across a 505-problem LP/QP/SDP validation suite vs 3.2.11, with 3–7× lower mean solve times at equal-or-better independently verified accuracy, competitive with PDLP on LP benchmarks at matched delivered accuracy. See the core release notes for the full performance tables, algorithm changes, and accuracy guidance (eps=1e-5 recommended for LP/QP workloads when accuracy matters).
adaptive_diag_scale setting exposed (#225): the new per-row dynamic metric refinement from the core release, on by default (0/1; accepts bools).LinearSolver enum replaces the old boolean solver-selection flags (#189, renamed members #206): AUTO, QDLDL, CPU_INDIRECT, MKL, ACCELERATE, CPU_DENSE, GPU_INDIRECT, CUDSS. AUTO on macOS now prefers QDLDL over Accelerate (#210).info['aa_stats'] (#208) and exposed AA settings (#209).use_gpu=true build fix (#221), cuDSS/CUDA link dependencies scoped correctly (#223).A hardening series across the binding layer (#195–#205): settings validation rejects NaN/±inf, negative cone dimensions rejected, caller's sparse A/P index arrays are no longer mutated in place, sparse b/c handled correctly, latent Windows scs_int truncation and OOM crash fixed, proper DeprecationWarning for the legacy 'f' cone, defensive NULL checks and better error messages. Test-suite additions for the new setting and finite-tolerance semantics (#229).
The boolean solver-selection flags (use_indirect, gpu, ...) are replaced by linear_solver=scs.LinearSolver.*; eps defaults are unchanged from the core (see the core notes for guidance). scs_source is pinned to SCS 3.3.0 final (9362c04).
fix compiler warnings by @bodono in #165
3.2.9 by @bodono in https://github.com/bodono/scs-python/pull/152
Full Changelog: https://github.com/bodono/scs-python/compare/3.2.9...3.2.10
Full Changelog: 3.2.9...3.2.10
3.2.8 by @bodono in https://github.com/bodono/scs-python/pull/144
Full Changelog: https://github.com/bodono/scs-python/compare/3.2.8...3.2.9
Full Changelog: 3.2.8...3.2.9
* disable broken downloads link
3.2.8 (#144)
* Sync scs version
* 3.2.8
* disable broken downloads link
* update to new downloads badge
* tweak new downloads badge
Nothing published for this version
bump to 3.2.7
bump to 3.2.7 (#108)
bump scs source to 3.2.6 bump to 3.2.6 switch to manylinux_2_28
bump scs source to 3.2.6
bump to 3.2.6
switch to manylinux_2_28
update scs source to 3.2.5
update scs source to 3.2.5 (#101)
Nothing published for this version
Nothing published for this version
Nothing published for this version
Installs successfully on python 3.12. Thanks to @enzbus.
Installs successfully on python 3.12. Thanks to @enzbus.
Exponential cone projection now about 50x faster!
Minor bugfixes, should improve speed slightly especially for small problems.
Minor bugfixes, should improve speed slightly especially for small problems.
New object oriented interface with SCS object.
New object oriented interface with SCS object.
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →