Skip to content

Add support for Python 3.15 - #1337

Open
hugovk wants to merge 3 commits into
arrow-py:masterfrom
hugovk:master
Open

Add support for Python 3.15#1337
hugovk wants to merge 3 commits into
arrow-py:masterfrom
hugovk:master

Conversation

@hugovk

@hugovk hugovk commented Aug 10, 2026

Copy link
Copy Markdown
Contributor

Pull Request Checklist

Thank you for taking the time to improve Arrow! Before submitting your pull request, please check all appropriate boxes:

  • 🧪 Added tests for changed code.
  • 🛠️ All tests pass when run locally (run tox or make test to find out!) -- not run locally but confirmed on CI.
  • 🧹 All linting checks pass when run locally (run tox -e lint or make lint to find out!).
  • 📚 Updated documentation for changed code.
  • ⏩ Code is up-to-date with the master branch.

If you have any questions about your code changes or any of the points above, please submit your questions along with the pull request and we will try our best to help!

Description of Changes

The Python 3.15 release candidate is out. 🚀

The 3.15 release manager (👋 hi, that's me!) issued a call to action:

We strongly encourage maintainers of third-party Python projects to prepare their projects for 3.15 during this phase, and publish Python 3.15 wheels on PyPI to be ready for the final release of 3.15.0, and to help other projects do their own testing. Any binary wheels built against Python 3.15.0 release candidates will work with future versions of Python 3.15. As always, report any issues to the Python bug tracker.

Please keep in mind that this is a preview release and while it's as close to the final release as we can get it, its use is not recommended for production environments.

Copilot AI lite review requested due to automatic review settings August 10, 2026 06:19
@codecov

codecov Bot commented Aug 10, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 100.00%. Comparing base (2224255) to head (3561176).
✅ All tests successful. No failed tests found.

Additional details and impacted files
@@            Coverage Diff            @@
##            master     #1337   +/-   ##
=========================================
  Coverage   100.00%   100.00%           
=========================================
  Files           10        10           
  Lines         2315      2315           
  Branches       358       358           
=========================================
  Hits          2315      2315           

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Pull request overview

This PR updates Arrow’s configuration to recognize and test against Python 3.15, aligning local tooling and CI with the upcoming Python 3.15 release.

Changes:

  • Add py315 to tox env list and GitHub Actions tox-gh-actions version mapping.
  • Advertise Python 3.15 support via PyPI trove classifier.
  • Extend Makefile build targets and CI matrix to include Python 3.15, including prerelease support in setup-python.

Reviewed changes

Copilot reviewed 4 out of 4 changed files in this pull request and generated 2 comments.

File Description
tox.ini Adds py315 to tox envlist and maps 3.15 to py315 for tox-gh-actions.
pyproject.toml Adds the Python 3.15 trove classifier.
Makefile Adds build315 and includes it in the shared build target group.
.github/workflows/continuous_integration.yml Adds Python 3.15 to the CI matrix and enables prerelease installs for setup-python.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread Makefile Outdated
uses: actions/setup-python@v6
with:
python-version: ${{ matrix.python-version }}
allow-prereleases: true

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.

This is unnecessary:

If allow-prereleases is set to true, the action will allow falling back to pre-release versions of Python when a matching GA version of Python is not available.

https://github.com/actions/setup-python/blob/main/docs/advanced-usage.md#allow-pre-releases

So once a GA is out (as it is for all the others), that will be used and not a pre-release.

hugovk and others added 2 commits August 10, 2026 09:38
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
@hugovk

hugovk commented Aug 10, 2026

Copy link
Copy Markdown
Contributor Author

I think the PyPy on Windows failure was a bug in pip, which should be fixed if you delete the Windows-pip-9b55335ff2f2d55fc2f8a11bdb105c42899f23eb24c6da79fae2872d0740d541 cache at https://github.com/arrow-py/arrow/actions/caches.

For example, it passed on my fork, because it didn't have the old pip cache: https://github.com/hugovk/arrow/actions/runs/31363245930/job/93376216169

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