google / google/or-tools

Publish free-threaded (cp313t/cp314t) wheels for macOS and Windows

Open
#5,244 0 comments 0 reactions 0 assignees View on GitHub
Lang: Python
Dominant language
C++
Stars
14.1k
Forks
2.5k
Avg merge
8h 39m
Merged PRs (30d)
72

Description

**What language and solver does this apply to?**
Python (packaging/wheels)

**Describe the problem you are trying to solve.**
Since 9.12, free-threaded wheels (cp313t, and cp314t as of 9.15) are published on PyPI, but only for Linux (manylinux x86_64/aarch64). There are no free-threaded wheels for macOS or Windows, so packages that depend on ortools cannot support free-threaded Python on those platforms without building OR-Tools from source.

For example, [k-means-constrained](https://github.com/joshlk/k-means-constrained) depends on `ortools.graph.python.min_cost_flow` and is adding free-threaded (3.14t) wheels for true multi-threaded solving — those wheels can currently only be published for Linux because of this gap.

**Describe the solution you'd like**
Publish cp313t/cp314t wheels for macOS (x86_64 and arm64) and Windows (amd64) alongside the existing regular wheels, matching the platform coverage of the non-free-threaded builds.

**Describe alternatives you've considered**
Building OR-Tools from source in downstream CI, which is a heavy full C++ build and impractical for most dependent packages.

**Additional context**
Related: #4438 (original 3.13t wheel request) and #5243, which adds the `Py_mod_gil_not_used` declaration to the graph modules so importing them keeps the GIL disabled on free-threaded builds.

Contributor guide

Open the contributing guide

Research direction

Start by locating the configuration that publishes the existing regular OR-Tools wheels and compare its Linux, macOS, and Windows build matrices. Check how cp313t and cp314t are represented alongside regular builds, then verify that the resulting artifacts cover macOS x86_64 and arm64 and Windows amd64 before publication to PyPI.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp, python
Domain
build-system, release
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
52/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.