From c93f2900e89a35af5075275421e1aa57ea5fcbbc Mon Sep 17 00:00:00 2001 From: Mark Backman Date: Wed, 6 Aug 2025 11:23:51 -0400 Subject: [PATCH] Add pyproject.toml compatiblity workflow to ensure pyproject.toml works across versions --- .github/workflows/python-compatibility.yaml | 50 +++++++++++++++++++++ uv.lock | 2 +- 2 files changed, 51 insertions(+), 1 deletion(-) create mode 100644 .github/workflows/python-compatibility.yaml diff --git a/.github/workflows/python-compatibility.yaml b/.github/workflows/python-compatibility.yaml new file mode 100644 index 000000000..43ea4ad93 --- /dev/null +++ b/.github/workflows/python-compatibility.yaml @@ -0,0 +1,50 @@ +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.4"] + + 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 + run: | + uv sync --group dev --all-extras --no-extra krisp + + - name: Verify installation + run: | + uv run python --version + uv run python -c "import pipecat; print('✅ Pipecat imports successfully')" \ No newline at end of file diff --git a/uv.lock b/uv.lock index 212d43b0c..c132b7e50 100644 --- a/uv.lock +++ b/uv.lock @@ -4337,7 +4337,7 @@ dev = [ { name = "pytest", specifier = "~=8.4.1" }, { name = "pytest-aiohttp", specifier = "==1.1.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 = "setuptools", specifier = "~=78.1.1" }, { name = "setuptools-scm", specifier = "~=8.3.1" },