From c755193ee038e4d35ad25d5d02e0a1a8cecd9d6d Mon Sep 17 00:00:00 2001 From: "J. Nick Koston" Date: Mon, 24 Jul 2023 10:51:22 -0500 Subject: [PATCH] feat: initial cpython 3.12 support (#207) --- .github/workflows/ci.yml | 10 +++++++--- tests/client/test_methods.py | 2 +- tests/client/test_properties.py | 2 +- tests/test_big_message.py | 2 +- tests/test_glib_low_level.py | 4 ++-- tests/test_request_name.py | 2 +- 6 files changed, 13 insertions(+), 9 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index e61b8c3e..4db9950c 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -41,11 +41,15 @@ jobs: - "3.9" - "3.10" - "3.11" + - "3.12.0-beta.4" os: - ubuntu-latest extension: - "skip_cython" - "use_cython" + exclude: + - extension: use_cython + python-version: "3.12.0-beta.4" runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@v3 @@ -95,7 +99,7 @@ jobs: # - Create GitHub release # - Publish to PyPI - name: Python Semantic Release - uses: relekang/python-semantic-release@v7.33.1 + uses: python-semantic-release/python-semantic-release@v7.34.6 with: github_token: ${{ secrets.GITHUB_TOKEN }} pypi_token: ${{ secrets.PYPI_TOKEN }} @@ -120,7 +124,7 @@ jobs: uses: actions/setup-python@v4 - name: Install python-semantic-release - run: python -m pip install python-semantic-release + run: python -m pip install python-semantic-release==7.34.6 - name: Get Release Tag id: release_tag @@ -134,7 +138,7 @@ jobs: fetch-depth: 0 - name: Install cibuildwheel - run: python -m pip install cibuildwheel==2.10.2 + run: python -m pip install cibuildwheel==2.14.1 - name: Build wheels run: python -m cibuildwheel --output-dir wheelhouse diff --git a/tests/client/test_methods.py b/tests/client/test_methods.py index 5f6e89f7..66e05fe1 100644 --- a/tests/client/test_methods.py +++ b/tests/client/test_methods.py @@ -124,7 +124,7 @@ async def test_aio_proxy_object(): @pytest.mark.skipif( - sys.version_info[:3][1] in (10, 11), reason="segfaults on py3.10/py3.11" + sys.version_info[:3][1] in (10, 11, 12), reason="segfaults on py3.10/py3.11" ) @pytest.mark.skipif(not has_gi, reason=skip_reason_no_gi) def test_glib_proxy_object(): diff --git a/tests/client/test_properties.py b/tests/client/test_properties.py index 62f3907d..7b6776d2 100644 --- a/tests/client/test_properties.py +++ b/tests/client/test_properties.py @@ -97,7 +97,7 @@ async def test_aio_properties(): @pytest.mark.skipif( - sys.version_info[:3][1] in (10, 11), reason="segfaults on py3.10,py3.11" + sys.version_info[:3][1] in (10, 11, 12), reason="segfaults on py3.10,py3.11,py3.12" ) @pytest.mark.skipif(not has_gi, reason=skip_reason_no_gi) def test_glib_properties(): diff --git a/tests/test_big_message.py b/tests/test_big_message.py index 365d1dc3..0cca9eed 100644 --- a/tests/test_big_message.py +++ b/tests/test_big_message.py @@ -47,7 +47,7 @@ async def test_aio_big_message(): @pytest.mark.skipif(not has_gi, reason=skip_reason_no_gi) @pytest.mark.skipif( - sys.version_info[:3][1] in (10, 11), reason="segfaults on py3.10,py3.11" + sys.version_info[:3][1] in (10, 11, 12), reason="segfaults on py3.10,py3.11,py3.12" ) def test_glib_big_message(): "this tests that nonblocking reads and writes actually work for glib" diff --git a/tests/test_glib_low_level.py b/tests/test_glib_low_level.py index dc8a8758..2aa41e6a 100644 --- a/tests/test_glib_low_level.py +++ b/tests/test_glib_low_level.py @@ -55,7 +55,7 @@ def test_standard_interfaces(): @pytest.mark.skipif(not has_gi, reason=skip_reason_no_gi) @pytest.mark.skipif( - sys.version_info[:3][1] in (10, 11), reason="segfaults on py3.10,py3.11" + sys.version_info[:3][1] in (10, 11, 12), reason="segfaults on py3.10,py3.11,py3.12" ) def test_sending_messages_between_buses(): bus1 = MessageBus().connect_sync() @@ -125,7 +125,7 @@ def message_handler_error(sent): @pytest.mark.skipif(not has_gi, reason=skip_reason_no_gi) @pytest.mark.skipif( - sys.version_info[:3][1] in (10, 11), reason="segfaults on py3.10,py3.11" + sys.version_info[:3][1] in (10, 11, 12), reason="segfaults on py3.10,py3.11,py3.12" ) def test_sending_signals_between_buses(): bus1 = MessageBus().connect_sync() diff --git a/tests/test_request_name.py b/tests/test_request_name.py index d83cd699..02d1051d 100644 --- a/tests/test_request_name.py +++ b/tests/test_request_name.py @@ -71,7 +71,7 @@ async def get_name_owner(name): @pytest.mark.skipif( - sys.version_info[:3][1] in (10, 11), reason="segfaults on py3.10,py3.11" + sys.version_info[:3][1] in (10, 11, 12), reason="segfaults on py3.10,py3.11,py3.12" ) @pytest.mark.skipif(not has_gi, reason=skip_reason_no_gi) def test_request_name_glib():