Skip to content

(feat)ci: pypy3.11 support #1854

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 2 commits into
base: main
Choose a base branch
from

Conversation

kclowes
Copy link
Collaborator

@kclowes kclowes commented Jul 3, 2025

🗒️ Description

Allows this repo to run using pypy3.11. The new CI job runs in ~15m, which is generally ~30s-1m slower than our next slowest job. I'm happy to spend more time trying to get it down, but didn't know how much priority to give it here.

🔗 Related Issues or PRs

#1839

✅ Checklist

  • All: Ran fast tox checks to avoid unnecessary CI fails, see also Code Standards and Enabling Pre-commit Checks:
    uvx --with=tox-uv tox -e lint,typecheck,spellcheck,markdownlint
  • All: PR title adheres to the repo standard - it will be used as the squash commit message and should start type(scope):.
  • All: Considered adding an entry to CHANGELOG.md.
  • All: Considered updating the online docs in the ./docs/ directory.
  • All: Set appropriate labels for the changes (only maintainers can apply labels).

@kclowes kclowes force-pushed the feat/pypy311-support branch 3 times, most recently from 97366f3 to 4d2d4f7 Compare July 10, 2025 19:38
@kclowes kclowes force-pushed the feat/pypy311-support branch 2 times, most recently from c7d453f to 6b7c7aa Compare July 11, 2025 16:54
@kclowes kclowes changed the title WIP - pypy3.11 support (feat)ci: pypy3.11 support Jul 11, 2025
@kclowes kclowes added scope:ci Scope: Continuous Integration type:feat type: Feature scope:deps Scope: Updates package dependencies labels Jul 11, 2025
@@ -79,6 +79,7 @@ docs = [
"mkdocstrings-python>=1.0.0,<2",
"pillow>=10.0.1,<11",
"pyspelling>=2.8.2,<3",
"lxml>=6.0.0,<7", # needs to be >= 6.0 for pypy
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is a dependency of pyspelling, and needs to be >=6.0 for pypy. pyspelling doesn't have any restriction on the version, so need to specify here. Could get more specific if we wanted - something along the lines of "lxml>=6.0.0,<7; implementation_name == 'pypy'",

@kclowes kclowes force-pushed the feat/pypy311-support branch 2 times, most recently from 7240fa0 to b3b8c0f Compare July 14, 2025 19:57
@kclowes kclowes marked this pull request as ready for review July 14, 2025 20:05
Copy link
Member

@danceratopz danceratopz left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Amazing! Really nice to have this!

As a sanity check could you please:

  1. Compare cpython and pypy 3.11 fill run times on this branch and cpython on main?
  2. Diff the generated fixtures with pypy on this branch to fixtures generated on main? We use the hasher utitlity to diff? This should be adequate:
 uv run fill -m "not slow and not benchmark" -n auto

I think the docs are a bit borked on this, but this comment explains how to do this:
#792 (review)

I absolutely recommend doing this on the hive server for speed!

@kclowes kclowes force-pushed the feat/pypy311-support branch from b381347 to c9abf90 Compare July 17, 2025 13:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
scope:ci Scope: Continuous Integration scope:deps Scope: Updates package dependencies type:feat type: Feature
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants