Build CPython 3.15 wheels by edgarrmondragon · Pull Request #1152 · msgspec/msgspec · GitHub
Skip to content

Build CPython 3.15 wheels - #1152

Open
edgarrmondragon wants to merge 1 commit into
msgspec:mainfrom
edgarrmondragon:cp315-wheels
Open

Build CPython 3.15 wheels#1152
edgarrmondragon wants to merge 1 commit into
msgspec:mainfrom
edgarrmondragon:cp315-wheels

Conversation

@edgarrmondragon

@edgarrmondragon edgarrmondragon commented Aug 11, 2026

Copy link
Copy Markdown
Contributor

#1146 bumped cibuildwheel to 4.2.0, which adds CPython 3.15 wheels by default, but this project uses a build list in .cibuildwheel.toml so they need to be selected explicitly.

Signed-off-by: Edgar Ramírez Mondragón <edgarrm358@gmail.com>
@edgarrmondragon
edgarrmondragon marked this pull request as ready for review August 11, 2026 19:57
Comment thread .cibuildwheel.toml

@edgarrmondragon edgarrmondragon Aug 11, 2026

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Building pyodide wheels for cp315 fails:

Details

  + pyodide venv /tmp/cibw-run-mqiwed6o/cp315-pyodide_wasm32/venv-test
  Creating Pyodide virtualenv at                                                  
  /tmp/cibw-run-mqiwed6o/cp315-pyodide_wasm32/venv-test                           
  ... Configuring virtualenv                                                      
  ... Installing standard library                                                 
  Successfully created Pyodide virtual environment!                               
  + which python
  /tmp/cibw-run-mqiwed6o/cp315-pyodide_wasm32/venv-test/bin/python
  + pip install /tmp/cibw-run-mqiwed6o/cp315-pyodide_wasm32/repaired_wheel/msgspec-0.21.2.dev78+g21499cc6f-cp315-cp315-pyemscripten_2026_5_wasm32.whl
  Looking in indexes: https://pypi.org/simple, file:///home/runner/.cache/cibuildwheel/pyodide-build-0.39.0/315.0.0a2/xbuildenv/pyodide-root/package_index
  Processing /tmp/cibw-run-mqiwed6o/cp315-pyodide_wasm32/repaired_wheel/msgspec-0.21.2.dev78+g21499cc6f-cp315-cp315-pyemscripten_2026_5_wasm32.whl
  Installing collected packages: msgspec
  Successfully installed msgspec-0.21.2.dev78+g21499cc6f
  + pip install 'pytest>=9' pytest-randomly attrs coverage msgpack pyyaml 'tomli; python_version < "3.11"' tomli-w
  Looking in indexes: https://pypi.org/simple, file:///home/runner/.cache/cibuildwheel/pyodide-build-0.39.0/315.0.0a2/xbuildenv/pyodide-root/package_index
  Ignoring tomli: markers 'python_version < "3.11"' don't match your environment
  Collecting pytest>=9
    Using cached pytest-9.1.1-py3-none-any.whl.metadata (7.6 kB)
  WARNING: Location 'file:///home/runner/.cache/cibuildwheel/pyodide-build-0.39.0/315.0.0a2/xbuildenv/pyodide-root/package_index/pytest-randomly/' is ignored: it is neither a file nor a directory.
  Collecting pytest-randomly
    Using cached pytest_randomly-4.1.0-py3-none-any.whl.metadata (8.6 kB)
  WARNING: Location 'file:///home/runner/.cache/cibuildwheel/pyodide-build-0.39.0/315.0.0a2/xbuildenv/pyodide-root/package_index/attrs/' is ignored: it is neither a file nor a directory.
  Collecting attrs
    Using cached attrs-26.1.0-py3-none-any.whl.metadata (8.8 kB)
  Collecting coverage
    Using cached coverage-7.15.4-py3-none-any.whl.metadata (8.6 kB)
  WARNING: Location 'file:///home/runner/.cache/cibuildwheel/pyodide-build-0.39.0/315.0.0a2/xbuildenv/pyodide-root/package_index/msgpack/' is ignored: it is neither a file nor a directory.
  ERROR: Could not find a version that satisfies the requirement msgpack (from versions: none)
  ERROR: No matching distribution found for msgpack
  Error: cibuildwheel: Command ['/tmp/cibw-run-mqiwed6o/cp315-pyodide_wasm32/venv-test/bin/pip', 'install', 'pytest>=9', 'pytest-randomly', 'attrs', 'coverage', 'msgpack', 'pyyaml', 'tomli; python_version < "3.11"', 'tomli-w'] failed with code 1. 

https://github.com/msgspec/msgspec/actions/runs/31529128437/job/93905120501?pr=1152

@jacopoabramo jacopoabramo Aug 13, 2026

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

ERROR: Could not find a version that satisfies the requirement msgpack (from versions: none)

Seems like msgpack doesn't ship weels for pyodide yet, but that's a dev dependency in the bench group

@edgarrmondragon edgarrmondragon Aug 30, 2026

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Yeah, it doesn't ship wasm wheels at all, but the pyodide folks build them from source for a few select packages and publish them to their own index.

In particular, https://index.pyodide.org/314.0.6 has msgpack (1.1.2) wheels, but https://index.pyodide.org/315.0.0a2 doesn't (it has significantly fewer packages in general).

UPDATE: pyodide/pyodide-recipes#652 (comment)

UPDATE 2: msgpack/msgpack-python#732

@codspeed-hq

codspeed-hq Bot commented Aug 27, 2026

Copy link
Copy Markdown

edgarrmondragon added a commit to Nazib65/sdk that referenced this pull request Sep 2, 2026
Blockers:

- msgspec/msgspec#1152
- apache/arrow#48172 (scheduled for
[26.0.0](https://github.com/apache/arrow/milestone/75))

## Summary by Sourcery

Add Python 3.15 support across package metadata, dependency resolution,
version handling, and continuous integration.

New Features:
- Add Python 3.15 to the package’s supported versions and compatibility
metadata.

Enhancements:
- Update version discovery tests and dependency resolution to support
Python 3.15, including the required PyArrow nightly dependency source.

CI:
- Run the main test, documentation, dependency, contributor, package,
and platform coverage against Python 3.15.
- Align CodSpeed’s Python version with the repository’s configured
version file and prevent pre-commit CI from running uv-lock.

Tests:
- Update supported-version tests to include Python 3.15.

Signed-off-by: Edgar Ramírez Mondragón <edgarrm358@gmail.com>
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.

2 participants