This is an automated email from the ASF dual-hosted git repository.
Cole-Greer pushed a commit to branch 3.7-dev
in repository https://gitbox.apache.org/repos/asf/tinkerpop.git
The following commit(s) were added to refs/heads/3.7-dev by this push:
new 4350b722fc Add testing and docs for supported Python versions (#3421)
4350b722fc is described below
commit 4350b722fc2b830ecea5b2d123c07b36d6eca255
Author: Guian Gumpac <[email protected]>
AuthorDate: Mon May 11 10:28:08 2026 -0700
Add testing and docs for supported Python versions (#3421)
Run gremlin-python tests across all supported Python versions in parallel
Converts the single-version python job in build-test.yml into a fail-fast:
false matrix covering Python 3.9-3.13, and
parameterizes gremlin-python/docker-compose.yml (image:
python:${PYTHON_VERSION:-3.9}) so the matrix value actually reaches
theinterpreter inside Docker.
Updated docs to reflect these changes as well.
Assisted-by: Devin: Claude Opus 4.7
---
.github/workflows/build-test.yml | 14 ++++++++++----
CHANGELOG.asciidoc | 1 +
docs/src/reference/gremlin-variants.asciidoc | 12 ++++++------
gremlin-python/AGENTS.md | 3 ++-
gremlin-python/docker-compose.yml | 4 ++--
gremlin-python/src/main/python/pyproject.toml | 9 +++++++--
6 files changed, 28 insertions(+), 15 deletions(-)
diff --git a/.github/workflows/build-test.yml b/.github/workflows/build-test.yml
index 79b3030acc..5c2ad5355b 100644
--- a/.github/workflows/build-test.yml
+++ b/.github/workflows/build-test.yml
@@ -320,10 +320,16 @@ jobs:
mvn clean install -pl
-:gremlin-python,-gremlin-dotnet,-:gremlin-dotnet-source,-:gremlin-dotnet-tests
-q -DskipTests -Dci
mvn verify -pl :gremlin-javascript -Dnode.test.version=24
python:
- name: python
+ name: python-${{ matrix.python-version }}
timeout-minutes: 20
needs: cache-gremlin-server-docker-image
runs-on: ubuntu-latest
+ strategy:
+ fail-fast: false
+ matrix:
+ python-version: ['3.9', '3.10', '3.11', '3.12', '3.13']
+ env:
+ PYTHON_VERSION: ${{ matrix.python-version }}
steps:
- uses: actions/checkout@v6
- name: Set up JDK 11
@@ -331,10 +337,10 @@ jobs:
with:
java-version: '11'
distribution: 'temurin'
- - name: Set up Python 3.x
- uses: actions/setup-python@v5
+ - name: Set up Python ${{ matrix.python-version }}
+ uses: actions/setup-python@v6
with:
- python-version: '3.9'
+ python-version: ${{ matrix.python-version }}
- name: Build with Maven
run: |
touch gremlin-python/.glv
diff --git a/CHANGELOG.asciidoc b/CHANGELOG.asciidoc
index 7f94ed55c3..d25b5476c1 100644
--- a/CHANGELOG.asciidoc
+++ b/CHANGELOG.asciidoc
@@ -26,6 +26,7 @@
image::https://raw.githubusercontent.com/apache/tinkerpop/master/docs/static/ima
=== TinkerPop 3.7.7 (Release Date: NOT OFFICIALLY RELEASED YET)
* Fixed conjoin has incorrect null handling.
+* Expanded `gremlin-python` CI matrix to test against Python 3.9, 3.10, 3.11,
3.12, and 3.13.
[[release-3-7-6]]
=== TinkerPop 3.7.6 (Release Date: April 1, 2026)
diff --git a/docs/src/reference/gremlin-variants.asciidoc
b/docs/src/reference/gremlin-variants.asciidoc
index cbb7ab9369..f231e41b3a 100644
--- a/docs/src/reference/gremlin-variants.asciidoc
+++ b/docs/src/reference/gremlin-variants.asciidoc
@@ -2467,13 +2467,13 @@ The following table outlines recommended runtime
versions by the release in whic
[cols="1,1,1",options="header"]
|===
-|Version |Min Python |Key Dependencies
+|Version |Recommended Python |Key Dependencies
|3.4.0 |2.7 |tornado
-|3.5.0 |≥3.0 |aiohttp
-|3.6.0 |≥3.8 |aiohttp
-|3.6.8 |≥3.9 |aiohttp
-|3.7.0 |≥3.8 |aiohttp
-|3.7.3 |≥3.9 |aiohttp
+|3.5.0 |3.0 |aiohttp
+|3.6.0 |3.8 |aiohttp
+|3.6.8 |3.9 |aiohttp
+|3.7.0 |3.8-3.13 |aiohttp
+|3.7.3 |3.9-3.13 |aiohttp
|===
[[gremlin-python-connecting]]
diff --git a/gremlin-python/AGENTS.md b/gremlin-python/AGENTS.md
index f32c0c03a2..c86234a331 100644
--- a/gremlin-python/AGENTS.md
+++ b/gremlin-python/AGENTS.md
@@ -9,7 +9,8 @@ supplements the root `AGENTS.md` file.
To build and run tests for `gremlin-python`, ensure the following:
-* **Python Version**: Python 3.9 or higher must be installed.
+* **Python Version**: A supported Python version must be installed.
`gremlin-python` supports Python 3.9 through
+ 3.13.
* **Virtual Environment**: While a virtual environment is recommended for
local development, the preferred way to
run tests is via Maven and Docker, which handles environment isolation
automatically.
* **Docker**: Docker and Docker Compose must be installed and running.
diff --git a/gremlin-python/docker-compose.yml
b/gremlin-python/docker-compose.yml
index 2b81ba15f8..aef0b55465 100644
--- a/gremlin-python/docker-compose.yml
+++ b/gremlin-python/docker-compose.yml
@@ -46,7 +46,7 @@ services:
gremlin-python-integration-tests:
container_name: gremlin-python-integration-tests
- image: python:3.9
+ image: python:${PYTHON_VERSION:-3.9}
volumes:
- ${BUILD_DIR:-./src/main/python}:/python_app
-
../gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/test/features:/python_app/gremlin-test/features
@@ -95,7 +95,7 @@ services:
gremlin-python-package:
container_name: gremlin-python-package
- image: python:3.9
+ image: python:${PYTHON_VERSION:-3.9}
volumes:
- ${PACKAGE_DIR:-./src/main/python}:/python_package
working_dir: /python_package
diff --git a/gremlin-python/src/main/python/pyproject.toml
b/gremlin-python/src/main/python/pyproject.toml
index c0c653d3f9..0a6df673b1 100644
--- a/gremlin-python/src/main/python/pyproject.toml
+++ b/gremlin-python/src/main/python/pyproject.toml
@@ -26,7 +26,7 @@ description = "Gremlin-Python for Apache TinkerPop"
readme = {file = "README.rst", content-type = "text/x-rst"}
license = {text = "Apache 2"}
maintainers = [{name = "Apache TinkerPop", email =
"[email protected]"}]
-requires-python = ">=3.9"
+requires-python = ">=3.9,<3.14"
dependencies = [
"nest_asyncio",
"aiohttp>=3.8.0,<4.0.0",
@@ -38,7 +38,12 @@ classifiers = [
"Intended Audience :: Developers",
"License :: OSI Approved :: Apache Software License",
"Natural Language :: English",
- "Programming Language :: Python :: 3"
+ "Programming Language :: Python :: 3",
+ "Programming Language :: Python :: 3.9",
+ "Programming Language :: Python :: 3.10",
+ "Programming Language :: Python :: 3.11",
+ "Programming Language :: Python :: 3.12",
+ "Programming Language :: Python :: 3.13"
]
[project.urls]