Skip to content

Conversation

@jontsai
Copy link
Contributor

@jontsai jontsai commented Oct 30, 2025

Summary

Remove PyPy 3.10 from the test matrix to fix failing CI checks.

Problem

All 4 PyPy 3.10 jobs are failing on every build with:

error: the configured PyPy interpreter version (3.10) is lower than
PyO3's minimum supported version (3.11)

Root Cause Analysis

This failure is caused by an upstream dependency change, not by any code change in this repository.

The dependency chain:

tox.ini → readme-renderer → nh3 → PyO3
  1. Our tox.ini uses readme-renderer for package metadata validation
  2. readme-renderer requires nh3 >= 0.2.14
  3. nh3 has no pre-built PyPy wheels, so PyPy must build from source
  4. Building from source compiles PyO3, which dropped PyPy 3.10 support in v0.27.0

Timeline:

Date Event
Oct 21, 2025 nh3 updated PyO3 to 0.27.0 (PR #102)
Oct 29, 2025 Last passing CI on main
Oct 30, 2025 nh3 updated PyO3 to 0.27.1 (PR #103)
Oct 30, 2025 First failing CI on main

Upstream decisions:

  • PyO3 v0.27.0: "Support for PyPy 3.9 and PyPy 3.10 (both no longer supported upstream) has been dropped."
  • PyPy v7.3.19: "In the next release we will drop 3.10 and remove the 'beta' label."
  • PyPy downloads now only list PyPy 3.11 and 2.7 as current releases

Solution

Remove PyPy 3.10 from both:

  • tox.ini - envlist and basepython definitions
  • .github/workflows/github-actions.yml - all 4 pypy310 jobs

Removed Jobs

  • pypy310-pydantic28-cover
  • pypy310-pydantic210-cover
  • pypy310-pydantic28-nocov
  • pypy310-pydantic210-nocov

Impact

  • ✅ Fixes all failing CI builds
  • ✅ PyPy 3.9 jobs continue to work and remain in the matrix
  • ✅ All CPython versions (3.10, 3.11, 3.12) unaffected
  • ✅ Aligns with upstream PyPy and PyO3 deprecation decisions

Testing

CI will run on this PR to verify the fix works.

Copy link

@ellipsis-dev ellipsis-dev bot left a comment

Choose a reason for hiding this comment

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

Important

Looks good to me! 👍

Reviewed everything up to 130bc8c in 40 seconds. Click for details.
  • Reviewed 21 lines of code in 1 files
  • Skipped 0 files when reviewing.
  • Skipped posting 2 draft comments. View those below.
  • Modify your settings and rules to customize what types of comments Ellipsis leaves. And don't forget to react with 👍 or 👎 to teach Ellipsis.
1. tox.ini:17
  • Draft comment:
    Removed pypy310 from the envlist as intended. Confirm that this removal fully covers cis testing needs for PyPy versions. Future changes in dependency requirements might require updating documentation.
  • Reason this comment was not posted:
    Confidence changes required: 0% <= threshold 50% None
2. tox.ini:25
  • Draft comment:
    Removed the pypy310 basepython configuration to align with dependency constraints. Ensure that no other parts of the CI configuration inadvertently reference this obsolete interpreter.
  • Reason this comment was not posted:
    Confidence changes required: 0% <= threshold 50% None

Workflow ID: wflow_1EZ1u5i8e301a3Sh

You can customize Ellipsis by changing your verbosity settings, reacting with 👍 or 👎, replying to comments, or adding code review rules.

@jontsai jontsai requested a review from suryaiyer95 October 30, 2025 22:21
@jontsai jontsai force-pushed the fix/remove-pypy310-from-tests branch from 130bc8c to 627cbee Compare November 6, 2025 23:59
Copy link

@ellipsis-dev ellipsis-dev bot left a comment

Choose a reason for hiding this comment

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

Important

Looks good to me! 👍

Reviewed 28b007d02c84fdf4c87d9215f55f364c114e74b2 in 57 seconds. Click for details.
  • Reviewed 35 lines of code in 1 files
  • Skipped 0 files when reviewing.
  • Skipped posting 1 draft comments. View those below.
  • Modify your settings and rules to customize what types of comments Ellipsis leaves. And don't forget to react with 👍 or 👎 to teach Ellipsis.
1. .github/workflows/github-actions.yml:91
  • Draft comment:
    Removal of the PyPy 3.10 CI jobs is appropriate given the dependency issues with PyO3. This change aligns the CI matrix with the updated tox.ini. Ensure documentation is updated to reflect the removal.
  • Reason this comment was not posted:
    Confidence changes required: 0% <= threshold 50% None

Workflow ID: wflow_uiJI2edrtuyNqLO7

You can customize Ellipsis by changing your verbosity settings, reacting with 👍 or 👎, replying to comments, or adding code review rules.

@jontsai
Copy link
Contributor Author

jontsai commented Nov 7, 2025

✅ Fix Completed

Updated this PR to also remove PyPy 3.10 from the GitHub Actions workflow (.github/workflows/github-actions.yml).

Root Cause

All 4 PyPy 3.10 jobs were failing with:

error: the configured PyPy interpreter version (3.10) is lower than PyO3's minimum supported version (3.11)

This is caused by the nh3 package dependency requiring PyO3, which now requires PyPy 3.11+.

Changes

  • ✅ Removed from tox.ini (already done)
  • Now also removed from .github/workflows/github-actions.yml (new commit)

Removed Jobs

  • pypy310-pydantic28-cover
  • pypy310-pydantic210-cover
  • pypy310-pydantic28-nocov
  • pypy310-pydantic210-nocov

PyPy 3.9 jobs still work fine and remain in the test matrix.

This should fix the failing CI builds. ✨

PyPy 3.10 jobs are failing because PyO3 (required by nh3 package) now
requires PyPy 3.11 as the minimum version.

Error from CI:
  error: the configured PyPy interpreter version (3.10) is lower than
  PyO3's minimum supported version (3.11)

Changes:
- Remove pypy310 from tox.ini envlist
- Remove pypy310 basepython definition
- Remove 4 pypy310 jobs from GitHub Actions workflow:
  - pypy310-pydantic28-cover
  - pypy310-pydantic210-cover
  - pypy310-pydantic28-nocov
  - pypy310-pydantic210-nocov

PyPy 3.9 jobs continue to work and remain in the test matrix.

Fixes failing CI builds on main branch.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <[email protected]>
@jontsai jontsai force-pushed the fix/remove-pypy310-from-tests branch from 28b007d to 5e92d2f Compare November 7, 2025 00:18
Copy link

@ellipsis-dev ellipsis-dev bot left a comment

Choose a reason for hiding this comment

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

Important

Looks good to me! 👍

Reviewed 5e92d2f in 1 minute and 5 seconds. Click for details.
  • Reviewed 56 lines of code in 2 files
  • Skipped 0 files when reviewing.
  • Skipped posting 2 draft comments. View those below.
  • Modify your settings and rules to customize what types of comments Ellipsis leaves. And don't forget to react with 👍 or 👎 to teach Ellipsis.
1. .github/workflows/github-actions.yml:22
  • Draft comment:
    Removal of the PyPy 3.10 jobs is correctly handled here. The jobs with names starting with 'pypy310-' and using python: 'pypy-3.10' have been removed, which aligns with the dependency requirements. Ensure that any documentation referencing these jobs is updated accordingly.
  • Reason this comment was not posted:
    Comment was not on a location in the diff, so it can't be submitted as a review comment.
2. tox.ini:17
  • Draft comment:
    The tox envlist has been updated to remove the PyPy 3.10 environments and the corresponding basepython mapping is removed. This change is consistent with the new PyO3 minimum version requirement.
  • Reason this comment was not posted:
    Comment did not seem useful. Confidence is useful = 0% <= threshold 50% This comment is purely informative, explaining a change that was made without suggesting any action or asking for clarification. It doesn't provide any actionable feedback or raise any concerns about the code.

Workflow ID: wflow_xTYaD0j36DkrhRis

You can customize Ellipsis by changing your verbosity settings, reacting with 👍 or 👎, replying to comments, or adding code review rules.

Copy link

@ellipsis-dev ellipsis-dev bot left a comment

Choose a reason for hiding this comment

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

Important

Looks good to me! 👍

Reviewed e5561f3 in 25 seconds. Click for details.
  • Reviewed 12 lines of code in 1 files
  • Skipped 0 files when reviewing.
  • Skipped posting 1 draft comments. View those below.
  • Modify your settings and rules to customize what types of comments Ellipsis leaves. And don't forget to react with 👍 or 👎 to teach Ellipsis.
1. MANIFEST.in:14
  • Draft comment:
    Including the Makefile in the distribution is fine if intended; please confirm that bundling it is deliberate, especially if it's for development purposes only.
  • Reason this comment was not posted:
    Confidence changes required: 33% <= threshold 50% None

Workflow ID: wflow_G5CeKDEr3guZJAwO

You can customize Ellipsis by changing your verbosity settings, reacting with 👍 or 👎, replying to comments, or adding code review rules.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <[email protected]>
Copy link

@ellipsis-dev ellipsis-dev bot left a comment

Choose a reason for hiding this comment

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

Important

Looks good to me! 👍

Reviewed f3de060 in 31 seconds. Click for details.
  • Reviewed 11 lines of code in 1 files
  • Skipped 0 files when reviewing.
  • Skipped posting 1 draft comments. View those below.
  • Modify your settings and rules to customize what types of comments Ellipsis leaves. And don't forget to react with 👍 or 👎 to teach Ellipsis.
1. tests/test_vendor/test_catalog_v1.py:2
  • Draft comment:
    Good cleanup: the unused 'pytest' import was removed. Ensure none of the tests rely on it explicitly.
  • Reason this comment was not posted:
    Confidence changes required: 0% <= threshold 50% None

Workflow ID: wflow_DPeRP91w9BgGT0e1

You can customize Ellipsis by changing your verbosity settings, reacting with 👍 or 👎, replying to comments, or adding code review rules.

@@ -1,6 +1,4 @@
"""Tests for catalog v1 parser, specifically testing extra fields handling."""
import pytest
Copy link
Contributor Author

Choose a reason for hiding this comment

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

This fixes a linter issue; unused import

@jontsai jontsai merged commit be5b56c into main Dec 18, 2025
31 checks passed
@jontsai jontsai deleted the fix/remove-pypy310-from-tests branch December 18, 2025 02:30
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.

3 participants