fix(packaging): cap requires-python to <3.14 for Windows numpy wheels (#432)

Fixes #350 (API server fails to start on Windows because numpy has no cp314 wheels).

Caps `requires-python` to `>=3.10,<3.14` in pyproject.toml so uv resolves a Python that has working numpy wheels on Windows. Extends the `test-windows` CI matrix to run on both Python 3.12 and 3.13 to keep the cap honest.

Reported by @RizaldyMongi in #350. Thanks for the careful repro — the Windows-only fallout was tricky to reproduce on Linux/macOS and the issue gave us the exact symptom signature to triage from.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
Jon Saad-Falcon
2026-05-29 16:10:08 -07:00
committed by GitHub
co-authored by Claude Opus 4.7
parent c8970cc387
commit f1b0df6b6b
4 changed files with 15 additions and 4 deletions
+8 -1
View File
@@ -90,13 +90,20 @@ jobs:
# interpolation), so there is no workflow-injection surface here.
test-windows:
runs-on: windows-latest
strategy:
fail-fast: false
matrix:
# 3.12 = common; 3.13 = the supported ceiling — installing there guards
# against a numpy/native wheel gap at the top of the range (#350), which
# is exactly how the source-build failure slips in on Windows.
python-version: ["3.12", "3.13"]
steps:
- uses: actions/checkout@v6
- name: Set up Python
uses: actions/setup-python@v6
with:
python-version: "3.12"
python-version: ${{ matrix.python-version }}
- name: Install uv
uses: astral-sh/setup-uv@v8.0.0
+1 -1
View File
@@ -94,7 +94,7 @@ cd OpenJarvis
The script handles everything:
1. Checks for Python 3.10+ and Node.js 18+
1. Checks for Python 3.103.13 and Node.js 18+
2. Installs Ollama if not present and pulls a starter model
3. Installs Python and frontend dependencies
4. Starts the backend API server and frontend dev server
+1 -1
View File
@@ -238,7 +238,7 @@ See the [Python SDK guide](../user-guide/python-sdk.md) for the full API referen
| Requirement | Version | Install | Notes |
|-------------|---------|---------|-------|
| Python | 3.10+ | [python.org](https://www.python.org/downloads/) | Required |
| Python | 3.103.13 | [python.org](https://www.python.org/downloads/) | Required. 3.14+ not yet supported (a core dependency lacks 3.14 wheels). |
| uv | latest | `curl -LsSf https://astral.sh/uv/install.sh \| sh` or `brew install uv` (macOS) | Python package & project manager |
| Git | any | [git-scm.com](https://git-scm.com/) or `brew install git` (macOS) | Required |
| Rust | stable | `curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs \| sh` | Required for the Rust extension |
+5 -1
View File
@@ -7,7 +7,11 @@ name = "OpenJarvis"
version = "0.1.1"
description = "OpenJarvis — modular AI assistant backend with composable intelligence primitives"
readme = "README.md"
requires-python = ">=3.10"
# Upper bound: numpy 2.2.x (pinned transitively via datasets/pandas) ships no
# cp314 Windows wheel, so under Python 3.14 uv would compile numpy from source
# (Meson) and fail on Windows boxes without a C toolchain (#350). Cap to the
# range that has prebuilt wheels; matches the classifiers (3.103.13).
requires-python = ">=3.10,<3.14"
license = {text = "Apache-2.0"}
authors = [
{name = "Open Jarvis Contributors"},