diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index d49bb4e7..971bedf8 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -37,7 +37,7 @@ jobs: mkdir -p dist/ echo "${VERSION}" > dist/VERSION - - uses: actions/upload-artifact@a8a3f3ad30e3422c9c7b888a15615d19a852ae32 # v3.1.3 + - uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2 with: name: dist path: dist/ @@ -55,7 +55,7 @@ jobs: fetch-depth: 50 submodules: true - - uses: actions/setup-python@65d7f2d534ac1bc67fcd62888c5f4f3d2cb2b236 # v4.7.1 + - uses: actions/setup-python@e797f83bcb11b83ae66e0230d6156d7c80228e7c # v6.0.0 with: python-version: 3.x @@ -64,7 +64,7 @@ jobs: python -m pip install --upgrade setuptools wheel pip python setup.py sdist - - uses: actions/upload-artifact@a8a3f3ad30e3422c9c7b888a15615d19a852ae32 # v3.1.3 + - uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2 with: name: dist path: dist/*.tar.* @@ -84,6 +84,7 @@ jobs: - "cp312-*" - "cp313-*" - "cp314-*" + - "cp314t-*" cibw_arch: ["x86_64", "aarch64", "universal2"] exclude: - os: ubuntu-latest @@ -115,14 +116,14 @@ jobs: run: | brew install gnu-sed libtool autoconf automake - - uses: pypa/cibuildwheel@7940a4c0e76eb2030e473a5f864f291f63ee879b # v2.21.3 + - uses: pypa/cibuildwheel@7c619efba910c04005a835b110b057fc28fd6e93 # v3.2.0 env: CIBW_BUILD_VERBOSITY: 1 CIBW_BUILD: ${{ matrix.cibw_python }} CIBW_ARCHS: ${{ matrix.cibw_arch }} CIBW_TEST_SKIP: "*universal2:arm64" - - uses: actions/upload-artifact@a8a3f3ad30e3422c9c7b888a15615d19a852ae32 # v3.1.3 + - uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2 with: name: dist path: wheelhouse/*.whl diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index bdf27875..ec325e5f 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -23,6 +23,7 @@ jobs: - "3.12" - "3.13" - "3.14" + - "3.14t" os: [ubuntu-latest, macos-latest] env: @@ -45,7 +46,7 @@ jobs: __version__\s*=\s*(?:['"])([[:PEP440:]])(?:['"]) - name: Set up Python ${{ matrix.python-version }} - uses: actions/setup-python@65d7f2d534ac1bc67fcd62888c5f4f3d2cb2b236 # v4.7.1 + uses: actions/setup-python@e797f83bcb11b83ae66e0230d6156d7c80228e7c # v6.0.0 if: steps.release.outputs.version == 0 with: python-version: ${{ matrix.python-version }} diff --git a/pyproject.toml b/pyproject.toml index d7ee1f1f..2fc6fa44 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -41,7 +41,7 @@ test = [ 'flake8~=6.1', 'psutil', 'pycodestyle~=2.11.0', - 'pyOpenSSL~=23.0.0', + 'pyOpenSSL~=25.3.0', 'mypy>=0.800', ] dev = [ diff --git a/tests/test_tcp.py b/tests/test_tcp.py index 8759383d..80584a86 100644 --- a/tests/test_tcp.py +++ b/tests/test_tcp.py @@ -405,6 +405,8 @@ async def client(addr): self.assertEqual(await reader.readexactly(2), b'OK') re = r'(a bytes-like object)|(must be byte-ish)' + if sys.version_info >= (3, 14): + re += r'|(must be a bytes, bytearray, or memoryview object)' with self.assertRaisesRegex(TypeError, re): writer.write('AAAA') diff --git a/uvloop/loop.pyx b/uvloop/loop.pyx index f9a5a239..2ed1f272 100644 --- a/uvloop/loop.pyx +++ b/uvloop/loop.pyx @@ -1,4 +1,4 @@ -# cython: language_level=3, embedsignature=True +# cython: language_level=3, embedsignature=True, freethreading_compatible=True import asyncio cimport cython