Skip to content

feat: add support for Python 3.15 - #312

Merged
vdusek merged 2 commits into
masterfrom
feat/python-3.15
Oct 14, 2026
Merged

vdusek merged 2 commits into
masterfrom
feat/python-3.15

Conversation

@vdusek

@vdusek vdusek commented Oct 13, 2026 •

Copy link
Copy Markdown
Contributor

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

@vdusek vdusek added adhoc Ad-hoc unplanned task added during the sprint. t-tooling Issues with this label are in the ownership of the tooling team. labels Oct 13, 2026
@vdusek vdusek self-assigned this Oct 13, 2026
@github-actions

github-actions Bot commented Oct 13, 2026 •

Copy link
Copy Markdown

📦 Image size report

Built images compared against the currently published rolling tag for the same runtime version (e.g. apify/actor-node:22; -slim variants against the -slim tag). Sizes are the uncompressed on-disk size reported by docker image inspect, so they will be larger than the compressed download size shown on Docker Hub. Only workflows triggered by this PR's changes report a section.

Python basic images — 6 images (at 45072e5)
Image Variant Current New Δ
apify/actor-python:3.10 — 234.6 MiB 226.8 MiB 🔻 −7.8 MiB (−3.3%)
apify/actor-python:3.11 — 239.7 MiB 231.9 MiB 🔻 −7.8 MiB (−3.2%)
apify/actor-python:3.12 — 234.6 MiB 226.8 MiB 🔻 −7.8 MiB (−3.3%)
apify/actor-python:3.13 — 223.3 MiB 215.6 MiB 🔻 −7.8 MiB (−3.5%)
apify/actor-python:3.14 — 225.1 MiB 217.3 MiB 🔻 −7.8 MiB (−3.5%)
apify/actor-python:3.15 — n/a 219.7 MiB 🆕 new image
Node basic images — 6 images (at 45072e5)
Image Variant Current New Δ
apify/actor-node:22 — 491.2 MiB 491.7 MiB 🔺 +0.5 MiB (+0.1%)
apify/actor-node:22-slim slim 161.5 MiB 161.5 MiB 🔻 −0.0 MiB (−0.0%)
apify/actor-node:24 — 494.5 MiB 495.0 MiB 🔺 +0.5 MiB (+0.1%)
apify/actor-node:24-slim slim 164.9 MiB 164.9 MiB ➖ 0.0 MiB (0.0%)
apify/actor-node:26 — 505.7 MiB 502.6 MiB 🔻 −3.1 MiB (−0.6%)
apify/actor-node:26-slim slim 176.0 MiB 172.9 MiB 🔻 −3.1 MiB (−1.8%)
Python + Selenium images — 6 images (at 45072e5)
Image Variant Current New Δ
apify/actor-python-selenium:3.10 selenium 4.51.0 1195.2 MiB 1195.2 MiB ➖ 0.0 MiB (0.0%)
apify/actor-python-selenium:3.11 selenium 4.51.0 1204.5 MiB 1204.5 MiB ➖ 0.0 MiB (0.0%)
apify/actor-python-selenium:3.12 selenium 4.51.0 1198.1 MiB 1198.1 MiB ➖ 0.0 MiB (0.0%)
apify/actor-python-selenium:3.13 selenium 4.51.0 1186.8 MiB 1186.8 MiB ➖ 0.0 MiB (0.0%)
apify/actor-python-selenium:3.14 selenium 4.51.0 1189.8 MiB 1189.8 MiB ➖ 0.0 MiB (0.0%)
apify/actor-python-selenium:3.15 selenium 4.51.0 n/a 1192.5 MiB 🆕 new image
Node + Puppeteer images — 6 images (at 45072e5)
Image Variant Current New Δ
apify/actor-node-puppeteer-chrome:22 puppeteer 25.13.0 2150.2 MiB 2150.8 MiB 🔺 +0.6 MiB (+0.0%)
apify/actor-node-puppeteer-chrome:22-slim puppeteer 25.13.0, slim 1825.1 MiB 1825.3 MiB 🔺 +0.1 MiB (+0.0%)
apify/actor-node-puppeteer-chrome:24 puppeteer 25.13.0 2138.2 MiB 2153.7 MiB 🔺 +15.5 MiB (+0.7%)
apify/actor-node-puppeteer-chrome:24-slim puppeteer 25.13.0, slim 1813.2 MiB 1828.2 MiB 🔺 +15.0 MiB (+0.8%)
apify/actor-node-puppeteer-chrome:26 puppeteer 25.13.0 2167.5 MiB 2168.0 MiB 🔺 +0.5 MiB (+0.0%)
apify/actor-node-puppeteer-chrome:26-slim puppeteer 25.13.0, slim 1842.4 MiB 1842.9 MiB 🔺 +0.4 MiB (+0.0%)
Node + Playwright images — 30 images (at 45072e5)
Image Variant Current New Δ
apify/actor-node-playwright-camoufox:22 playwright 1.62.1, camoufox ^0.12.1 2601.7 MiB 2601.9 MiB 🔺 +0.2 MiB (+0.0%)
apify/actor-node-playwright-camoufox:22-slim playwright 1.62.1, camoufox ^0.12.1, slim 2305.2 MiB 2305.2 MiB 🔺 +0.0 MiB (+0.0%)
apify/actor-node-playwright-camoufox:24 playwright 1.62.1, camoufox ^0.12.1 2605.6 MiB 2605.8 MiB 🔺 +0.2 MiB (+0.0%)
apify/actor-node-playwright-camoufox:24-slim playwright 1.62.1, camoufox ^0.12.1, slim 2308.1 MiB 2308.1 MiB 🔺 +0.0 MiB (+0.0%)
apify/actor-node-playwright-camoufox:26 playwright 1.62.1, camoufox ^0.12.1 2620.1 MiB 2620.3 MiB 🔺 +0.2 MiB (+0.0%)
apify/actor-node-playwright-camoufox:26-slim playwright 1.62.1, camoufox ^0.12.1, slim 2323.1 MiB 2323.1 MiB 🔺 +0.0 MiB (+0.0%)
apify/actor-node-playwright-chrome:22 playwright 1.64.0, camoufox ^0.12.1 2203.5 MiB 2203.8 MiB 🔺 +0.2 MiB (+0.0%)
apify/actor-node-playwright-chrome:22-slim playwright 1.64.0, camoufox ^0.12.1, slim 1873.7 MiB 1873.7 MiB 🔺 +0.0 MiB (+0.0%)
apify/actor-node-playwright-chrome:24 playwright 1.64.0, camoufox ^0.12.1 2206.5 MiB 2206.7 MiB 🔺 +0.2 MiB (+0.0%)
apify/actor-node-playwright-chrome:24-slim playwright 1.64.0, camoufox ^0.12.1, slim 1876.6 MiB 1876.6 MiB 🔺 +0.0 MiB (+0.0%)
apify/actor-node-playwright-chrome:26 playwright 1.64.0, camoufox ^0.12.1 2221.0 MiB 2221.2 MiB 🔺 +0.2 MiB (+0.0%)
apify/actor-node-playwright-chrome:26-slim playwright 1.64.0, camoufox ^0.12.1, slim 1891.6 MiB 1891.6 MiB 🔺 +0.0 MiB (+0.0%)
apify/actor-node-playwright-firefox:22 playwright 1.64.0, camoufox ^0.12.1 1496.8 MiB 1497.0 MiB 🔺 +0.2 MiB (+0.0%)
apify/actor-node-playwright-firefox:22-slim playwright 1.64.0, camoufox ^0.12.1, slim 1166.9 MiB 1166.9 MiB 🔺 +0.0 MiB (+0.0%)
apify/actor-node-playwright-firefox:24 playwright 1.64.0, camoufox ^0.12.1 1499.7 MiB 1500.0 MiB 🔺 +0.2 MiB (+0.0%)
apify/actor-node-playwright-firefox:24-slim playwright 1.64.0, camoufox ^0.12.1, slim 1169.9 MiB 1169.9 MiB 🔺 +0.0 MiB (+0.0%)
apify/actor-node-playwright-firefox:26 playwright 1.64.0, camoufox ^0.12.1 1514.2 MiB 1514.5 MiB 🔺 +0.2 MiB (+0.0%)
apify/actor-node-playwright-firefox:26-slim playwright 1.64.0, camoufox ^0.12.1, slim 1184.8 MiB 1184.8 MiB 🔺 +0.0 MiB (+0.0%)
apify/actor-node-playwright-webkit:22 playwright 1.64.0, camoufox ^0.12.1 1750.0 MiB 1750.3 MiB 🔺 +0.2 MiB (+0.0%)
apify/actor-node-playwright-webkit:22-slim playwright 1.64.0, camoufox ^0.12.1, slim 1420.2 MiB 1420.2 MiB 🔺 +0.0 MiB (+0.0%)
apify/actor-node-playwright-webkit:24 playwright 1.64.0, camoufox ^0.12.1 1753.0 MiB 1753.2 MiB 🔺 +0.2 MiB (+0.0%)
apify/actor-node-playwright-webkit:24-slim playwright 1.64.0, camoufox ^0.12.1, slim 1423.1 MiB 1423.1 MiB 🔺 +0.0 MiB (+0.0%)
apify/actor-node-playwright-webkit:26 playwright 1.64.0, camoufox ^0.12.1 1767.5 MiB 1767.7 MiB 🔺 +0.2 MiB (+0.0%)
apify/actor-node-playwright-webkit:26-slim playwright 1.64.0, camoufox ^0.12.1, slim 1438.1 MiB 1438.1 MiB 🔺 +0.0 MiB (+0.0%)
apify/actor-node-playwright:22 playwright 1.64.0, camoufox ^0.12.1 3425.0 MiB 3425.2 MiB 🔺 +0.2 MiB (+0.0%)
apify/actor-node-playwright:22-slim playwright 1.64.0, camoufox ^0.12.1, slim 3111.2 MiB 3111.2 MiB 🔺 +0.0 MiB (+0.0%)
apify/actor-node-playwright:24 playwright 1.64.0, camoufox ^0.12.1 3238.8 MiB 3239.0 MiB 🔺 +0.2 MiB (+0.0%)
apify/actor-node-playwright:24-slim playwright 1.64.0, camoufox ^0.12.1, slim 2925.0 MiB 2925.0 MiB 🔺 +0.0 MiB (+0.0%)
apify/actor-node-playwright:26 playwright 1.64.0, camoufox ^0.12.1 3451.8 MiB 3452.0 MiB 🔺 +0.2 MiB (+0.0%)
apify/actor-node-playwright:26-slim playwright 1.64.0, camoufox ^0.12.1, slim 3138.4 MiB 3138.5 MiB 🔺 +0.0 MiB (+0.0%)
Python + Playwright images — 29 images (at 45072e5)
Image Variant Current New Δ
apify/actor-python-playwright-camoufox:3.10 playwright 1.62.0, camoufox 0.5.8 3513.7 MiB 3515.0 MiB 🔺 +1.4 MiB (+0.0%)
apify/actor-python-playwright-camoufox:3.11 playwright 1.62.0, camoufox 0.5.8 3526.3 MiB 3527.6 MiB 🔺 +1.4 MiB (+0.0%)
apify/actor-python-playwright-camoufox:3.12 playwright 1.62.0, camoufox 0.5.8 3517.3 MiB 3518.7 MiB 🔺 +1.4 MiB (+0.0%)
apify/actor-python-playwright-camoufox:3.13 playwright 1.62.0, camoufox 0.5.8 3505.7 MiB 3507.1 MiB 🔺 +1.4 MiB (+0.0%)
apify/actor-python-playwright-camoufox:3.14 playwright 1.62.0, camoufox 0.5.8 3508.9 MiB 3510.3 MiB 🔺 +1.4 MiB (+0.0%)
apify/actor-python-playwright-chrome:3.10 playwright 1.63.0, camoufox 0.5.8 1851.2 MiB 1851.2 MiB ➖ 0.0 MiB (0.0%)
apify/actor-python-playwright-chrome:3.11 playwright 1.63.0, camoufox 0.5.8 1857.3 MiB 1857.3 MiB ➖ 0.0 MiB (0.0%)
apify/actor-python-playwright-chrome:3.12 playwright 1.63.0, camoufox 0.5.8 1852.0 MiB 1852.0 MiB ➖ 0.0 MiB (0.0%)
apify/actor-python-playwright-chrome:3.13 playwright 1.63.0, camoufox 0.5.8 1840.6 MiB 1840.6 MiB ➖ 0.0 MiB (0.0%)
apify/actor-python-playwright-chrome:3.14 playwright 1.63.0, camoufox 0.5.8 1842.9 MiB 1842.9 MiB ➖ 0.0 MiB (0.0%)
apify/actor-python-playwright-chrome:3.15 playwright 1.63.0, camoufox 0.5.8 n/a 1845.4 MiB 🆕 new image
apify/actor-python-playwright-firefox:3.10 playwright 1.63.0, camoufox 0.5.8 1163.4 MiB 1163.4 MiB 🔻 −0.0 MiB (−0.0%)
apify/actor-python-playwright-firefox:3.11 playwright 1.63.0, camoufox 0.5.8 1169.6 MiB 1169.5 MiB 🔻 −0.0 MiB (−0.0%)
apify/actor-python-playwright-firefox:3.12 playwright 1.63.0, camoufox 0.5.8 1164.3 MiB 1164.2 MiB 🔻 −0.0 MiB (−0.0%)
apify/actor-python-playwright-firefox:3.13 playwright 1.63.0, camoufox 0.5.8 1152.8 MiB 1152.8 MiB 🔻 −0.0 MiB (−0.0%)
apify/actor-python-playwright-firefox:3.14 playwright 1.63.0, camoufox 0.5.8 1155.2 MiB 1155.2 MiB 🔻 −0.0 MiB (−0.0%)
apify/actor-python-playwright-firefox:3.15 playwright 1.63.0, camoufox 0.5.8 n/a 1157.6 MiB 🆕 new image
apify/actor-python-playwright-webkit:3.10 playwright 1.63.0, camoufox 0.5.8 1420.6 MiB 1420.6 MiB 🔻 −0.0 MiB (−0.0%)
apify/actor-python-playwright-webkit:3.11 playwright 1.63.0, camoufox 0.5.8 1426.7 MiB 1426.7 MiB 🔻 −0.0 MiB (−0.0%)
apify/actor-python-playwright-webkit:3.12 playwright 1.63.0, camoufox 0.5.8 1421.4 MiB 1421.4 MiB 🔻 −0.0 MiB (−0.0%)
apify/actor-python-playwright-webkit:3.13 playwright 1.63.0, camoufox 0.5.8 1410.0 MiB 1410.0 MiB 🔻 −0.0 MiB (−0.0%)
apify/actor-python-playwright-webkit:3.14 playwright 1.63.0, camoufox 0.5.8 1412.3 MiB 1412.3 MiB 🔻 −0.0 MiB (−0.0%)
apify/actor-python-playwright-webkit:3.15 playwright 1.63.0, camoufox 0.5.8 n/a 1414.8 MiB 🆕 new image
apify/actor-python-playwright:3.10 playwright 1.63.0, camoufox 0.5.8 2837.1 MiB 2837.1 MiB 🔻 −0.0 MiB (−0.0%)
apify/actor-python-playwright:3.11 playwright 1.63.0, camoufox 0.5.8 2843.2 MiB 2843.2 MiB 🔻 −0.0 MiB (−0.0%)
apify/actor-python-playwright:3.12 playwright 1.63.0, camoufox 0.5.8 2838.0 MiB 2837.9 MiB 🔻 −0.0 MiB (−0.0%)
apify/actor-python-playwright:3.13 playwright 1.63.0, camoufox 0.5.8 2826.5 MiB 2826.5 MiB 🔻 −0.0 MiB (−0.0%)
apify/actor-python-playwright:3.14 playwright 1.63.0, camoufox 0.5.8 2828.9 MiB 2828.9 MiB 🔻 −0.0 MiB (−0.0%)
apify/actor-python-playwright:3.15 playwright 1.63.0, camoufox 0.5.8 n/a 2831.3 MiB 🆕 new image

@vdusek
vdusek marked this pull request as ready for review October 13, 2026 08:57
@vdusek

vdusek commented Oct 13, 2026

Copy link
Copy Markdown
Contributor Author

What do you guys think about skipping Camoufox for now, so we don't block the support for Python 3.15 in Crawlee (and SDK)?

@Pijukatel , @vladfrangu

@Pijukatel

Copy link
Copy Markdown

What do you guys think about skipping Camoufox for now, so we don't block the support for Python 3.15 in Crawlee (and SDK)?

@Pijukatel , @vladfrangu

It should not be a problem, as far as I am aware.

@vladfrangu vladfrangu 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.

Can we add an agent that checks every day or week for when camoufox's deps get 3.15 wheels and prs removal in that case?

@vdusek

vdusek commented Oct 14, 2026

Copy link
Copy Markdown
Contributor Author

Can we add an agent that checks every day or week for when camoufox's deps get 3.15 wheels and prs removal in that case?

What do you mean exactly?

@vdusek
vdusek merged commit 256ce12 into master Oct 14, 2026
76 checks passed
@vdusek
vdusek deleted the feat/python-3.15 branch October 14, 2026 08:22
@vladfrangu

Copy link
Copy Markdown
Member

Some automation that checks compatibility to drop this incompatible check

@vdusek

vdusek commented Oct 14, 2026 •

Copy link
Copy Markdown
Contributor Author

Some automation that checks compatibility to drop this incompatible check

I'll set up a Claude routine

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.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants