Skip to content

[py] Support Python 3.15 - #18065

Merged
cgoldberg merged 34 commits into
SeleniumHQ:trunkfrom
cgoldberg:py-support-3.15
Oct 8, 2026
Merged

cgoldberg merged 34 commits into
SeleniumHQ:trunkfrom
cgoldberg:py-support-3.15

Conversation

@cgoldberg

@cgoldberg cgoldberg commented Sep 22, 2026 •

Copy link
Copy Markdown
Member

supersedes: #17502

💥 What does this PR do?

Python 3.15 ships Oct. 1, 2026 Oct. 9, 2026 (pushed back a week).

This PR adds support for Python 3.15 to the selenium python package:

Build/Tooling:

  • updates rules_python for Bazel to version 2.4.1
  • bumps all python toolchain versions to latest
  • adds toolchain for 3.15

Packaging:

  • Adds trove classifier for 3.15 to package metadata

Tests:

  • updates CI to run unit tests against 3.15 instead of 3.14

Note: This PR uses rules_python 2.4.1, which currently has support for Python 3.15.0rc3. Once the final version of 3.15.0 is released, we should bump rules_python to the latest version and change the toolchain to use 3.15.0 instead of the release candidate.

🤖 AI assistance

  • No substantial AI assistance used
  • AI assisted (complete below)
    • Tool(s):
    • What was generated:
    • I reviewed all AI output and can explain the change

🔄 Types of changes

  • Build/Packaging

@qodo-code-review

Copy link
Copy Markdown
Contributor

Qodo reviews are paused for this user.

Troubleshooting steps vary by plan Learn more →

On a Teams plan?
Reviews resume once this user has a paid seat and their Git account is linked in Qodo.
Link Git account →

Using GitHub Enterprise Server, GitLab Self-Managed, or Bitbucket Data Center?
These require an Enterprise plan - Contact us
Contact us →

@selenium-ci selenium-ci added C-py Python Bindings B-build Includes scripting, bazel and CI integrations labels Sep 22, 2026
@cgoldberg

Copy link
Copy Markdown
Member Author

tests are failing with Python 3.10 on Windows?

ImportError: DLL load failed while importing _cffi_backend: The filename or extension is too long.

This is coming from the trio dependency... need to investigate why this doesn't work with new rules_python.

@titusfortner

Copy link
Copy Markdown
Member

@cgoldberg I started down this rabbit hole and decided to back out of it, see my comment here: #17502 (comment)

@cgoldberg

Copy link
Copy Markdown
Member Author

I started down this rabbit hole

... well if that isn't a total PITA. I'll try shortening some names to stay under the length limit.

@cgoldberg
cgoldberg merged commit 3d4a8c1 into SeleniumHQ:trunk Oct 8, 2026
94 of 96 checks passed
@cgoldberg
cgoldberg deleted the py-support-3.15 branch October 8, 2026 02:08
@titusfortner

Copy link
Copy Markdown
Member

@cgoldberg should we also remove support for 3.10 now since it is EOL? (I may have asked this elsewhere, I can't find the comment I thought I made already)

@cgoldberg

Copy link
Copy Markdown
Member Author

@titusfortner if we follow what we did last time for 3.14 release, we would drop support for the oldest version since it is EOL.

However, all of our dependencies work with 3.10 and it wouldn't be a big deal to continue supporting it. We only really need to drop support once rules_python does (I think they support back to 3.9 atm) or if we run into dependency issues.

So, I'm fine with dropping 3.10 now or waiting a while. I think the only users that might be affected would be people on older Linux distros or working on some older legacy projects. I don't think we got a single complaint when we dropped 3.9.

@titusfortner

Copy link
Copy Markdown
Member

Yeah, I'm generally in favor of removing unsupported versions of things quickly allowing us to use new features where possible.

@cgoldberg

Copy link
Copy Markdown
Member Author

@titusfortner I am going to create a new PR once the final version of 3.15 ships and is included in rules_python (hopefully later today). I'll drop 3.10 support then also.

This was referenced Oct 9, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

B-build Includes scripting, bazel and CI integrations C-py Python Bindings

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants