Skip to content

feat: drop pypy, fix memory bug, cap pytest - #1201

Merged
henryiii merged 7 commits into
developfrom
ci/cap-pytest
Oct 30, 2026
Merged

henryiii merged 7 commits into
developfrom
ci/cap-pytest

Conversation

@henryiii

@henryiii henryiii commented Oct 28, 2026 •

Copy link
Copy Markdown
Member

The spacing bug was fixed in cibuildwheel 4.3.0+.

🤖 AI text below 🤖

pytest 9.2 removed Node._nodeid. pytest-benchmark 5.3.0 (latest) still uses it, so the wheel tests fail on all platforms (cibuildwheel does not use the lock file). This caps pytest below 9.2 in the test group until ionelmc/pytest-benchmark#321 is fixed in a release. Same as scikit-hep/particle#818.

pytest 9.2 removed Node._nodeid, which pytest-benchmark 5.3.0 still uses.

Assisted-by: ClaudeCode:claude-opus-5-5
@henryiii

Copy link
Copy Markdown
Member Author

🤖 AI text below 🤖

Another option is the workaround from scikit-hep/mplhep#771. It does not cap pytest. A conftest.py hook copies item.nodeid to item._nodeid, so pytest-benchmark 5.3.0 works with pytest 9.2:

def pytest_collection_modifyitems(items):
    for item in items:
        if not hasattr(item, "_nodeid"):
            item._nodeid = item.nodeid

If you prefer that, I can change this PR to use it.

ikrommyd pushed a commit to scikit-hep/numba-stats that referenced this pull request Oct 29, 2026
🤖 _AI text below_ 🤖

pytest 9.2 removed `Node._nodeid`. pytest-benchmark 5.3.0 (latest) still
uses it, so tests that use the `benchmark` fixture error at setup. This
caps pytest below 9.2 until ionelmc/pytest-benchmark#321 is fixed in a
release. Same as scikit-hep/particle#818 and
scikit-hep/boost-histogram#1201.

I checked locally that the benchmark tests fail with pytest 9.2.0 and
pytest-benchmark 5.3.0.
&storage[0] on an empty storage (empty growth axes) indexes out of bounds; GCC 15 debug builds abort on it.

Assisted-by: ClaudeCode:claude-opus-5-5
Without spaces the specifier is not quoted, and cmd.exe reads <9.2 as a redirect.

Assisted-by: ClaudeCode:claude-opus-5-5
The runner image has /usr/bin/python3.14, which FindPython picked over 3.14t. PyPy 8 has no numpy wheels.

Assisted-by: ClaudeCode:claude-opus-5-5
v4.3 quotes shell metacharacters on Windows (pypa/cibuildwheel#2978), so the pytest cap no longer needs spaces. It also adds PyPy 3.12 and GraalPy 25.3 wheels; skip their tests until numpy has wheels for them.

Assisted-by: ClaudeCode:claude-opus-5-5
cibuildwheel 4.3 builds pp311 with PyPy 8 too, and numpy has no wheels for it.

Assisted-by: ClaudeCode:claude-opus-5-5
PyPy 8 has no numpy wheels, so the PyPy wheels cannot be tested. Restore when numpy ships them.

Assisted-by: ClaudeCode:claude-opus-5-5
@henryiii henryiii changed the title ci: cap pytest below 9.2 for pytest-benchmark feat: drop pypy, fix memory bug, cap pytest Oct 30, 2026
@henryiii
henryiii merged commit 503787e into develop Oct 30, 2026
38 checks passed
@henryiii
henryiii deleted the ci/cap-pytest branch October 30, 2026 19:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant