[ci][docker] build py3.14 ray image#63237
Conversation
Signed-off-by: elliot-barn <elliot.barnwell@anyscale.com>
Signed-off-by: elliot-barn <elliot.barnwell@anyscale.com>
Signed-off-by: elliot-barn <elliot.barnwell@anyscale.com>
Signed-off-by: elliot-barn <elliot.barnwell@anyscale.com>
Signed-off-by: elliot-barn <elliot.barnwell@anyscale.com>
There was a problem hiding this comment.
Code Review
This pull request adds support for Python 3.14 across various CI and dependency configuration files. However, the review highlights that this addition is premature due to a lack of upstream support for Python 3.14 in critical libraries like PyTorch, TensorFlow, and JAX. Additionally, the newly added python/requirements_compiled_py3.14.txt contains invalid package versions and incorrect environment markers that will lead to immediate build failures and runtime errors.
| # dask | ||
| # distributed | ||
| # partd | ||
| torch==2.7.0 |
There was a problem hiding this comment.
This requirements file contains numerous non-existent or "future" package versions that are not available on PyPI or the specified indices. Examples include torch==2.7.0 (line 2373), numpy==2.3.2 (line 1267), and several packages with futuristic 2026.x versions (e.g., certifi==2026.4.22 on line 284). Additionally, the --find-links URL on line 2 points to a non-existent version. These errors will cause the Docker image build to fail immediately.
| - "3.11" | ||
| - "3.12" | ||
| - "3.13" | ||
| - "3.14" |
There was a problem hiding this comment.
Adding support for Python 3.14 is premature. Python 3.14 is currently in early alpha development and is not yet supported by critical upstream dependencies such as PyTorch, TensorFlow, and JAX. Furthermore, the Python ABI is not yet stable for this version. Adding it to the build matrix at this stage will result in broken CI builds and non-functional Docker images.
| # via msrestazure | ||
| adlfs==2026.4.0 | ||
| # via -r python/requirements/cloud-requirements.txt | ||
| aim==3.23.0 ; python_version < "3.12" |
There was a problem hiding this comment.
Many dependencies in this file (e.g., aim on line 33, array-record on line 120, configspace on line 387) include environment markers such as ; python_version < "3.12". Since this file is intended for Python 3.14, these dependencies will be skipped during installation, which will lead to missing packages and runtime failures in the Ray environment.
Signed-off-by: elliot-barn <elliot.barnwell@anyscale.com>
Signed-off-by: elliot-barn <elliot.barnwell@anyscale.com>
Signed-off-by: elliot-barn <elliot.barnwell@anyscale.com>
Signed-off-by: elliot-barn <elliot.barnwell@anyscale.com>
Signed-off-by: elliot-barn <elliot.barnwell@anyscale.com>
Signed-off-by: elliot-barn <elliot.barnwell@anyscale.com>
Signed-off-by: elliot-barn <elliot.barnwell@anyscale.com>
Signed-off-by: elliot-barn <elliot.barnwell@anyscale.com>
Signed-off-by: elliot-barn <elliot.barnwell@anyscale.com>
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes and found 1 potential issue.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, have a team admin enable autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit 5fa8eb0. Configure here.
Signed-off-by: elliot-barn <elliot.barnwell@anyscale.com>
…oject/ray into elliot-barn-314-ray-image
Signed-off-by: elliot-barn <elliot.barnwell@anyscale.com>
Signed-off-by: elliot-barn <elliot.barnwell@anyscale.com>
Signed-off-by: elliot-barn <elliot.barnwell@anyscale.com>
…ot-barn-314-ray-image
Signed-off-by: elliot-barn <elliot.barnwell@anyscale.com>

Adds CPython 3.14 as a supported target in Ray's CI/release infrastructure: wheel builder, image build pipeline, dependency locks, release-test config schema, and a
hello_world_py314smoke release test.Follow-up PR carries the
_raylet.soruntime fix that makes async actors actually work on cp3.14. This PR enables the build/test plumbing only; without the runtime PR landing first, any release test that exercises async actors will crash onJobSupervisor.Buildkite image build pipeline
.buildkite/_images.rayci.yml— addspy314entries to the base/cuda/slim image matrices so the image-matrix steps emit cp3.14 variants..buildkite/build.rayci.yml— image build + publish steps forray-py3.14andray-extra-py3.14..buildkite/linux_aarch64.rayci.yml— aarch64 base + image build + publish for cp3.14..buildkite/release/build.rayci.yml— anyscale release-test images (raycpubaseextra-testdeps,raycudabaseextra-testdeps,ray-anyscale-cpu-build,ray-anyscale-cuda-build,anyscalecpubuild,anyscalecudabuild) extended to cp3.14. This is what unblocks the prior CI errorStep dependencies not found: anyscalecpubuild--python314.ci/raydepsets/configs/rayimg.depsets.yaml— declares the cp3.14 depset for the ray image.Dependency locks (raydepsets)
New cp3.14 lock files generated via
raydepsets:Wheel builder + release-test config
ci/build/build_wheel.py—SUPPORTED_PYTHON_VERSIONSincludes"3.14", sopython ci/build/build_wheel.pyproduces cp314 wheels.release/ray_release/schema.json—"3.14"added to thepythonenum (without this, release-test config validation rejectspython: "3.14").release/ray_release/config.py—"3.14"added to the BYOD-type allowlist (parallel change to schema.json — both gates the release runner walks before accepting a test).Release smoke test
release/release_tests.yaml— addshello_world_py314(aws variation only, nightly cadence) that submits a trivialray.get(hello_world.remote())job. Uses the samehello_world_compute_config.yamlas the existinghello_worldtest, just pinned topython: "3.14"andanyscale_sdk_2026: true.Misc
docker/base-deps/Dockerfile— bumps libffi (cp3.14's_ctypesbuild needs the newer ABI).Verification
hello_world_py314release test passes against an image built from this branch