Skip to content

Commit cea3935

Browse files
Move CI to PyPy 3.11, raise minimum Python to 3.11
CI is currently red on every leg. The dependency chain sqlalchemy-stubs 0.4 -> mypy 2.3.0 -> ast-serialize 0.6.0 (a Rust/PyO3 extension) requires Python >= 3.11, so installation fails outright on pypy3.9, pypy3.10 and CPython 3.9: error: the configured PyPy interpreter version (3.10) is lower than PyO3's minimum supported version (3.11) Raise the floor to 3.11 across the board and move PyPy to 3.11 (PyPy 7.3.23 / Python 3.11.15, released 2026-05-26). - .github/workflows/python-package.yml: matrix ["3.9", "3.12", "pypy3.9", "pypy3.10"] -> ["3.11", "3.12", "pypy3.11"]. Verified that pypy3.11 resolves in the PyPy release index that actions/setup-python reads (downloads.python.org/pypy/versions.json lists 3.11.15 / 7.3.23 as stable). - README.md: badge and stated minimum 3.9 -> 3.11; note PyPy 3.11 as the supported PyPy version. - docs/setup_linux.md: install PyPy 3.11; update the download URL to pypy3.11-v7.3.23-linux64.tar.gz. Note the archive is now .tar.gz, not the .tar.bz2 that older PyPy releases shipped. - docs/setup_macos.md: PyPy 3.9 -> PyPy 3.11. - .gitignore: replace the pypy39/pypy310 entries with pypy311. vectors/ is deliberately untouched. It is a separate CPython environment (currently 3.9.4, with gensim 3.8.2 from 2019) that the main app's minimum does not govern, and there is no evidence that stack builds on 3.11. Treat modernising it as separate work. Both new URLs verified to return HTTP 200. The shell scripts under scripts/ reference 'venv/' generically and need no change. Known unrelated failure: tests/test_queries.py::test_currency fails on CPython 3.12 with dependencies installed successfully, so it is independent of the interpreter change and will need fixing separately for a fully green build. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
1 parent 3e6eebe commit cea3935

5 files changed

Lines changed: 9 additions & 9 deletions

File tree

.github/workflows/python-package.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ jobs:
3636
3737
strategy:
3838
matrix:
39-
python-version: ["3.9", "3.12", "pypy3.9", "pypy3.10"]
39+
python-version: ["3.11", "3.12", "pypy3.11"]
4040

4141
steps:
4242
- uses: actions/checkout@v4

.gitignore

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -125,8 +125,7 @@ p3*/
125125
p7*/
126126
pypy/
127127
pypy*
128-
pypy39/*
129-
pypy310/*
128+
pypy311/*
130129
cpython*/
131130
venv
132131
p312/*

README.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
[![License: GPL v3](https://img.shields.io/badge/License-GPLv3-blue.svg)](https://www.gnu.org/licenses/gpl-3.0)
2-
[![Python 3.9](https://img.shields.io/badge/python-3.9-blue.svg)](https://www.python.org/downloads/release/python-390/)
2+
[![Python 3.11](https://img.shields.io/badge/python-3.11-blue.svg)](https://www.python.org/downloads/release/python-3110/)
33
[![Build](https://github.com/mideind/Greynir/actions/workflows/python-package.yml/badge.svg)]()
44

55
<img src="static/img/greynir-logo-large.png" alt="Greynir" width="200" height="200" align="right" style="margin-left:20px; margin-bottom: 20px;">
@@ -82,8 +82,9 @@ Greynir may in due course be expanded, for instance:
8282
Greynir is written in [Python 3](https://www.python.org/) except for its core
8383
Earley-based parser module which is written in C++ and called
8484
via [CFFI](https://cffi.readthedocs.org/en/latest/index.html).
85-
Greynir requires Python 3.9 or later, and runs on CPython and
85+
Greynir requires Python 3.11 or later, and runs on CPython and
8686
[PyPy](http://pypy.org/), with the latter being recommended for performance reasons.
87+
PyPy 3.11 is the supported PyPy version.
8788

8889
Greynir works in stages, roughly as follows:
8990

docs/setup_linux.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -50,14 +50,14 @@ Install [git](https://git-scm.com) if it's not already installed:
5050
sudo apt-get install git
5151
```
5252

53-
Install PyPy 3.9 or later ([available here](http://pypy.org/download.html)).
53+
Install PyPy 3.11 ([available here](http://pypy.org/download.html)).
5454
For example:
5555

5656
```bash
5757
mkdir ~/pypy
5858
cd ~/pypy
59-
wget https://downloads.python.org/pypy/pypy3.9-v7.3.12-linux64.tar.bz2
60-
tar --strip-components=1 -xvf pypy3.9-v7.3.12-linux64.tar.bz2
59+
wget https://downloads.python.org/pypy/pypy3.11-v7.3.23-linux64.tar.gz
60+
tar --strip-components=1 -xvf pypy3.11-v7.3.23-linux64.tar.gz
6161
```
6262

6363
The PyPy binary should now be installed in `~/pypy/bin/pypy3`.

docs/setup_macos.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ brew install python3 pypy3 postgresql ossp-uuid
1313
Alternatively, you can install these packages manually:
1414

1515
* [Python 3](https://www.python.org/downloads/mac-osx/)
16-
* [PyPy 3.9](https://pypy.org/download.html)
16+
* [PyPy 3.11](https://pypy.org/download.html)
1717
* [PostgreSQL](https://www.postgresql.org/download/macosx/)
1818
* [uuid-ossp module](https://www.postgresql.org/docs/devel/uuid-ossp.html)
1919

0 commit comments

Comments
 (0)