From 76d92c63bf89ebdc3bd8eabc98ad17cb52bc908c Mon Sep 17 00:00:00 2001 From: Albert Date: Sun, 1 Nov 2026 07:01:44 +0000 Subject: [PATCH 1/2] ci: pin actions and Ubuntu runners --- .github/workflows/ci.yml | 12 ++++++------ .github/workflows/release-please.yml | 12 ++++++------ .github/workflows/semantic-pr.yml | 4 ++-- 3 files changed, 14 insertions(+), 14 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index f425193..73d4e5a 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -7,13 +7,13 @@ on: jobs: lint: name: Lint & Typecheck - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4 - name: Install poetry run: pipx install poetry - name: Set up Python - uses: actions/setup-python@v5 + uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5 with: python-version: "3.14" cache: "poetry" @@ -27,7 +27,7 @@ jobs: run: poetry run mypy src tests test: - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 strategy: matrix: python-version: ["3.9", "3.10", "3.11", "3.12", "3.13", "3.14"] @@ -47,7 +47,7 @@ jobs: --health-start-period 10s steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4 with: submodules: recursive @@ -55,7 +55,7 @@ jobs: run: pipx install poetry - name: Set up Python - uses: actions/setup-python@v5 + uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5 with: python-version: ${{ matrix.python-version }} cache: "poetry" diff --git a/.github/workflows/release-please.yml b/.github/workflows/release-please.yml index 0566654..71c71d1 100644 --- a/.github/workflows/release-please.yml +++ b/.github/workflows/release-please.yml @@ -7,14 +7,14 @@ on: jobs: check: - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 permissions: contents: write pull-requests: write steps: - - uses: googleapis/release-please-action@v4 + - uses: googleapis/release-please-action@5c625bfb5d1ff62eadeeb3772007f7f66fdcf071 # v4 id: release with: token: ${{ secrets.GITHUB_TOKEN }} @@ -29,7 +29,7 @@ jobs: if: ${{ needs.check.outputs.release_created }} - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 permissions: contents: write @@ -37,11 +37,11 @@ jobs: id-token: write steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4 with: persist-credentials: false - name: Set up Python - uses: actions/setup-python@v5 + uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5 with: python-version: "3.14" - name: Install dependencies @@ -52,4 +52,4 @@ jobs: run: | poetry build - name: Publish to PyPI - uses: pypa/gh-action-pypi-publish@release/v1 + uses: pypa/gh-action-pypi-publish@7245906fb61fa33a13554f9d5fb856fe61758086 # release/v1 diff --git a/.github/workflows/semantic-pr.yml b/.github/workflows/semantic-pr.yml index 28320d2..c0c2f73 100644 --- a/.github/workflows/semantic-pr.yml +++ b/.github/workflows/semantic-pr.yml @@ -13,10 +13,10 @@ permissions: jobs: semantic-pr: name: Validate PR title - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 steps: - name: Validate title - uses: amannn/action-semantic-pull-request@v5 + uses: amannn/action-semantic-pull-request@e32d7e603df1aa1ba07e981f2a23455dee596825 # v5 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: From 715a4f68a8b996523e27b8cbecf106b8ecac16cc Mon Sep 17 00:00:00 2001 From: Albert Date: Mon, 2 Nov 2026 06:24:18 +0000 Subject: [PATCH 2/2] test(ibis): type error expression before checking propagation --- tests/test_client.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/tests/test_client.py b/tests/test_client.py index d34387f..36d6395 100644 --- a/tests/test_client.py +++ b/tests/test_client.py @@ -348,7 +348,11 @@ def test_ibis_describe_does_not_execute_data_and_preserves_query_errors(client): ibis = pytest.importorskip("ibis") backend = ibis.altertable.from_connection(client) - table = backend.sql("SELECT error('ibis execution failed') AS value") + # Give the always-failing expression a supported result type so execution + # reaches the remote query instead of failing local schema validation. + table = backend.sql( + "SELECT CAST(error('ibis execution failed') AS BIGINT) AS value" + ) with pytest.raises(errors.ApiError, match="ibis execution failed"): table.execute()