Skip to content

CI: add cp314/cp314t nighly wheel builds - #23187

Merged
lucascolley merged 4 commits into
scipy:mainfrom
rgommers:py314
Jun 20, 2025
Merged

lucascolley merged 4 commits into
scipy:mainfrom
rgommers:py314

Conversation

@rgommers

Copy link
Copy Markdown
Member

We're about 5-6 weeks away from needing to do a release with Python 3.14 support (see the release schedule in PEP 745), so it'll be good to enable nightly wheels now and fix/report issues.

There are a couple of tests that needed skipping - issues filed for those: gh-23172, gh-23185. Also, there is one wheel (cp314t-musllinux_1_2_aarch64) for which the test suite is hanging. The hang is the most serious problem and needs investigating next. That wheel is probably the least critical of all wheels though, so it's best to get the other ones deployed now.

We shouldn't backport this PR just yet; once 3.14.0rc1 is out and numpy has done a release that supports it, this will be significantly simpler to support on the maintenance/1.16.x branch.

@rgommers rgommers added this to the 1.17.0 milestone Jun 19, 2025
@rgommers rgommers added Official binaries Items related to the official SciPy binaries, including wheels and vendored libs CI Items related to the CI tools such as CircleCI, GitHub Actions or Azure labels Jun 19, 2025
@rgommers rgommers added the free-threading Items related to supporting free-threaded (a.k.a. "no-GIL") builds of CPython label Jun 19, 2025
@rgommers

Copy link
Copy Markdown
Member Author

Hmm, the one wheel build failure here, for cp314t-musllinux x86_64, looks like:

   [591/1474] Generating 'scipy/stats/_qmvnt_cy.cpython-314t-x86_64-linux-musl.so.p/_qmvnt_cy.cpp'
  [592/1474] Generating 'scipy/stats/_stats_pythran.cpython-314t-x86_64-linux-musl.so.p/_stats_pythran.cpp'
  FAILED: scipy/stats/_stats_pythran.cpython-314t-x86_64-linux-musl.so.p/_stats_pythran.cpp 
  /opt/python/cp314-cp314t/bin/pythran -E ../scipy/stats/_stats_pythran.py -o scipy/stats/_stats_pythran.cpython-314t-x86_64-linux-musl.so.p/_stats_pythran.cpp
  [593/1474] Compiling C object scipy/stats/_levy_stable/levyst.cpython-314t-x86_64-linux-musl.so.p/meson-generated_levyst.c.o
  [594/1474] Compiling C++ object scipy/stats/_qmvnt_cy.cpython-314t-x86_64-linux-musl.so.p/meson-generated__qmvnt_cy.cpp.o
  [595/1474] Compiling C object scipy/stats/_stats.cpython-314t-x86_64-linux-musl.so.p/meson-generated__stats.c.o
  [596/1474] Compiling C++ object scipy/sparse/sparsetools/_sparsetools.cpython-314t-x86_64-linux-musl.so.p/csr.cxx.o
  [597/1474] Compiling C++ object scipy/sparse/sparsetools/_sparsetools.cpython-314t-x86_64-linux-musl.so.p/bsr.cxx.o
  ninja: build stopped: subcommand failed.
  
  ERROR Backend subprocess exited when trying to invoke build_wheel

The exact same job passed on my fork an hour earlier. All the relevant packages seem to be identical:

  Successfully installed beniget-0.4.2.post1 cython-3.1.2 gast-0.6.0 meson-1.8.2 meson-python-0.18.0 ninja-1.11.1.4 ply-3.11 pybind11-2.13.6 pyproject-metadata-0.9.1 pythran-0.18.0 setuptools-80.9.0

Normally pythran gives a sensible error message. Perhaps it ran out of memory, given that there's multiple heavy C++ compilations right before and after it? I'll rerun to see if it fails again.

@rgommers

Copy link
Copy Markdown
Member Author

Failed again at the same point - back to debugging on fork.

@rgommers

Copy link
Copy Markdown
Member Author

Re-ran it for a third time with debug logging enabled. It failed even earlier, on a different pythran invocation:

  [156/1474] Generating 'scipy/linalg/_linalg_pythran.cpython-314t-x86_64-linux-musl.so.p/_linalg_pythran.cpp'
  FAILED: scipy/linalg/_linalg_pythran.cpython-314t-x86_64-linux-musl.so.p/_linalg_pythran.cpp 
  /opt/python/cp314-cp314t/bin/pythran -E ../scipy/linalg/_linalg_pythran.py -o scipy/linalg/_linalg_pythran.cpython-314t-x86_64-linux-musl.so.p/_linalg_pythran.cpp

Re-ran again as well on my own fork, and the build passed: CI log. This is very mysterious.

Follow up on this later, likely one or more issues in CPython, NumPy,
and/or Pythran.

The aarch64 job was hanging at various places in the test suite.
The x86-64 job was failing on `pythran` generation .cpp code at build
time, repeatedly and on multiple source files.
@rgommers

Copy link
Copy Markdown
Member Author

Skipping the second musllinux + cp314t job as well for now.

@rgommers

Copy link
Copy Markdown
Member Author

This is good to merge now. The one failure in a non-wheel job is unrelated.

@lucascolley lucascolley left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

thanks Ralf!

@lucascolley
lucascolley merged commit be834e8 into scipy:main Jun 20, 2025
@rgommers
rgommers deleted the py314 branch June 20, 2025 16:56
rgommers added a commit to rgommers/scipy that referenced this pull request Jul 25, 2025
This reverts changes made in scipy#23187, keeping the commented out code
for once 3.15-dev arrives.
rgommers added a commit to rgommers/scipy that referenced this pull request Jul 25, 2025
This reverts changes made in scipy#23187, keeping the commented out code
for once 3.15-dev arrives.

[ci skip]
@rgommers rgommers added the backport-candidate This fix should be ported by a maintainer to previous SciPy versions. label Jul 25, 2025
@tylerjereddy tylerjereddy removed this from the 1.17.0 milestone Jul 26, 2025
@tylerjereddy tylerjereddy added this to the 1.16.1 milestone Jul 26, 2025
tylerjereddy pushed a commit to tylerjereddy/scipy that referenced this pull request Jul 26, 2025
This reverts changes made in scipy#23187, keeping the commented out code
for once 3.15-dev arrives.

[ci skip]
@tylerjereddy tylerjereddy mentioned this pull request Jul 26, 2025
5 tasks done
@tylerjereddy tylerjereddy removed the backport-candidate This fix should be ported by a maintainer to previous SciPy versions. label Jul 27, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

CI Items related to the CI tools such as CircleCI, GitHub Actions or Azure free-threading Items related to supporting free-threaded (a.k.a. "no-GIL") builds of CPython Official binaries Items related to the official SciPy binaries, including wheels and vendored libs scipy.io scipy.stats

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants