apache / arrow

Apache Arrow is a multi-language toolbox for accelerated data interchange and in-memory processing
https://arrow.apache.org/
Apache License 2.0
14.28k stars 3.47k forks source link

[Python][Packaging] Support Python 3.13 and upload wheels #43519

Open jorisvandenbossche opened 1 month ago

jorisvandenbossche commented 1 month ago

Python 3.13 is currently in a prerelease status (a first release candidate was released today: https://discuss.python.org/t/python-3-13-0-release-candidate-1-released/59703) and is expected to have a final release in October this year (https://devguide.python.org/versions).

We should ensure we are fully ready to support Python 3.13 for the PyArrow 18 release that will happen around the same time (or potentially even sooner if we would have a 17.0.x bug fix release).

https://github.com/apache/arrow/pull/42034 already fixed a build issue with Python 3.13, and on the short term I think we should try to have 1) a CI build using Python 3.13 to ensure this keeps working, and 2) set up a wheel build so we can upload nightly wheels for Python 3.13 for downstream testing.

(equivalent PR for Python 3.12: https://github.com/apache/arrow/pull/37901)


raulcd commented 1 month ago

I was planning, if necessary, to delay the feature freeze for 18.0.0 for a week to have Python 3.13 wheels.

jorisvandenbossche commented 1 month ago

We can actually make wheels right now (and we should ideally produce nightly wheels well before the scheduled release of 18.0), because Python 3.13 is ABI stable now, and wheels built with the current Python 3.13 will work with the final 3.13 releases.

(so there is certainly no need to delay 18.0.0 AFAIK)

jorisvandenbossche commented 1 month ago

Follow-ups after https://github.com/apache/arrow/pull/43539:

EDIT: added those to the top post