Add new python-compatiblity workflow to check for dependency compatibility across supported python versions
This commit is contained in:
61
.github/workflows/python-compatibility.yaml
vendored
Normal file
61
.github/workflows/python-compatibility.yaml
vendored
Normal file
@@ -0,0 +1,61 @@
|
|||||||
|
name: Python Compatibility Test
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches: [main, develop]
|
||||||
|
paths: ['pyproject.toml']
|
||||||
|
pull_request:
|
||||||
|
branches: [main, develop]
|
||||||
|
paths: ['pyproject.toml']
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
test-compatibility:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
strategy:
|
||||||
|
fail-fast: false
|
||||||
|
matrix:
|
||||||
|
python-version: ['3.10.18', '3.11.13', '3.12.11', '3.13.5']
|
||||||
|
|
||||||
|
name: Python ${{ matrix.python-version }}
|
||||||
|
steps:
|
||||||
|
- name: Checkout code
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- name: Install system dependencies
|
||||||
|
run: |
|
||||||
|
sudo apt-get update
|
||||||
|
sudo apt-get install -y \
|
||||||
|
portaudio19-dev \
|
||||||
|
libcairo2-dev \
|
||||||
|
libgirepository1.0-dev \
|
||||||
|
pkg-config
|
||||||
|
|
||||||
|
- name: Install uv
|
||||||
|
uses: astral-sh/setup-uv@v4
|
||||||
|
with:
|
||||||
|
version: 'latest'
|
||||||
|
|
||||||
|
- name: Set up Python ${{ matrix.python-version }}
|
||||||
|
run: |
|
||||||
|
uv python install ${{ matrix.python-version }}
|
||||||
|
uv python pin ${{ matrix.python-version }}
|
||||||
|
|
||||||
|
- name: Test uv sync with all extras (Python < 3.13)
|
||||||
|
if: "!startsWith(matrix.python-version, '3.13.')"
|
||||||
|
run: |
|
||||||
|
uv sync --group dev --all-extras --no-extra krisp
|
||||||
|
|
||||||
|
- name: Test uv sync without PyTorch extras (Python 3.13+)
|
||||||
|
if: startsWith(matrix.python-version, '3.13.')
|
||||||
|
run: |
|
||||||
|
uv sync --group dev --all-extras \
|
||||||
|
--no-extra krisp \
|
||||||
|
--no-extra ultravox \
|
||||||
|
--no-extra local-smart-turn \
|
||||||
|
--no-extra moondream \
|
||||||
|
--no-extra mlx-whisper
|
||||||
|
|
||||||
|
- name: Verify installation
|
||||||
|
run: |
|
||||||
|
uv run python --version
|
||||||
|
uv run python -c "import pipecat; print('✅ Pipecat imports successfully')"
|
||||||
@@ -34,8 +34,6 @@ dependencies = [
|
|||||||
"resampy~=0.4.3",
|
"resampy~=0.4.3",
|
||||||
"soxr~=0.5.0",
|
"soxr~=0.5.0",
|
||||||
"openai>=1.74.0,<2",
|
"openai>=1.74.0,<2",
|
||||||
# Explicit dependency pins for Python 3.11+ compatibility
|
|
||||||
"numba>=0.60.0,<1",
|
|
||||||
]
|
]
|
||||||
|
|
||||||
[project.urls]
|
[project.urls]
|
||||||
|
|||||||
4
uv.lock
generated
4
uv.lock
generated
@@ -4029,7 +4029,6 @@ dependencies = [
|
|||||||
{ name = "loguru" },
|
{ name = "loguru" },
|
||||||
{ name = "markdown" },
|
{ name = "markdown" },
|
||||||
{ name = "nltk" },
|
{ name = "nltk" },
|
||||||
{ name = "numba" },
|
|
||||||
{ name = "numpy" },
|
{ name = "numpy" },
|
||||||
{ name = "openai" },
|
{ name = "openai" },
|
||||||
{ name = "pillow" },
|
{ name = "pillow" },
|
||||||
@@ -4270,7 +4269,6 @@ requires-dist = [
|
|||||||
{ name = "mlx-whisper", marker = "extra == 'mlx-whisper'", specifier = "~=0.4.2" },
|
{ name = "mlx-whisper", marker = "extra == 'mlx-whisper'", specifier = "~=0.4.2" },
|
||||||
{ name = "nltk", specifier = ">=3.9.1,<4" },
|
{ name = "nltk", specifier = ">=3.9.1,<4" },
|
||||||
{ name = "noisereduce", marker = "extra == 'noisereduce'", specifier = "~=3.0.3" },
|
{ name = "noisereduce", marker = "extra == 'noisereduce'", specifier = "~=3.0.3" },
|
||||||
{ name = "numba", specifier = ">=0.60.0,<1" },
|
|
||||||
{ name = "numpy", specifier = ">=1.26.4,<3" },
|
{ name = "numpy", specifier = ">=1.26.4,<3" },
|
||||||
{ name = "nvidia-riva-client", marker = "extra == 'riva'", specifier = "~=2.21.1" },
|
{ name = "nvidia-riva-client", marker = "extra == 'riva'", specifier = "~=2.21.1" },
|
||||||
{ name = "onnxruntime", marker = "extra == 'silero'", specifier = "~=1.20.1" },
|
{ name = "onnxruntime", marker = "extra == 'silero'", specifier = "~=1.20.1" },
|
||||||
@@ -4337,7 +4335,7 @@ dev = [
|
|||||||
{ name = "pytest", specifier = "~=8.4.1" },
|
{ name = "pytest", specifier = "~=8.4.1" },
|
||||||
{ name = "pytest-aiohttp", specifier = "==1.1.0" },
|
{ name = "pytest-aiohttp", specifier = "==1.1.0" },
|
||||||
{ name = "pytest-asyncio", specifier = "~=1.0.0" },
|
{ name = "pytest-asyncio", specifier = "~=1.0.0" },
|
||||||
{ name = "python-dotenv", specifier = "~=1.1.1" },
|
{ name = "python-dotenv", specifier = ">=1.0.1,<2.0.0" },
|
||||||
{ name = "ruff", specifier = "~=0.12.1" },
|
{ name = "ruff", specifier = "~=0.12.1" },
|
||||||
{ name = "setuptools", specifier = "~=78.1.1" },
|
{ name = "setuptools", specifier = "~=78.1.1" },
|
||||||
{ name = "setuptools-scm", specifier = "~=8.3.1" },
|
{ name = "setuptools-scm", specifier = "~=8.3.1" },
|
||||||
|
|||||||
Reference in New Issue
Block a user