Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
30 changes: 20 additions & 10 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,8 @@ CPU builds are still useful for development and smoke tests.

## Installation

The default PyPI package is built for CUDA 12.8:
Starting with 0.4.1, PyPI provides Linux CUDA 12.8 wheels and macOS 14+
Apple Silicon Metal wheels. Pip selects the appropriate wheel automatically:

```bash
pip install qwentts-cpp-python
Expand Down Expand Up @@ -74,13 +75,10 @@ revision; validation artifacts are not reused for publishing.

### Apple Silicon (Metal)

The PyPI `0.4.0` release contains Linux CUDA wheels. For **macOS 14 or newer,
arm64 Python 3.10+**, use the `+metal` wheel published to Hugging Face. After
the **Publish Hugging Face Wheels** workflow completes, install it with:
For **macOS 14 or newer, arm64 Python 3.10+**, install directly from PyPI:

```bash
python -m pip install --only-binary=qwentts-cpp-python "qwentts-cpp-python==0.4.0+metal" \
-f https://huggingface.co/datasets/andito/qwentts-cpp-python-wheels/tree/main/whl/metal
python -m pip install --only-binary=qwentts-cpp-python "qwentts-cpp-python>=0.4.1"
python -c "from qwentts_cpp import QwenLibrary; print(QwenLibrary().version())"
```

Expand All @@ -91,14 +89,26 @@ from macOS. The build applies a shader-only workaround for the pinned ggml's
invalid scalar-to-BF16-vector fill cast, restoring the source checkout afterward;
the C ABI is unchanged. Use a native arm64 Python, rather than an Intel Python
under Rosetta.
The `+metal` version identifies the backend on Hugging Face; it is never sent to
PyPI and cannot collide with the Linux CUDA or other backend variants.
Downstream packages can declare `qwentts-cpp-python>=0.4.1` as a regular
dependency, without an extra index or a direct wheel URL. The macOS platform
tag distinguishes Metal wheels from Linux CUDA wheels on PyPI. Intel Macs and
macOS versions older than 14 are not supported by this Metal wheel.

The earlier `0.4.0` Metal wheel remains available on Hugging Face:

```bash
python -m pip install "qwentts-cpp-python==0.4.0+metal" \
-f https://huggingface.co/datasets/andito/qwentts-cpp-python-wheels/tree/main/whl/metal
```

The `+metal` version identifies the backend on Hugging Face; PyPI wheels use
the plain public version without this suffix.

Before publication, download the `hf-wheel-metal-macosx-arm64` artifact from
the PR's **Apple Silicon Metal wheel** check, unzip it, and install its `.whl`
with `python -m pip install /path/to/qwentts_cpp_python-0.4.0+metal-*.whl`.
with `python -m pip install /path/to/qwentts_cpp_python-0.4.1+metal-*.whl`.
This macOS check also runs for PRs; the Linux matrix remains dispatch-only.
The Hugging Face publisher rebuilds and checks its own Metal wheel.
Both publishers rebuild and check their own Metal wheels.

Run a streaming smoke test using local GGUF weights (weights are not bundled):

Expand Down
2 changes: 1 addition & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"

[project]
name = "qwentts-cpp-python"
version = "0.4.0"
version = "0.4.1"
description = "Python ctypes bindings and wheel packaging for qwentts.cpp"
readme = "README.md"
license = "MIT"
Expand Down
2 changes: 1 addition & 1 deletion src/qwentts_cpp/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
)
from .models import GGUF_REPO, resolve_gguf_paths

__version__ = "0.4.0"
__version__ = "0.4.1"

__all__ = [
"GGUF_REPO",
Expand Down
Loading