From 7954ccfb2c179fa53ae7c87f02520983666806e8 Mon Sep 17 00:00:00 2001 From: Michael Simacek Date: Tue, 1 Sep 2026 09:35:59 +0200 Subject: [PATCH 1/4] Revert "Add a workaround for test_gzip transients" This reverts commit fb77bf3e4f780edc5fc9e7c2a3d03808debd5ee6. --- mx.graalpython/mx_graalpython.py | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/mx.graalpython/mx_graalpython.py b/mx.graalpython/mx_graalpython.py index 5d291c63ce..af5e2c0c86 100644 --- a/mx.graalpython/mx_graalpython.py +++ b/mx.graalpython/mx_graalpython.py @@ -2134,14 +2134,7 @@ def graalpython_gate_runner(_, tasks): with Task('GraalPython Python tests', tasks, tags=[GraalPythonTags.tagged]) as task: if task: # don't fail this task if we're running with the jacoco agent, we know that some tests don't pass with it enabled - collecting_coverage = is_collecting_coverage() - run_tagged_unittests( - graalpy_standalone_native(), - # GR-78213: Temporarily work around transient failures in test_gzip - args=[] if collecting_coverage else ["--engine.CompileOnly=~_PaddedFile.read"], - nonZeroIsFatal=not collecting_coverage, - report=report(), - ) + run_tagged_unittests(graalpy_standalone_native(), nonZeroIsFatal=(not is_collecting_coverage()), report=report()) # Unittests on SVM with Task('GraalPython build on SVM', tasks, tags=[GraalPythonTags.svmbuild]) as task: From 32fcc2ea22dc534c0386e993174af06b06194c61 Mon Sep 17 00:00:00 2001 From: Michael Simacek Date: Tue, 1 Sep 2026 09:47:18 +0200 Subject: [PATCH 2/4] Deduplicate version compatibility table --- docs/user/README.md | 11 +---------- 1 file changed, 1 insertion(+), 10 deletions(-) diff --git a/docs/user/README.md b/docs/user/README.md index f28d486032..5287568bd6 100644 --- a/docs/user/README.md +++ b/docs/user/README.md @@ -43,19 +43,10 @@ These guides cover everything you need to know: ## General Information +- **[Version Compatibility](Version-Compatibility.md)** - Python version compatibility - **[Test Tiers](Test-Tiers.md)** - Platform compatibility and testing information - **[Troubleshooting](Troubleshooting.md)** - Common embedding issues and solutions -## Version Compatibility - -The following table shows which Python versions are supported by each GraalPy release: - -| GraalPy Version | Python Version | GraalVM Platform | -| --------------- | -------------- | --------------------------------------------------------------- | -| 25.x | Python 3.12.8 | Oracle GraalVM 25.x, GraalVM Community Edition 25.x | -| 23.x | Python 3.10.8 | Oracle GraalVM for JDK 21.x, Oracle GraalVM for JDK 17.x | -| 22.x | Python 3.8.5 | GraalVM Enterprise Edition 21.3.x | - ### Platform Support GraalPy is mostly written in Java and Python, but the Python package ecosystem is rich in native packages that need platform specific support via native libraries that expose platform-specific APIs. From 27895e33782550a4f8edcc354248a701603bdd50 Mon Sep 17 00:00:00 2001 From: Michael Simacek Date: Tue, 1 Sep 2026 09:50:24 +0200 Subject: [PATCH 3/4] Update python version in docs to 3.13 --- README.md | 2 +- docs/site/01-python-developers.md | 4 ++-- docs/site/_config.yml | 2 +- docs/user/README.md | 2 +- docs/user/Standalone-Getting-Started.md | 2 +- docs/user/Version-Compatibility.md | 9 ++++----- .../src/tests/graalos/GRAALOS_DEMO.md | 6 +++--- .../README_GRAALOS_STANDALONE.md | 6 +++--- scripts/wheelbuilder/README.md | 8 ++++---- 9 files changed, 20 insertions(+), 21 deletions(-) diff --git a/README.md b/README.md index a18eaa13f0..f1cc14f3e8 100644 --- a/README.md +++ b/README.md @@ -7,7 +7,7 @@ [![Open in GitHub Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/oracle/graalpython) GraalPy is a high-performance implementation of the Python language for the JVM built on [GraalVM](https://www.graalvm.org/python). -GraalPy is a Python 3.12 compliant runtime. +GraalPy is a Python 3.13 compliant runtime. It has first-class support for embedding in Java and can turn Python applications into fast, standalone binaries. GraalPy is ready for production running pure Python code and has experimental support for many popular native extension modules. diff --git a/docs/site/01-python-developers.md b/docs/site/01-python-developers.md index 4e0afdc721..6418d0d68f 100644 --- a/docs/site/01-python-developers.md +++ b/docs/site/01-python-developers.md @@ -107,10 +107,10 @@ pyenv shell graalpy-dev
{%- highlight bash -%} # Install GraalPy with uv (uv selects GraalPy by Python language version) -uv python install graalpy-3.12 +uv python install graalpy-{{site.python_version}} # Create a virtual environment with GraalPy -uv venv --python graalpy-3.12 +uv venv --python graalpy-{{site.python_version}} {%- endhighlight -%}
diff --git a/docs/site/_config.yml b/docs/site/_config.yml index 76f3a59edf..42798964c9 100644 --- a/docs/site/_config.yml +++ b/docs/site/_config.yml @@ -2,7 +2,7 @@ baseurl: "" url: "https://graalpy.org" github: "oracle/graalpython" language_version: 25.0.3 -python_version: 3.12 +python_version: 3.13 name: GraalPy permalink: pretty diff --git a/docs/user/README.md b/docs/user/README.md index 5287568bd6..3b061591dd 100644 --- a/docs/user/README.md +++ b/docs/user/README.md @@ -1,6 +1,6 @@ # GraalPy User Guide -GraalPy is a Python 3.12 compliant runtime that provides better performance, native compilation capabilities, and seamless Java interoperability. +GraalPy is a Python 3.13 compliant runtime that provides better performance, native compilation capabilities, and seamless Java interoperability. Here are the two main types of users and how they can benefit from GraalPy: diff --git a/docs/user/Standalone-Getting-Started.md b/docs/user/Standalone-Getting-Started.md index 2562f1397c..6c90d41103 100644 --- a/docs/user/Standalone-Getting-Started.md +++ b/docs/user/Standalone-Getting-Started.md @@ -29,7 +29,7 @@ The GraalPy standalone runtimes are identified using the pattern _graalpy(-commu ## GraalPy Capabilities -GraalPy provides a Python 3.12 compliant runtime. +GraalPy provides a Python 3.13 compliant runtime. A primary goal is to support PyTorch, SciPy, and their constituent libraries, as well as to work with other data science and machine learning libraries from the rich Python ecosystem. GraalPy provides the following capabilities: diff --git a/docs/user/Version-Compatibility.md b/docs/user/Version-Compatibility.md index 04370b4c7b..d1c4e9e51c 100644 --- a/docs/user/Version-Compatibility.md +++ b/docs/user/Version-Compatibility.md @@ -2,8 +2,7 @@ The following table shows which Python versions are supported by each GraalPy release: -| GraalPy Version | Python Version | GraalVM Platform | -| --------------- | -------------- | --------------------------------------------------------------- | -| 25.x | Python 3.12.8 | Oracle GraalVM 25.x, GraalVM Community Edition 25.x | -| 23.x | Python 3.10.8 | Oracle GraalVM for JDK 21.x, Oracle GraalVM for JDK 17.x | -| 22.x | Python 3.8.5 | GraalVM Enterprise Edition 21.3.x | \ No newline at end of file +| GraalPy Version | Python Version | +| --------------- | --------------- | +| 25.0 - 25.2 | Python 3.12.8 | +| 25.3 | Python 3.13.14 | diff --git a/graalpython/com.oracle.graal.python.test/src/tests/graalos/GRAALOS_DEMO.md b/graalpython/com.oracle.graal.python.test/src/tests/graalos/GRAALOS_DEMO.md index 65fe1a72e0..5223233e5d 100644 --- a/graalpython/com.oracle.graal.python.test/src/tests/graalos/GRAALOS_DEMO.md +++ b/graalpython/com.oracle.graal.python.test/src/tests/graalos/GRAALOS_DEMO.md @@ -22,11 +22,11 @@ show. ```bash python3 -m pip install \ - --target GRAALPY_NATIVE_GRAALOS_STANDALONE/lib/python3.12/site-packages \ + --target GRAALPY_NATIVE_GRAALOS_STANDALONE/lib/python3.13/site-packages \ --only-binary=:all: \ - --python-version 3.12 \ + --python-version 3.13 \ --implementation py --implementation graalpy \ - --abi none --abi graalpy250_312_native \ + --abi none --abi graalpy253_313_native \ --platform any --platform graalos_x86_64 \ --no-compile \ rich diff --git a/graalpython/graalpy_graalos_standalone_payload/README_GRAALOS_STANDALONE.md b/graalpython/graalpy_graalos_standalone_payload/README_GRAALOS_STANDALONE.md index 57a8562a9c..63341b11cc 100644 --- a/graalpython/graalpy_graalos_standalone_payload/README_GRAALOS_STANDALONE.md +++ b/graalpython/graalpy_graalos_standalone_payload/README_GRAALOS_STANDALONE.md @@ -258,11 +258,11 @@ outside, by selecting compatible tags, for example: ```bash python3 -m pip install \ - --target GRAALPY_NATIVE_GRAALOS_STANDALONE/lib/python3.12/site-packages \ + --target GRAALPY_NATIVE_GRAALOS_STANDALONE/lib/python3.13/site-packages \ --only-binary=:all: \ - --python-version 3.12 \ + --python-version 3.13 \ --implementation py --implementation graalpy \ - --abi none --abi graalpy250_312_native \ + --abi none --abi graalpy253_313_native \ --platform any --platform graalos_x86_64 \ --no-compile \ rich asteval diff --git a/scripts/wheelbuilder/README.md b/scripts/wheelbuilder/README.md index 7524c920ca..64ba3d9b86 100644 --- a/scripts/wheelbuilder/README.md +++ b/scripts/wheelbuilder/README.md @@ -42,7 +42,7 @@ For Linux/amd64, I use [act](https://github.com/nektos/act/releases) on a Linux git clone https://github.com/oracle/graalpython cd graalpython VERSION=25.2.4 -PYTHON_VERSION=3.12 +PYTHON_VERSION=3.13 BINDIR=. curl --proto '=https' --tlsv1.2 -sSf https://raw.githubusercontent.com/nektos/act/master/install.sh | bash echo "graalpy_url=https://github.com/oracle/graalpython/releases/download/graal-$VERSION/graalpy$PYTHON_VERSION-$VERSION-linux-amd64.tar.gz" > .input podman system service -t 0 unix:///tmp/podman.sock & @@ -55,7 +55,7 @@ For Linux/aarch64, I use act on a mac, those are usually beefy ARM machines that git clone https://github.com/oracle/graalpython cd graalpython VERSION=25.2.4 -PYTHON_VERSION=3.12 +PYTHON_VERSION=3.13 brew install act echo "graalpy_url=https://github.com/oracle/graalpython/releases/download/graal-$VERSION/graalpy$PYTHON_VERSION-$VERSION-linux-aarch64.tar.gz" > .input podman machine init -m 16384 --now @@ -66,7 +66,7 @@ For macOS/aarch64, you get no isolation from act, so I just run it directly. ```shell git clone https://github.com/oracle/graalpython VERSION=25.2.4 -PYTHON_VERSION=3.12 +PYTHON_VERSION=3.13 export GITHUB_RUN_ID=doesntMatterJustTriggerBrewInstallScripts python3 -m venv wheelbuilder-venv . wheelbuilder-venv/bin/activate @@ -77,7 +77,7 @@ For Windows/amd64, you get no isolation from act, so I just run it directly in V ```shell git clone https://github.com/oracle/graalpython $VERSION="25.2.4" -$PYTHON_VERSION="3.12" +$PYTHON_VERSION="3.13" $env:GITHUB_RUN_ID="doesntMatterJustTriggerBrewInstallScripts" python3 -m venv wheelbuilder-venv wheelbuilder-venv/scripts/activate From ea00fcd8ddd5c78ababa2f941bb120cd0e5b3cf8 Mon Sep 17 00:00:00 2001 From: Michael Simacek Date: Tue, 1 Sep 2026 10:04:54 +0200 Subject: [PATCH 4/4] Update GraalPy versions in docs --- README.md | 12 ++++----- docs/site/_config.yml | 2 +- docs/user/Embedding-Build-Tools.md | 2 +- docs/user/Embedding-Getting-Started.md | 18 ++++++------- docs/user/Interoperability.md | 2 +- docs/user/Standalone-Getting-Started.md | 36 ++++++++++++------------- scripts/wheelbuilder/README.md | 8 +++--- 7 files changed, 40 insertions(+), 40 deletions(-) diff --git a/README.md b/README.md index f1cc14f3e8..b5d785cf1b 100644 --- a/README.md +++ b/README.md @@ -63,20 +63,20 @@ Refer to our [embedding documentation](https://www.graalvm.org/latest/reference- org.graalvm.polyglot polyglot - 25.0.2 + 25.3.4.1 org.graalvm.polyglot python - 25.0.2 + 25.3.4.1 pom ``` * Gradle ```kotlin - implementation("org.graalvm.polyglot:polyglot:25.0.2") - implementation("org.graalvm.python:python-embedding:25.0.2") + implementation("org.graalvm.polyglot:polyglot:25.3.4.1") + implementation("org.graalvm.python:python-embedding:25.3.4.1") ``` @@ -93,8 +93,8 @@ Thanks to our integration with GraalVM Native Image, we can deploy Python applic **Quick Installation:** -- **Linux/macOS**: `pyenv install graalpy-25.0.2 && pyenv shell graalpy-25.0.2` -- **Windows**: `pyenv install graalpy-25.0.2-windows-amd64` +- **Linux/macOS**: `pyenv install graalpy-25.3.4.1 && pyenv shell graalpy-25.3.4.1` +- **Windows**: `pyenv install graalpy-25.3.4.1-windows-amd64` - **Manual**: Download from [GitHub releases](https://github.com/oracle/graalpython/releases) **See the [complete installation guide](docs/user/Standalone-Getting-Started.md) for detailed instructions.** diff --git a/docs/site/_config.yml b/docs/site/_config.yml index 42798964c9..0d4aa29c06 100644 --- a/docs/site/_config.yml +++ b/docs/site/_config.yml @@ -1,7 +1,7 @@ baseurl: "" url: "https://graalpy.org" github: "oracle/graalpython" -language_version: 25.0.3 +language_version: 25.3.4.1 python_version: 3.13 name: GraalPy permalink: pretty diff --git a/docs/user/Embedding-Build-Tools.md b/docs/user/Embedding-Build-Tools.md index e0b12f1dad..c0d4c4fbef 100644 --- a/docs/user/Embedding-Build-Tools.md +++ b/docs/user/Embedding-Build-Tools.md @@ -252,7 +252,7 @@ Add the plugin configuration to your _build.gradle_ file: ```groovy plugins { - id 'org.graalvm.python' version '25.2.4' + id 'org.graalvm.python' version '25.3.4.1' } graalPy { diff --git a/docs/user/Embedding-Getting-Started.md b/docs/user/Embedding-Getting-Started.md index 6175733961..b07d6f4c6a 100644 --- a/docs/user/Embedding-Getting-Started.md +++ b/docs/user/Embedding-Getting-Started.md @@ -16,7 +16,7 @@ The fastest way to get started is with GraalPy's Maven archetype, which generate mvn archetype:generate \ -DarchetypeGroupId=org.graalvm.python \ -DarchetypeArtifactId=graalpy-archetype-polyglot-app \ - -DarchetypeVersion=25.2.4 + -DarchetypeVersion=25.3.4.1 ``` This generates the following project structure: @@ -87,8 +87,8 @@ If you prefer Gradle, here is how to set up a new project with GraalPy embedding - Include the GraalPy support and the [GraalVM Polyglot API](https://www.graalvm.org/sdk/javadoc/org/graalvm/polyglot/package-summary.html) in the `dependencies` section: ```gradle - implementation("org.graalvm.polyglot:polyglot:25.2.4") - implementation("org.graalvm.python:python-embedding:25.2.4") + implementation("org.graalvm.polyglot:polyglot:25.3.4.1") + implementation("org.graalvm.python:python-embedding:25.3.4.1") ``` 3. Replace the _App.java_ content with this simple Python embedding example: @@ -134,7 +134,7 @@ Add the Python embedding dependency and GraalPy Maven plugin configuration to yo org.graalvm.python python-embedding - 25.2.4 + 25.3.4.1 @@ -143,7 +143,7 @@ Add the Python embedding dependency and GraalPy Maven plugin configuration to yo org.graalvm.python graalpy-maven-plugin - 25.2.4 + 25.3.4.1 @@ -169,11 +169,11 @@ Add the GraalPy Gradle plugin and configure dependencies in _app/build.gradle_: plugins { id "java" id "application" - id "org.graalvm.python" version "25.2.4" + id "org.graalvm.python" version "25.3.4.1" } dependencies { - implementation("org.graalvm.python:python-embedding:25.2.4") + implementation("org.graalvm.python:python-embedding:25.3.4.1") } graalPy { @@ -213,11 +213,11 @@ BouncyCastle is optional for GraalPy embeddings. Add the following dependency on org.graalvm.python python-bouncycastle-support - 25.2.4 + 25.3.4.1 ``` -For Gradle, use `implementation("org.graalvm.python:python-bouncycastle-support:25.2.4")`. +For Gradle, use `implementation("org.graalvm.python:python-bouncycastle-support:25.3.4.1")`. ### Configuring Individual Sources diff --git a/docs/user/Interoperability.md b/docs/user/Interoperability.md index 302a491cf9..23247c785f 100644 --- a/docs/user/Interoperability.md +++ b/docs/user/Interoperability.md @@ -211,7 +211,7 @@ If you're using Maven with GraalPy, add the JavaScript dependency to your _pom.x org.graalvm.polyglot js - 25.2.4 + 25.3.4.1 ``` diff --git a/docs/user/Standalone-Getting-Started.md b/docs/user/Standalone-Getting-Started.md index 6c90d41103..adb5156def 100644 --- a/docs/user/Standalone-Getting-Started.md +++ b/docs/user/Standalone-Getting-Started.md @@ -50,25 +50,25 @@ The easiest way to install GraalPy on Linux is to use [Pyenv](https://github.com # Update pyenv to include latest GraalPy versions (if needed) pyenv update -# Install GraalPy 25.2.4 -pyenv install graalpy-25.2.4 +# Install GraalPy 25.3.4.1 +pyenv install graalpy-25.3.4.1 # Use GraalPy for the current shell session -pyenv shell graalpy-25.2.4 +pyenv shell graalpy-25.3.4.1 ``` #### Manual Installation (Linux) 1. Download the appropriate binary from [GitHub releases](https://github.com/oracle/graalpython/releases): - - AMD64: `graalpy3.12-25.2.4-linux-amd64.tar.gz` - - ARM64: `graalpy3.12-25.2.4-linux-aarch64.tar.gz` + - AMD64: `graalpy3.13-25.3.4.1-linux-amd64.tar.gz` + - ARM64: `graalpy3.13-25.3.4.1-linux-aarch64.tar.gz` 2. Extract and add it to your `PATH` environment variable: ```bash - tar -xzf graalpy3.12-25.2.4-linux-amd64.tar.gz - export PATH="$PWD/graalpy3.12-25.2.4-linux-amd64/bin:$PATH" + tar -xzf graalpy3.13-25.3.4.1-linux-amd64.tar.gz + export PATH="$PWD/graalpy3.13-25.3.4.1-linux-amd64/bin:$PATH" ``` ### macOS @@ -76,11 +76,11 @@ pyenv shell graalpy-25.2.4 Using Pyenv (recommended): ```bash -# Install GraalPy 25.2.4 -pyenv install graalpy-25.2.4 +# Install GraalPy 25.3.4.1 +pyenv install graalpy-25.3.4.1 # Use GraalPy for the current shell session -pyenv shell graalpy-25.2.4 +pyenv shell graalpy-25.3.4.1 ``` #### Manual Installation (macOS) @@ -92,14 +92,14 @@ pyenv shell graalpy-25.2.4 ```bash sudo xattr -r -d com.apple.quarantine /path/to/graalpy # For example: - sudo xattr -r -d com.apple.quarantine ~/.pyenv/versions/graalpy-25.2.4 + sudo xattr -r -d com.apple.quarantine ~/.pyenv/versions/graalpy-25.3.4.1 ``` 3. Extract and add it to your `PATH` environment variable: ```bash - tar -xzf graalpy3.12-25.2.4-macos-aarch64.tar.gz - export PATH="$PWD/graalpy3.12-25.2.4-macos-aarch64/bin:$PATH" + tar -xzf graalpy3.13-25.3.4.1-macos-aarch64.tar.gz + export PATH="$PWD/graalpy3.13-25.3.4.1-macos-aarch64/bin:$PATH" ``` ### Windows @@ -112,9 +112,9 @@ pyenv shell graalpy-25.2.4 ```powershell # Extract the file and update your PATH environment variable - # to include the graalpy3.12-25.2.4-windows-amd64/bin directory - tar -xzf graalpy3.12-25.2.4-windows-amd64.zip - $env:PATH = "$PWD\graalpy3.12-25.2.4-windows-amd64\bin;$env:PATH" + # to include the graalpy3.13-25.3.4.1-windows-amd64/bin directory + tar -xzf graalpy3.13-25.3.4.1-windows-amd64.zip + $env:PATH = "$PWD\graalpy3.13-25.3.4.1-windows-amd64\bin;$env:PATH" ``` #### Known Windows Limitations @@ -129,10 +129,10 @@ The recommended way to use GraalPy is with [venv](https://docs.python.org/3/libr ```bash # Create a virtual environment -graalpy -m venv ~/.virtualenvs/graalpy-25.2.4 +graalpy -m venv ~/.virtualenvs/graalpy # Activate the environment -source ~/.virtualenvs/graalpy-25.2.4/bin/activate +source ~/.virtualenvs/graalpy/bin/activate ``` ### Installing Packages diff --git a/scripts/wheelbuilder/README.md b/scripts/wheelbuilder/README.md index 64ba3d9b86..07e437aa0e 100644 --- a/scripts/wheelbuilder/README.md +++ b/scripts/wheelbuilder/README.md @@ -41,7 +41,7 @@ For Linux/amd64, I use [act](https://github.com/nektos/act/releases) on a Linux ```shell git clone https://github.com/oracle/graalpython cd graalpython -VERSION=25.2.4 +VERSION=25.3.4.1 PYTHON_VERSION=3.13 BINDIR=. curl --proto '=https' --tlsv1.2 -sSf https://raw.githubusercontent.com/nektos/act/master/install.sh | bash echo "graalpy_url=https://github.com/oracle/graalpython/releases/download/graal-$VERSION/graalpy$PYTHON_VERSION-$VERSION-linux-amd64.tar.gz" > .input @@ -54,7 +54,7 @@ For Linux/aarch64, I use act on a mac, those are usually beefy ARM machines that ```shell git clone https://github.com/oracle/graalpython cd graalpython -VERSION=25.2.4 +VERSION=25.3.4.1 PYTHON_VERSION=3.13 brew install act echo "graalpy_url=https://github.com/oracle/graalpython/releases/download/graal-$VERSION/graalpy$PYTHON_VERSION-$VERSION-linux-aarch64.tar.gz" > .input @@ -65,7 +65,7 @@ act --env http_proxy=$http_proxy --env https_proxy=$https_proxy -W .github/workf For macOS/aarch64, you get no isolation from act, so I just run it directly. ```shell git clone https://github.com/oracle/graalpython -VERSION=25.2.4 +VERSION=25.3.4.1 PYTHON_VERSION=3.13 export GITHUB_RUN_ID=doesntMatterJustTriggerBrewInstallScripts python3 -m venv wheelbuilder-venv @@ -76,7 +76,7 @@ python3 graalpython/scripts/wheelbuilder/build_wheels.py https://github.com/orac For Windows/amd64, you get no isolation from act, so I just run it directly in Visual Studio powershell. ```shell git clone https://github.com/oracle/graalpython -$VERSION="25.2.4" +$VERSION="25.3.4.1" $PYTHON_VERSION="3.13" $env:GITHUB_RUN_ID="doesntMatterJustTriggerBrewInstallScripts" python3 -m venv wheelbuilder-venv