Skip to content

Commit

Permalink
Bump to greenlet 3.0rc2 and require it on Py3.11 as well as 3.12. Als…
Browse files Browse the repository at this point in the history
…o, since greenlet was proven to be the source of the SystemError and not miscompilation, add the old 2014 x86_64 image back to the matrix.
  • Loading branch information
jamadden committed Sep 11, 2023
1 parent 0047199 commit ca0f9cb
Show file tree
Hide file tree
Showing 4 changed files with 13 additions and 7 deletions.
5 changes: 3 additions & 2 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -172,8 +172,8 @@ jobs:
pip install -q -U 'cffi;platform_python_implementation=="CPython"'
pip install -q -U 'cython>=3.0.2'
# Use a debug version of greenlet to help catch any errors earlier.
CFLAGS="$CFLAGS -Og -g -UNDEBUG" pip install -v --no-binary :all: 'greenlet>=2.0.0;platform_python_implementation=="CPython" and python_version < "3.12"'
CFLAGS="$CFLAGS -Og -g -UNDEBUG" pip install -v --no-binary :all: 'greenlet>=3.0rc1;platform_python_implementation=="CPython" and python_version >= "3.12"'
CFLAGS="$CFLAGS -Og -g -UNDEBUG" pip install -v --no-binary :all: 'greenlet>=2.0.0;platform_python_implementation=="CPython" and python_version < "3.11"'
CFLAGS="$CFLAGS -Og -g -UNDEBUG" pip install -v --no-binary :all: 'greenlet>=3.0rc2;platform_python_implementation=="CPython" and python_version >= "3.11"'
- name: Build gevent (non-Mac)
if: ${{ ! startsWith(runner.os, 'Mac') }}
Expand Down Expand Up @@ -456,6 +456,7 @@ jobs:
- manylinux_2_28_x86_64
- musllinux_1_1_x86_64
- musllinux_1_1_aarch64
- manylinux2014_x86_84
name: ${{ matrix.image }}
steps:
- name: checkout
Expand Down
5 changes: 5 additions & 0 deletions docs/changes/1985.bugfix
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
Require greenlet 3.0 on Python 3.11 and Python 3.12; greenlet 3.0 is
recommended for all platforms. This fixes a number of obscure crashes
on all versions of Python, as well as fixing a fairly common problem
on Python 3.11+ that could manifest as either a crash or as a
``SystemError``.
4 changes: 2 additions & 2 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -29,8 +29,8 @@ requires = [
# have to break the ABI again.
# 3.0 is ABI compatible with earlier releases, so we can switch back and
# forth between 2 and 3 without recompiling. 3.0 is required for
# Python 3.12
"greenlet >= 3.0rc1 ; platform_python_implementation == 'CPython'",
# Python 3.12, and it fixes some serious bugs in Python 3.11.
"greenlet >= 3.0rc2 ; platform_python_implementation == 'CPython'",
]

[tool.towncrier]
Expand Down
6 changes: 3 additions & 3 deletions setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -209,9 +209,9 @@
# 2.0.0 supports everything 1.1.3 did, but breaks the ABI in a way that hopefully
# won't break again.
# 3.0 is ABI compatible and adds support for Python 3.12 (but right
# now it's alpha because of Cython, so we only require it on 3.12)
'greenlet >= 2.0.0 ; platform_python_implementation=="CPython" and python_version < "3.12"',
'greenlet >= 3.0rc1 ; platform_python_implementation=="CPython" and python_version >= "3.12"',
# now it's RC pending additional testing, so we only require it on 3.12)
'greenlet >= 2.0.0 ; platform_python_implementation=="CPython" and python_version < "3.11"',
'greenlet >= 3.0rc2 ; platform_python_implementation=="CPython" and python_version >= "3.11"',
]

# Note that we don't add cffi to install_requires, it's
Expand Down

0 comments on commit ca0f9cb

Please sign in to comment.