Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 7 additions & 7 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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.

Expand Down Expand Up @@ -63,20 +63,20 @@ Refer to our [embedding documentation](https://www.graalvm.org/latest/reference-
<dependency>
<groupId>org.graalvm.polyglot</groupId>
<artifactId>polyglot</artifactId>
<version>25.0.2</version>
<version>25.3.4.1</version>
</dependency>
<dependency>
<groupId>org.graalvm.polyglot</groupId>
<artifactId>python</artifactId>
<version>25.0.2</version>
<version>25.3.4.1</version>
<type>pom</type>
</dependency>
```

* 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")
```

</details>
Expand All @@ -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.**
Expand Down
4 changes: 2 additions & 2 deletions docs/site/01-python-developers.md
Original file line number Diff line number Diff line change
Expand Up @@ -107,10 +107,10 @@ pyenv shell graalpy-dev
<div class="languages__snippet">
{%- 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 -%}
</div>
<div class="example-logo-box example-logo-box--install-badge">
Expand Down
4 changes: 2 additions & 2 deletions docs/site/_config.yml
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
baseurl: ""
url: "https://graalpy.org"
github: "oracle/graalpython"
language_version: 25.0.3
python_version: 3.12
language_version: 25.3.4.1
python_version: 3.13
name: GraalPy
permalink: pretty

Expand Down
2 changes: 1 addition & 1 deletion docs/user/Embedding-Build-Tools.md
Original file line number Diff line number Diff line change
Expand Up @@ -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 {
Expand Down
18 changes: 9 additions & 9 deletions docs/user/Embedding-Getting-Started.md
Original file line number Diff line number Diff line change
Expand Up @@ -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:
Expand Down Expand Up @@ -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:
Expand Down Expand Up @@ -134,7 +134,7 @@ Add the Python embedding dependency and GraalPy Maven plugin configuration to yo
<dependency>
<groupId>org.graalvm.python</groupId>
<artifactId>python-embedding</artifactId>
<version>25.2.4</version>
<version>25.3.4.1</version>
</dependency>
</dependencies>

Expand All @@ -143,7 +143,7 @@ Add the Python embedding dependency and GraalPy Maven plugin configuration to yo
<plugin>
<groupId>org.graalvm.python</groupId>
<artifactId>graalpy-maven-plugin</artifactId>
<version>25.2.4</version>
<version>25.3.4.1</version>
<executions>
<execution>
<configuration>
Expand All @@ -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 {
Expand Down Expand Up @@ -213,11 +213,11 @@ BouncyCastle is optional for GraalPy embeddings. Add the following dependency on
<dependency>
<groupId>org.graalvm.python</groupId>
<artifactId>python-bouncycastle-support</artifactId>
<version>25.2.4</version>
<version>25.3.4.1</version>
</dependency>
```

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

Expand Down
2 changes: 1 addition & 1 deletion docs/user/Interoperability.md
Original file line number Diff line number Diff line change
Expand Up @@ -211,7 +211,7 @@ If you're using Maven with GraalPy, add the JavaScript dependency to your _pom.x
<dependency>
<groupId>org.graalvm.polyglot</groupId>
<artifactId>js</artifactId>
<version>25.2.4</version>
<version>25.3.4.1</version>
</dependency>
```

Expand Down
13 changes: 2 additions & 11 deletions docs/user/README.md
Original file line number Diff line number Diff line change
@@ -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:

Expand Down Expand Up @@ -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.
Expand Down
38 changes: 19 additions & 19 deletions docs/user/Standalone-Getting-Started.md
Original file line number Diff line number Diff line change
Expand Up @@ -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:
Expand All @@ -50,37 +50,37 @@ 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

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)
Expand All @@ -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
Expand All @@ -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
Expand All @@ -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
Expand Down
9 changes: 4 additions & 5 deletions docs/user/Version-Compatibility.md
Original file line number Diff line number Diff line change
Expand Up @@ -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 |
| GraalPy Version | Python Version |
| --------------- | --------------- |
| 25.0 - 25.2 | Python 3.12.8 |
| 25.3 | Python 3.13.14 |
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
9 changes: 1 addition & 8 deletions mx.graalpython/mx_graalpython.py
Original file line number Diff line number Diff line change
Expand Up @@ -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:
Expand Down
16 changes: 8 additions & 8 deletions scripts/wheelbuilder/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -41,8 +41,8 @@ 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
PYTHON_VERSION=3.12
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
podman system service -t 0 unix:///tmp/podman.sock &
Expand All @@ -54,8 +54,8 @@ 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
PYTHON_VERSION=3.12
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
podman machine init -m 16384 --now
Expand All @@ -65,8 +65,8 @@ 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
PYTHON_VERSION=3.12
VERSION=25.3.4.1
PYTHON_VERSION=3.13
export GITHUB_RUN_ID=doesntMatterJustTriggerBrewInstallScripts
python3 -m venv wheelbuilder-venv
. wheelbuilder-venv/bin/activate
Expand All @@ -76,8 +76,8 @@ 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"
$PYTHON_VERSION="3.12"
$VERSION="25.3.4.1"
$PYTHON_VERSION="3.13"
$env:GITHUB_RUN_ID="doesntMatterJustTriggerBrewInstallScripts"
python3 -m venv wheelbuilder-venv
wheelbuilder-venv/scripts/activate
Expand Down
Loading