Skip to content

bithuman: fail closed on Python versions the SDK has no build for - #6614

Merged
longcw merged 3 commits into
mainfrom
fix/bithuman-python-314-lock
Jul 31, 2026
Merged

bithuman: fail closed on Python versions the SDK has no build for#6614
longcw merged 3 commits into
mainfrom
fix/bithuman-python-314-lock

Conversation

@u9g

@u9g u9g commented Jul 30, 2026

Copy link
Copy Markdown
Contributor

Rescoped: #6561 landed the marker on the plugin's own dependency while this was open, so the root override-dependencies approach here is redundant. Rebased onto main; what's left is the metadata fix.

requires-python was >=3.10 and the classifiers claimed 3.10 only, while bithuman 2.6+ requires >=3.11,<3.14. The wide dep range (>=0.5.25,<3) let a 3.10 install backtrack to bithuman==2.3.10 (which ships cp310 wheels) and succeed against a stale SDK rather than being refused, so the floor moves into requires-python and the classifiers list the versions that actually work.

The <3.14 bound stays a marker: the virtual workspace root intersects requires-python over all members, so an upper bound here would cap the whole workspace.

Verified: the built wheel reports Requires-Python: >=3.11 and Requires-Dist: bithuman<3,>=0.5.25; python_version < '3.14'; uv sync --python 3.14 --all-extras --dev resolves with bithuman absent and the plugin still installed; --python 3.13 installs bithuman==2.7.0; uv lock is a no-op.

Not addressed: there are no Windows or macOS-x86_64 bithuman wheels, so installs fail there on every Python version. The >=0.5.25 floor is also stale — it is what makes deep backtracks possible — but raising it is a user-facing compat change and belongs in its own PR.

@u9g
u9g requested a review from a team as a code owner July 30, 2026 12:21
devin-ai-integration[bot]

This comment was marked as resolved.

requires-python was >=3.10 and the classifiers claimed 3.10 only, but bithuman
2.6+ requires >=3.11,<3.14. The wide dep range (>=0.5.25,<3) let a 3.10 install
backtrack to bithuman 2.3.10 and succeed against a stale SDK instead of being
refused, so raise the floor in requires-python and list the versions that work.

The 3.14 marker keeps its own bound; with requires-python at >=3.11 its lower
half is redundant.
@u9g
u9g force-pushed the fix/bithuman-python-314-lock branch from cb16992 to 4480540 Compare July 30, 2026 12:52
@u9g u9g changed the title bithuman: gate the SDK off Python 3.14 in the lock, not in published metadata bithuman: fail closed on Python versions the SDK has no build for Jul 30, 2026
devin-ai-integration[bot]

This comment was marked as resolved.

readme = "README.md"
license = "Apache-2.0"
requires-python = ">=3.10.0"
requires-python = ">=3.11"

@longcw longcw Jul 30, 2026

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

could you explain a bit why requires-python = ">=3.11" is needed?

@u9g u9g Jul 30, 2026

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

current bithuman (2.6.0/2.7.0/2.8.0) only have wheels for: cp311, cp312, cp313

2.3.10 includes wheels for: cp310, cp311, cp312, cp313, cp314

then starting >=2.3.11, they only ship cp311–cp313. idk what the difference is of if we are okay with 2.3.10, if we are I guess we can instead do python 3.10-3.14

dependencies = [
"livekit-agents>=1.6.7",
"bithuman>=0.5.25,<3; python_version >= '3.11' and python_version < '3.14'",
"bithuman>=0.5.25,<3; python_version < '3.14'",

@u9g u9g Jul 30, 2026

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I made PIL, loguru and cv2 explicit deps, rather than implicit as they were before.

u9g added 2 commits July 30, 2026 13:00
The install-time refusal on 3.10 is not worth a narrower floor than the rest
of the workspace, so requires-python and the 3.10 classifier go back to what
they were and the marker keeps both bounds.

Both bounds are load-bearing at the current floor: 2.3.10 ships cp310 and
cp314 wheels and declares no upper bound, so dropping either lets 3.10 or
3.14 resolve onto it rather than omitting bithuman.
The wide floor is load-bearing, not stale: 2.x dropped Windows, x86_64 macOS
and macOS < 14, and those platforms resolve the 1.x line instead. 1.5.0 has
every member avatar.py touches, inheriting interrupt/cleanup/get_first_frame
from the sync base class.
@longcw
longcw merged commit 86868bc into main Jul 31, 2026
23 of 24 checks passed
@longcw
longcw deleted the fix/bithuman-python-314-lock branch July 31, 2026 01:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants