SCS 3.3.0 Python bindings
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).
New in the Python interface
adaptive_diag_scalesetting exposed (#225): the new per-row dynamic metric refinement from the core release, on by default (0/1; accepts bools).LinearSolverenum replaces the old boolean solver-selection flags (#189, renamed members #206):AUTO,QDLDL,CPU_INDIRECT,MKL,ACCELERATE,CPU_DENSE,GPU_INDIRECT,CUDSS.AUTOon macOS now prefers QDLDL over Accelerate (#210).- Anderson acceleration introspection and tuning: detailed AA diagnostics in
info['aa_stats'](#208) and exposed AA settings (#209). - Apple Accelerate backend on macOS (#188).
Wheels and platforms
- x86_64 Linux and Windows wheels link MKL (#187, #190), with BLAS64/ILP64 support and multi-threaded PARDISO (#192); a runtime check guards the process-wide MKL interface layer.
- Free-threading (no-GIL) support for CPython 3.13t+ (#175) and crash fixes for 3.15t wheels (#228).
- GPU:
use_gpu=truebuild fix (#221), cuDSS/CUDA link dependencies scoped correctly (#223).
Robustness fixes
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).
Compatibility
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).