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]

Reply via email to