From 5d602f285efce24046c39bcde09329ba432c70d5 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 26 Oct 2026 00:28:39 +0000 Subject: [PATCH 1/2] Bump extro-torx from 0.0.1 to 0.0.3 in /runtimes/python Bumps [extro-torx](https://github.com/extropic-ai/torx) from 0.0.1 to 0.0.3. - [Release notes](https://github.com/extropic-ai/torx/releases) - [Commits](https://github.com/extropic-ai/torx/compare/v0.0.1...v0.0.3) --- updated-dependencies: - dependency-name: extro-torx dependency-version: 0.0.3 dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- runtimes/python/pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/runtimes/python/pyproject.toml b/runtimes/python/pyproject.toml index dae142c..6cfc431 100644 --- a/runtimes/python/pyproject.toml +++ b/runtimes/python/pyproject.toml @@ -37,7 +37,7 @@ extropic = [ ] extropic-torx = [ "extro-sim>=0.5,<0.6", - "extro-torx==0.0.1", + "extro-torx==0.0.3", "jax>=0.11,<0.12" ] dev = [ From cefe437452ab580865284a03d67d0be3d81de017 Mon Sep 17 00:00:00 2001 From: jeremydixon22 Date: Mon, 26 Oct 2026 09:47:47 -0400 Subject: [PATCH 2/2] Prove Torx 0.0.3 compatibility --- .github/workflows/extropic-preview.yml | 6 +++++- docs/guides/extropic-execution.md | 15 +++++++++------ runtimes/python/README.md | 4 ++-- runtimes/python/pyproject.toml | 3 ++- scripts/verify-python-extropic-torx.py | 17 +++++++++++------ 5 files changed, 29 insertions(+), 16 deletions(-) diff --git a/.github/workflows/extropic-preview.yml b/.github/workflows/extropic-preview.yml index 54b8117..827fee4 100644 --- a/.github/workflows/extropic-preview.yml +++ b/.github/workflows/extropic-preview.yml @@ -37,6 +37,10 @@ jobs: name: Prove Torx workload packaging runs-on: ubuntu-24.04 timeout-minutes: 15 + strategy: + fail-fast: false + matrix: + python-version: ["3.10", "3.12"] steps: - name: Check out repository uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 @@ -44,7 +48,7 @@ jobs: - name: Set up Python uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0 with: - python-version: "3.12" + python-version: ${{ matrix.python-version }} cache: pip cache-dependency-path: runtimes/python/pyproject.toml diff --git a/docs/guides/extropic-execution.md b/docs/guides/extropic-execution.md index 6ac85da..1640e70 100644 --- a/docs/guides/extropic-execution.md +++ b/docs/guides/extropic-execution.md @@ -103,11 +103,13 @@ placeholder compute function. It evaluates a two-wire circuit with an explicit seed and returns a normalized JSON distribution through the same registered-workload boundary. -Torx 0.0.1 requires Python 3.11 or newer. The proof extra pins the current Torx -and JAX compatibility line without changing Vyral's Python 3.10 baseline: +Torx 0.0.3 supports Python 3.10 or newer. The proof extra pins JAX 0.6.2 on +Python 3.10 and 3.11, the newest JAX line supporting those interpreters, and +JAX 0.11.x on Python 3.12 and newer. CI exercises both compatibility paths, +including Vyral's Python 3.10 baseline: ```bash -python3.12 -m venv .venv +python3.10 -m venv .venv . .venv/bin/activate python -m pip install --editable "runtimes/python[extropic-torx]" python scripts/verify-python-extropic-torx.py @@ -157,9 +159,10 @@ platform failures. Provider error detail is kept out of public results. - Compatibility is pinned to `extro-sim >=0.5,<0.6`. The SDK and provider are new enough that minor contract changes should be expected and reviewed. -- The optional local Torx proof pins `extro-torx ==0.0.1` and JAX 0.11.x. Torx - is not a Vyral runtime dependency and its Python 3.11 floor does not narrow - the base runtime's supported Python versions. +- The optional local Torx proof pins `extro-torx ==0.0.3`, JAX 0.6.2 below + Python 3.12, and JAX 0.11.x on Python 3.12 and newer. Torx is not a Vyral + runtime dependency, and the proof preserves the base runtime's Python 3.10 + floor. - Vyral serializes plain registered Python functions by value so the sandbox does not need the host application's module. Imported packages must already exist in the sandbox image. Callable objects and helpers imported from other diff --git a/runtimes/python/README.md b/runtimes/python/README.md index 69582a3..2b1472b 100644 --- a/runtimes/python/README.md +++ b/runtimes/python/README.md @@ -284,7 +284,7 @@ workloads should be self-contained plain Python functions; Vyral serializes those functions by value, while third-party imports must exist in Extropic's sandbox. A pinned `extropic-torx` extra and [`examples/python/extropic_torx_workload.py`](../../examples/python/extropic_torx_workload.py) -provide a real, credit-free Torx packaging proof on Python 3.11 or newer. See the +provide a real, credit-free Torx packaging proof on Python 3.10 or newer. See the [Extropic execution guide](../../docs/guides/extropic-execution.md) for the complete lifecycle and current boundaries. @@ -295,7 +295,7 @@ complete lifecycle and current boundaries. | Talk to a running .NET or Python Vyral host | `vyral-client` | | Run Vyral in-process without a server or .NET | `vyral` | | Run a Python-hosted REST and MCP endpoint | `vyral[server]` | -| Rehearse the current Extropic/Torx proof locally | `vyral[extropic-torx]` (Python 3.11+) | +| Rehearse the current Extropic/Torx proof locally | `vyral[extropic-torx]` (Python 3.10+) | The existing `vyral-client` distribution remains the supported lightweight client for a running Vyral server. `vyral` is a separate runtime distribution diff --git a/runtimes/python/pyproject.toml b/runtimes/python/pyproject.toml index 6cfc431..27f5b1d 100644 --- a/runtimes/python/pyproject.toml +++ b/runtimes/python/pyproject.toml @@ -38,7 +38,8 @@ extropic = [ extropic-torx = [ "extro-sim>=0.5,<0.6", "extro-torx==0.0.3", - "jax>=0.11,<0.12" + "jax==0.6.2; python_version < '3.12'", + "jax>=0.11,<0.12; python_version >= '3.12'" ] dev = [ "build>=1.2,<2", diff --git a/scripts/verify-python-extropic-torx.py b/scripts/verify-python-extropic-torx.py index 24a1293..f545ab2 100755 --- a/scripts/verify-python-extropic-torx.py +++ b/scripts/verify-python-extropic-torx.py @@ -117,20 +117,25 @@ def _run_in_clean_process(encoded: bytes) -> dict[str, Any]: def main() -> int: - if sys.version_info < (3, 11): - raise SystemExit("The Torx proof requires Python 3.11 or newer.") + if sys.version_info < (3, 10): + raise SystemExit("The Torx proof requires Python 3.10 or newer.") import jax import extro_sim torx_version = importlib.metadata.version("extro-torx") - if torx_version != "0.0.1": + if torx_version != "0.0.3": raise SystemExit( - "The Torx proof requires extro-torx 0.0.1, got " + "The Torx proof requires extro-torx 0.0.3, got " f"{torx_version}." ) - if not jax.__version__.startswith("0.11."): - raise SystemExit(f"The Torx proof requires JAX 0.11.x, got {jax.__version__}.") + expected_jax_line = "0.6." if sys.version_info < (3, 12) else "0.11." + if not jax.__version__.startswith(expected_jax_line): + raise SystemExit( + "The Torx proof requires JAX " + f"{expected_jax_line}x on Python {sys.version_info.major}." + f"{sys.version_info.minor}, got {jax.__version__}." + ) if not extro_sim.__version__.startswith("0.5."): raise SystemExit( "The Torx proof requires extro-sim 0.5.x, got "