Skip to content

Compatibility and Version Policy

Supported Versions

Component Supported
Python 3.12, 3.13, 3.14
Django 6.0 or newer compatible release
Ray 2.53.0 or newer compatible release
Production operating system Linux recommended

Python 3.12 is the floor because Django 6.0 requires Python 3.12+, not because Ray does. Current Ray releases support a wider Python range.

Ray Client and cluster execution are most predictable when the task manager and Ray cluster use the same Ray version and Python minor version. Patch-version differences may produce a warning; different minor versions should not be treated as compatible.

Ray Compiled Graph has a separate, exact, fail-closed capability policy because its native beta channels have narrower version, platform, transport, and process-owner constraints. The general Ray version range in this table does not enable compilation. Generic or unresolved host/container context is also insufficient: an eligible row requires an immutable deployment/image digest plus explicit shared-memory and Ray object-store profiles. See Compiled Graph Compatibility.

Dependency Policy

pyproject.toml uses lower bounds so applications can resolve compatible updates instead of being locked to the versions used for one django-ray release. The committed uv.lock gives contributors and CI a reproducible current environment.

CI covers:

  • the committed lock on every supported Python minor;
  • minimum direct dependencies on the oldest supported Python;
  • the newest resolvable dependencies on the newest supported Python;
  • package installation from the built wheel on every supported Python minor.

Updating the lock is therefore separate from raising a package's minimum supported version. A lower bound should move only when django-ray uses a newer API or the older dependency is no longer supportable.

Platforms

Ray publishes platform-specific wheels. A pure-Python django-ray wheel does not imply that Ray is available on every Python/platform combination.

  • Linux is the production target for clusters and Kubernetes.
  • Ray's Windows multi-node support remains experimental; Windows is useful for local development and tests.
  • Ray publishes Linux aarch64 wheels for supported Python versions, but users must confirm their OS, architecture, and Python ABI match an available Ray wheel.

Compiled Graph is more restrictive than ordinary Ray use: policy version 2 rejects Windows, aarch64, Ray Client, GPU transport, and every unverified native tuple before calling experimental_compile(). Dynamic workflows remain supported according to the general matrix above.

piwheels

piwheels automatically processes PyPI releases; projects do not upload or configure build rows themselves. Its project table shows the Python versions associated with supported Debian releases. Those columns are not django-ray's support declaration.

The piwheels JSON metadata for django-ray correctly carries requires_python: ">=3.12". Pip will use that metadata when resolving an install. The displayed django-ray wheel is py3-none-any, while the Ray dependency still needs a compatible platform wheel.

If the project should disappear from piwheels entirely because no useful Ray installation exists for the platform, the available mechanism is to contact the piwheels maintainers and request a skip flag. There is no setting in pyproject.toml that customizes their version grid.