Skip to content

Commit 5209041

Browse files
authored
Merge pull request #2061 from minrk/rm-37-intel
drop Python 3.7, stop building intel-only mac wheels
2 parents 096bb59 + 27d66b7 commit 5209041

File tree

19 files changed

+27
-190
lines changed

19 files changed

+27
-190
lines changed

.github/workflows/test.yml

Lines changed: 6 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -35,14 +35,14 @@ jobs:
3535
continue-on-error: ${{ matrix.zmq == 'head' }}
3636

3737
env:
38-
MACOSX_DEPLOYMENT_TARGET: "11.7"
38+
MACOSX_DEPLOYMENT_TARGET: "13.7"
3939

4040
strategy:
4141
fail-fast: true
4242
matrix:
4343
include:
4444
- os: macos-13
45-
python: "3.7"
45+
python: "3.8"
4646

4747
- os: macos-14
4848
python: "3.12"
@@ -57,7 +57,7 @@ jobs:
5757
zmq: bundled
5858

5959
- os: ubuntu-20.04
60-
python: "3.7"
60+
python: "3.8"
6161
zmq: bundled
6262
tornado: none
6363

@@ -66,7 +66,7 @@ jobs:
6666
zmq: bundled
6767

6868
- os: ubuntu-22.04
69-
python: pypy-3.7
69+
python: pypy-3.8
7070

7171
- os: ubuntu-22.04
7272
python: "3.9"
@@ -77,9 +77,6 @@ jobs:
7777

7878
- os: ubuntu-22.04
7979
python: "3.11"
80-
81-
- os: ubuntu-22.04
82-
python: "3.8"
8380
zmq: head
8481

8582
- os: ubuntu-22.04
@@ -93,11 +90,11 @@ jobs:
9390
free_threading: free_threading
9491

9592
- os: windows-2022
96-
python: "3.7"
93+
python: "3.8"
9794
arch: x86
9895

9996
- os: windows-2022
100-
python: "3.9"
97+
python: "3.11"
10198
arch: x64
10299

103100
- os: windows-2022

.github/workflows/wheels.yml

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ jobs:
6262
name: wheel-${{ matrix.name }}
6363

6464
env:
65-
MACOSX_DEPLOYMENT_TARGET: "10.9"
65+
MACOSX_DEPLOYMENT_TARGET: "10.15"
6666
CIBW_BUILD: "${{ matrix.cibw.build || '*' }}"
6767
CIBW_SKIP: "${{ matrix.cibw.skip || '' }}"
6868
CIBW_ARCHS: "${{ matrix.cibw.arch || 'auto' }}"
@@ -72,18 +72,13 @@ jobs:
7272
fail-fast: false
7373
matrix:
7474
include:
75-
- os: macos-13
76-
name: mac-cpython
77-
cibw:
78-
build: "cp*"
79-
8075
- os: macos-13
8176
name: mac-pypy
8277
cibw:
8378
build: "pp*"
8479

8580
- os: macos-14
86-
name: mac-arm
81+
name: mac-cpython
8782
cibw:
8883
arch: universal2
8984
build: "cp*"

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
This package contains Python bindings for [ZeroMQ](https://zeromq.org).
44
ØMQ is a lightweight and fast messaging implementation.
55

6-
PyZMQ should work with any reasonable version of Python (≥ 3.7), as well as PyPy.
6+
PyZMQ should work with any reasonable version of Python (≥ 3.8), as well as PyPy.
77
The Cython backend used by CPython supports libzmq ≥ 2.1.4 (including 3.2.x and 4.x),
88
but the CFFI backend used by PyPy only supports libzmq ≥ 3.2.2 (including 4.x).
99

docs/source/index.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ an overview of what the ØMQ API looks like in Python. For information on how to
1111
ØMQ in general, see the many examples in the excellent [ØMQ Guide], all of which
1212
have a version in Python.
1313

14-
PyZMQ works with Python 3 (≥ 3.7), as well as PyPy via CFFI.
14+
PyZMQ works with Python 3 (≥ 3.8), as well as PyPy via CFFI.
1515

1616
Please don't hesitate to report pyzmq-specific issues to our [tracker] on GitHub.
1717
General questions about ØMQ are better sent to the [ØMQ tracker] or [mailing list].

examples/security/asyncio-ironhouse.py

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -109,10 +109,3 @@ async def run() -> None:
109109
logging.basicConfig(level=level, format="[%(levelname)s] %(message)s")
110110

111111
asyncio.run(run())
112-
113-
# Note: asyncio.run() was added in Python 3.7.
114-
# For earlier Python versions, you can use:
115-
#
116-
# loop = asyncio.get_event_loop()
117-
# loop.run_until_complete(run())
118-
# loop.close()

pyproject.toml

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ authors = [
1919
{ name = "Min Ragan-Kelley" },
2020
]
2121
license = { file = "LICENSE.md" }
22-
requires-python = ">=3.7"
22+
requires-python = ">=3.8"
2323
classifiers = [
2424
"Development Status :: 5 - Production/Stable",
2525
"Intended Audience :: Developers",
@@ -32,7 +32,6 @@ classifiers = [
3232
"Topic :: System :: Networking",
3333
"Programming Language :: Python :: 3",
3434
"Programming Language :: Python :: 3 :: Only",
35-
"Programming Language :: Python :: 3.7",
3635
"Programming Language :: Python :: 3.8",
3736
"Programming Language :: Python :: 3.9",
3837
"Programming Language :: Python :: 3.10",
@@ -166,9 +165,8 @@ before-all = "bash tools/install_libzmq.sh"
166165
repair-wheel-command = "delocate-wheel --sanitize-rpaths --require-archs {delocate_archs} -w {dest_dir} -v {wheel}"
167166

168167
[tool.cibuildwheel.macos.environment]
169-
# note: everything here needs to also be duplicated in overrides below
170168
ZMQ_PREFIX = "/tmp/zmq"
171-
MACOSX_DEPLOYMENT_TARGET = "10.9"
169+
MACOSX_DEPLOYMENT_TARGET = "10.15"
172170

173171
[tool.cibuildwheel.windows]
174172
before-all = "python buildutils/bundle.py licenses"
@@ -191,10 +189,6 @@ repair-wheel-command = """\
191189
"cmake.define.ZMQ_HAVE_IPC" = "OFF"
192190
"cmake.define.POLLER" = "select"
193191

194-
# mac-arm target is 10.15
195-
[[tool.cibuildwheel.overrides]]
196-
select = "*macos*{universal2,arm64}*"
197-
environment = { ZMQ_PREFIX = "/tmp/zmq", MACOSX_DEPLOYMENT_TARGET = "10.15" }
198192

199193
# manylinux2010 for (less) old cp37-9, pp37-8
200194
[[tool.cibuildwheel.overrides]]

pytest.ini

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,3 +10,4 @@ testpaths =
1010
tests
1111
# automatically run coroutine tests with asyncio
1212
asyncio_mode = auto
13+
asyncio_default_fixture_loop_scope = function

test-requirements.txt

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,15 @@
11
black; platform_python_implementation != "PyPy"
22
# gevent wheels on mac cause Illegal Instruction
33
codecov
4-
# coverage 5 has issues with Cython: https://github.com/cython/cython/issues/3515
5-
coverage<5; python_version < "3.7"
6-
coverage>=7.1; python_version >= "3.7"
4+
coverage>=7.1
75
cython; platform_python_implementation != "PyPy" # required for Cython tests
86
cython>=3.0.0b3; platform_python_implementation != "PyPy" and python_version >= "3.12" # required for Cython tests
97
flake8
108
gevent; platform_python_implementation != "PyPy" and sys_platform != "win32" and sys_platform != "darwin" and python_version < "3.11"
119
mypy; platform_python_implementation != "PyPy"
1210
pymongo
1311
pytest
14-
pytest-asyncio>=0.16; python_version < "3.7"
15-
pytest-asyncio>=0.17; python_version >= "3.7"
12+
pytest-asyncio>=0.17
1613
# pytest-cov 2.11 requires coverage 5, which still doesn't work with Cython
1714
pytest-cov==2.10.*
1815
pytest-rerunfailures

tests/test_asyncio.py

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77
import json
88
import os
99
import sys
10-
from concurrent.futures import CancelledError
1110
from multiprocessing import Process
1211

1312
import pytest
@@ -121,13 +120,8 @@ async def test_recv_json_cancelled(push_pull):
121120
await asyncio.sleep(0)
122121
obj = dict(a=5)
123122
await a.send_json(obj)
124-
# CancelledError change in 3.8 https://bugs.python.org/issue32528
125-
if sys.version_info < (3, 8):
126-
with pytest.raises(CancelledError):
127-
recvd = await f
128-
else:
129-
with pytest.raises(asyncio.exceptions.CancelledError):
130-
recvd = await f
123+
with pytest.raises(asyncio.CancelledError):
124+
recvd = await f
131125
assert f.done()
132126
# give it a chance to incorrectly consume the event
133127
events = await b.poll(timeout=5)

tests/test_auth.py

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -398,10 +398,6 @@ def make_auth(self):
398398
return ThreadAuthenticator(self.context)
399399

400400

401-
@pytest.mark.skipif(
402-
sys.platform == 'win32' and sys.version_info < (3, 8),
403-
reason="flaky event loop cleanup on windows+py<38",
404-
)
405401
class TestAsyncioAuthentication(AuthTest):
406402
"""Test authentication running in a thread"""
407403

0 commit comments

Comments
 (0)