Skip to content

Commit f878a34

Browse files
committed
Switch Linux release wheels to manylinux_2_28
1 parent 5b8dcdd commit f878a34

2 files changed

Lines changed: 5 additions & 5 deletions

File tree

.github/workflows/release.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ jobs:
3636
with:
3737
maturin-version: v1.13.1
3838
target: ${{ matrix.target }}
39-
manylinux: "2014"
39+
manylinux: "2_28"
4040
args: --release --locked --compatibility pypi --out dist --no-default-features --features python,openblas-static -i python${{ matrix.python-version }}
4141

4242
- name: Upload wheel artifact

README.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -134,7 +134,7 @@ On the committed deterministic benchmark sweep, the default `centroid_silhouette
134134
- The default path keeps OPQ on and favors quality.
135135
- The advanced split into `PQEncoder` / `PQKMeans` and `OPQEncoder` / `OPQMeans` is still there when you need it.
136136
- The hot paths use full-core Rust + Rayon, BLAS/LAPACK-backed dense math, x86 SIMD, and Apple Silicon NEON kernels.
137-
- Wheels are built for manylinux `x86_64` and `aarch64`, plus macOS `x86_64` and `arm64`.
137+
- Wheels are built for `manylinux_2_28` `x86_64` and `aarch64`, plus macOS `x86_64` and `arm64`.
138138
- Deterministic seeds, deterministic synthetic datasets, and committed benchmark artifacts make the claims inspectable.
139139

140140
<p align="center">
@@ -154,7 +154,7 @@ The original project matters because it proved the idea. `clostera` exists becau
154154
| Choosing `K` (number of clusters) | User supplies `K` | User supplies `K` or lets Rust-side auto-selection choose it with `k=None` |
155155
| CPU path | OpenMP-era reference implementation | Rayon-parallel hot paths, BLAS/LAPACK-backed math, x86 SIMD, Apple Silicon NEON |
156156
| Python workflows | NumPy-centric | NumPy arrays, parquet streaming, memmapped code output, RAM-bounded out-of-core workflows, deterministic synthetic datasets |
157-
| Packaging | Source build expectations | manylinux `x86_64` and `aarch64`, macOS `x86_64` and `arm64`, CPython `3.10` through `3.13` |
157+
| Packaging | Source build expectations | `manylinux_2_28` `x86_64` and `aarch64`, macOS `x86_64` and `arm64`, CPython `3.10` through `3.13` |
158158
| Benchmarking | Research notebooks and limited comparison artifacts | Deterministic benchmark suite with throughput and clustering-quality metrics, plots, and a showcase notebook |
159159

160160
## 📊 The Benchmarks of Truth
@@ -272,7 +272,7 @@ Modern ARM machines are not a side quest. `clostera` treats them like real produ
272272
- `aarch64` uses native NEON distance kernels for the common PQ subvector sizes `4`, `8`, `16`, `32`, and `64`.
273273
- The PQ assignment path is no longer “build a buffer and scan it later”. It now uses a fused lookup-accumulate-and-select kernel plus SIMD-backed `argmin`, which matters on Apple Silicon because clustering on PQ codes is often dominated by assignment rather than raw distance evaluation.
274274
- The release workflow builds `macOS arm64` wheels alongside `x86_64` wheels.
275-
- The same wheel matrix also covers manylinux `x86_64` and `aarch64`.
275+
- The same wheel matrix also covers `manylinux_2_28` `x86_64` and `aarch64`.
276276
- The release configuration uses `openblas-static` so published wheels are as self-contained as practical.
277277

278278
If you are running on Apple Silicon, this is not a Rosetta fallback story. There is architecture-specific code in the hot path and packaging support in the release pipeline.
@@ -677,7 +677,7 @@ python scripts/render_benchmark_assets.py \
677677

678678
The repository already includes publication artifacts for:
679679

680-
- manylinux wheels for `x86_64` and `aarch64`
680+
- `manylinux_2_28` wheels for `x86_64` and `aarch64`
681681
- macOS wheels for `x86_64` and `arm64`
682682
- CPython `3.10` through `3.13`
683683
- source distributions

0 commit comments

Comments
 (0)