Skip to content

Commit 0c3635a

Browse files
committed
docs(deploy-guide): rewrite Python version section for parity-by-default
Lead with the parity contract (local Python = deploy target), document the bounded {3.10..3.13} support set, document the override and per-resource declaration paths, and call out the team-consistency recommendation. Drop the side-by-side / 7 GB cold-start callouts — no longer accurate after the worker image rearchitecture. Refs AE-2827.
1 parent 6e3d4e5 commit 0c3635a

1 file changed

Lines changed: 13 additions & 9 deletions

File tree

docs/Flash_Deploy_Guide.md

Lines changed: 13 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -6,22 +6,26 @@ This guide walks through deploying a Flash application from local development to
66

77
## Prerequisites
88

9-
- Python 3.10, 3.11, or 3.12
9+
- Python 3.10, 3.11, 3.12, or 3.13
1010
- `pip install runpod-flash`
1111
- A Runpod account with API key ([get one here](https://docs.runpod.io/get-started/api-keys))
1212

1313
### Python version selection
1414

15-
Flash apps ship as a single tarball, so every resource in an app shares one Python version. The worker runtime defaults to 3.12 (the version torch is pre-installed for in the GPU base image). Select a different version in two ways:
15+
Flash workers support Python 3.10, 3.11, 3.12, and 3.13. Native per-version images mean each interpreter has torch, numpy, and the worker runtime built directly for it — no side-by-side overhead, no cold-start tax for non-default versions.
1616

17-
- **Per-resource declaration**: set `python_version="3.11"` on any resource config — all resources in the same app must agree or leave it unset.
18-
- **App-level override**: pass `--python-version 3.11` to `flash build` or `flash deploy`. The override wins over per-resource values that are unset and must match any that are set.
17+
By default, `flash build` and `flash deploy` target the Python version you're running flash from. If you're on 3.11 locally, your deploy runs on 3.11; on 3.13, it runs on 3.13. The build prints the resolved version and its source on the first line of output.
1918

20-
| Version | Status | GPU cold-start | Notes |
21-
|---------|--------|----------------|-------|
22-
| 3.10 | Supported (EOL 2026-10-31) | +~7 GB alt-Python install | Consider migrating to 3.11 before EOL |
23-
| 3.11 | Supported | +~7 GB alt-Python install | |
24-
| 3.12 | Supported (default) | No overhead | Torch pre-installed in base image |
19+
You can override the choice in two ways:
20+
21+
- **CLI flag:** `flash build --python-version 3.12` or `flash deploy --python-version 3.12`. Validated against the supported set.
22+
- **Per-resource declaration:** set `python_version="3.12"` on any `LiveServerless`, `CpuLiveServerless`, `LiveLoadBalancer`, or `CpuLiveLoadBalancer` config. The build reconciles to the declared value (or raises if resources disagree).
23+
24+
For projects shared across a team, declare `python_version` explicitly on each resource config. That makes the deploy result identical regardless of who runs `flash build` and what Python they happen to have installed locally — useful when team members and CI run different interpreters.
25+
26+
Flash will refuse to build if your local Python is outside the supported set (e.g. 3.9 or 3.14). The error message tells you to pass `--python-version`, declare on a resource, or upgrade your interpreter.
27+
28+
The `runpod/flash:latest`, `runpod/flash-lb:latest`, `runpod/flash-cpu:latest`, and `runpod/flash-lb-cpu:latest` aliases all point at the 3.12 image variant — Dockerfiles or compose files that pin `:latest` will keep getting 3.12. Use the `:py3.X-{tag}` form for explicit version pinning.
2529

2630
## Quick Start
2731

0 commit comments

Comments
 (0)