explosion / explosion/spaCy

Add cp314t (free-threaded Python 3.14) wheel support

Open
#14,006 0 comments 3 reactions 0 assignees View on GitHub
Dominant language
Python
Stars
33.9k
Forks
4.7k
Avg merge
3m
Merged PRs (30d)
1

Description

## Summary

Request to add pre-built wheels for free-threaded Python 3.14 (`cp314t`) to PyPI releases.

## Context

- Discussion tracking community interest: #13995
- cp314 regular wheels are already built but missing from PyPI: #13949
- Other key ecosystem packages (`numpy`, `pydantic-core`, `uvloop`, `greenlet`) have already shipped cp314t wheels, making spaCy one of the last blockers for teams wanting to run on free-threaded Python 3.14

## What's needed

1. Mark spaCy's C extensions as free-threaded safe (or audit for GIL assumptions)
2. Add `cp314t` to the CI wheel-building matrix
3. Upload cp314t wheels to PyPI alongside regular cp314 wheels in future releases

## Why this matters

Teams using spaCy in ML/NLP pipelines cannot migrate to `python:3.14t` (free-threaded CPython) until spaCy ships cp314t wheels. Since the rest of the major deps have already committed to cp314t, spaCy is the blocking dependency.

Contributor guide

Open the contributing guide

Research direction

Start by locating the CI wheel-building matrix and the configuration for spaCy's C extensions. Audit the extensions for free-threaded Python assumptions, then add cp314t coverage and verify that the resulting wheels are built and included in future PyPI releases.

Written by the indexing model from the issue text.

Assessment

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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.