Skip to content

feat: add support for Python 3.15 - #569

Merged
barjin merged 1 commit into
masterfrom
ci/python-3.15
Oct 13, 2026
Merged

barjin merged 1 commit into
masterfrom
ci/python-3.15

Conversation

@vdusek

@vdusek vdusek commented Oct 13, 2026

Copy link
Copy Markdown
Contributor

Builds impit-python wheels for CPython 3.15 and 3.15t, runs the Python code checks on 3.15, and adds the 3.15 classifier.

It also fixes building from the sdist. The reqwest_unstable cfg that reqwest's http3 feature needs lives in the workspace .cargo/config.toml, which the sdist didn't include, so any install without a matching wheel failed with The http3 feature is unstable, and requires the RUSTFLAGS='--cfg reqwest_unstable'. impit-python/.cargo/config.toml now carries the same flag and maturin ships it at the sdist root. I checked locally that a cp315 wheel builds from the new sdist without RUSTFLAGS.

This unblocks Python 3.15 support in apify/apify-client-python#1122, apify/apify-sdk-python#1179 and apify/crawlee-python#2294.

✍️ Drafted by Claude Code

@vdusek vdusek added t-tooling Issues with this label are in the ownership of the tooling team. adhoc Ad-hoc unplanned task added during the sprint. labels Oct 13, 2026
@vdusek vdusek self-assigned this Oct 13, 2026
@vdusek
vdusek requested a review from barjin October 13, 2026 08:20
@vdusek
vdusek marked this pull request as ready for review October 13, 2026 08:20
@apify-service-account apify-service-account added the tested Temporary label used only programatically for some analytics. label Oct 13, 2026
@barjin
barjin merged commit 92a1c97 into master Oct 13, 2026
31 of 33 checks passed
vdusek added a commit to apify/apify-actor-docker that referenced this pull request Oct 14, 2026
Adds Python 3.15 to `supportedPythonVersions`, so the `actor-python`,
`actor-python-playwright` (chrome, firefox, webkit) and
`actor-python-selenium` images get built for 3.15.

The camoufox image is skipped on 3.15 for now. Camoufox pulls in
`zstandard` (through `fpgen`) and `pyyaml`, neither has 3.15 wheels yet,
and the slim base image has no `gcc` to build them from source. The skip
lives in `camoufoxUnsupportedPythonVersions` in the Python Playwright
matrix, so dropping `'3.15'` from that set re-enables the image once the
wheels are out.

`latestPythonVersion` stays at 3.14. Bumping it moves the `latest` tags
and dispatches an actor-templates update to 3.15, and the templates
install `apify`, which can't be installed on 3.15 until `impit`
publishes 3.15 wheels (apify/impit#569). It can be bumped in a follow-up
once that's released.

I checked locally that the Python, Playwright and Selenium matrices
include the 3.15 entries (without camoufox), the version-matrix tests
pass, and `python/Dockerfile` builds and runs on
`python:3.15-slim-trixie`.

*✍️ Drafted by Claude Code*
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

adhoc Ad-hoc unplanned task added during the sprint. t-tooling Issues with this label are in the ownership of the tooling team. tested Temporary label used only programatically for some analytics.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants