This is an automated email from the ASF dual-hosted git repository.
Cole-Greer pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/tinkerpop.git
The following commit(s) were added to refs/heads/master by this push:
new 2542097fdb TinkerPop 4.0.0-beta.3 release
2542097fdb is described below
commit 2542097fdbe9bb0644177abe8dff5c2f33f440b2
Author: Cole Greer <[email protected]>
AuthorDate: Mon Jul 20 14:11:01 2026 -0700
TinkerPop 4.0.0-beta.3 release
---
.../scripts/extraction/tree-sitter.js | 2 +-
CHANGELOG.asciidoc | 19 ++++++++---------
bin/validate-distribution.sh | 2 +-
docs/src/upgrade/release-4.x.x.asciidoc | 2 +-
docs/tinkeradoc-extension/pom.xml | 2 +-
gql-gremlin/pom.xml | 2 +-
gremlin-annotations/pom.xml | 2 +-
gremlin-console/bin/gremlin.sh | 2 +-
gremlin-console/pom.xml | 2 +-
gremlin-core/pom.xml | 2 +-
.../org/apache/tinkerpop/gremlin/util/Gremlin.java | 2 +-
gremlin-dotnet/pom.xml | 2 +-
.../Gremlin.Net.Template.csproj | 2 +-
.../Gremlin.Net.Template.nuspec | 2 +-
gremlin-dotnet/src/Gremlin.Net/Driver/Tokens.cs | 2 +-
gremlin-dotnet/src/Gremlin.Net/Gremlin.Net.csproj | 2 +-
gremlin-dotnet/src/pom.xml | 2 +-
gremlin-dotnet/test/pom.xml | 2 +-
gremlin-driver/pom.xml | 2 +-
gremlin-go/driver/user_agent.go | 2 +-
gremlin-go/pom.xml | 2 +-
gremlin-groovy/pom.xml | 2 +-
gremlin-js/gremlin-javascript/lib/utils.ts | 2 +-
gremlin-js/gremlin-javascript/package.json | 2 +-
gremlin-js/gremlin-javascript/pom.xml | 2 +-
gremlin-js/gremlin-mcp/package.json | 6 +++---
gremlin-js/gremlin-mcp/pom.xml | 2 +-
gremlin-js/gremlin-mcp/src/constants.ts | 2 +-
gremlin-js/gremlint/package.json | 2 +-
gremlin-js/gremlint/pom.xml | 2 +-
gremlin-js/package-lock.json | 10 ++++-----
gremlin-js/pom.xml | 2 +-
gremlin-language/pom.xml | 2 +-
gremlin-python/pom.xml | 2 +-
.../main/python/gremlin_python/driver/useragent.py | 2 +-
gremlin-server/pom.xml | 2 +-
gremlin-shaded/pom.xml | 2 +-
gremlin-test/pom.xml | 2 +-
gremlin-tools/gremlin-benchmark/pom.xml | 2 +-
gremlin-tools/gremlin-coverage/pom.xml | 2 +-
gremlin-tools/gremlin-socket-server/pom.xml | 2 +-
gremlin-tools/pom.xml | 2 +-
gremlin-util/pom.xml | 2 +-
hadoop-gremlin/pom.xml | 2 +-
pom.xml | 24 ++++++++++++++++++++--
source-release.xml | 5 +++++
spark-gremlin/pom.xml | 2 +-
tinkergraph-gremlin/pom.xml | 2 +-
48 files changed, 87 insertions(+), 63 deletions(-)
diff --git a/.skills/tinker-review/scripts/extraction/tree-sitter.js
b/.skills/tinker-review/scripts/extraction/tree-sitter.js
index 8d425cdee9..ba4dc9bd48 100644
--- a/.skills/tinker-review/scripts/extraction/tree-sitter.js
+++ b/.skills/tinker-review/scripts/extraction/tree-sitter.js
@@ -274,7 +274,7 @@ function normHash(node) {
}
for (let i = 0; i < n.childCount; i++) walk(n.child(i));
})(node);
- return sha256(tokens.join("�"));
+ return sha256(tokens.join("\0"));
}
function extractFunctionsFromTree(tree, filePath, language) {
diff --git a/CHANGELOG.asciidoc b/CHANGELOG.asciidoc
index 3dbf8bf53c..23eafb89fa 100644
--- a/CHANGELOG.asciidoc
+++ b/CHANGELOG.asciidoc
@@ -22,8 +22,8 @@ under the License.
image::https://raw.githubusercontent.com/apache/tinkerpop/master/docs/static/images/gremlins-wildest-dreams.png[width=185]
-[[release-4-0-0]]
-=== TinkerPop 4.0.0 (Release Date: NOT OFFICIALLY RELEASED YET)
+[[release-4-0-0-beta-3]]
+=== TinkerPop 4.0.0-beta.3 (July 20, 2026)
* Fixed `gremlin-python` `GremlinLang` equality (`__eq__`) which compared a
traversal to itself, so traversals with different steps but equal parameters
were incorrectly considered equal.
* Removed the deprecated `gremlin-python` `DriverRemoteConnection.submitAsync`
method in favor of `submit_async`.
@@ -36,14 +36,13 @@
image::https://raw.githubusercontent.com/apache/tinkerpop/master/docs/static/ima
* Bumped Groovy to 4.0.32, Hadoop to 3.4.3, Spark to 4.1.2 (Scala 2.13), and
Netty to 4.2.7 to support Java 25.
* Bumped `Microsoft.Extensions.Logging.Abstractions` and
`Microsoft.Extensions.Logging.Console` to 10.0.9 for `gremlin-dotnet`.
* Bumped TypeScript to 6.0 across the JavaScript modules; `gremlint` now
compiles to ES2021 rather than ES5.
-* Standardized connection options across all GLVs (Java, Python, .NET, Go,
JavaScript) per the TinkerPop 4.x GLV proposal; see the upgrade docs for the
full per-driver table. *(breaking)*
-** Aligned option names across drivers: `maxConnections` (128),
`connectTimeoutMillis` (5000), `readTimeoutMillis` (off), `idleTimeoutMillis`
(180000), `keepAliveTimeMillis` (30000), `compression` (on/`deflate`),
`batchSize` (64), `bulkResults` (false), `maxResponseHeaderBytes`, `proxy`,
`ssl`, and `responseSerializer`. Timeouts use a millisecond-suffixed canonical
name with an idiomatic duration companion (Java `Duration`, Go `time.Duration`,
.NET `TimeSpan`, Python seconds); JavaScript [...]
-** Java: renamed
`maxConnectionPoolSize`/`connectionSetupTimeoutMillis`/`idleConnectionTimeoutMillis`/`resultIterationBatchSize`/`serializer`
and `RequestOptions.addG`->`traversalSource`; removed
`maxResponseContentLength` (responses now stream); added `readTimeoutMillis`,
`keepAliveTimeMillis`, `maxResponseHeaderBytes`, `proxy`, `url(String)`,
`ssl(SslContext)`. *(breaking)*
-** Python: renamed `pool_size`->`max_connections` (8->128) and
`ssl_options`->`ssl`; removed `headers` (use interceptors) and
`max_content_length`; added the timeout, `compression`, `batch_size`, `proxy`,
and `trust_env` options; requires `aiohttp>=3.11`. *(breaking)*
-** .NET: renamed
`MaxConnectionsPerServer`/`ConnectionTimeout`/`IdleConnectionTimeout`/`KeepAliveInterval`/`EnableCompression`
and `Auth.BasicAuth`/`Auth.SigV4Auth`->`Auth.Basic`/`Auth.Sigv4`;
`KeepAliveTime` now uses a real TCP keep-alive socket option; added
`ReadTimeout`, `MaxResponseHeaderBytes`, `Proxy`, `Ssl`, `BulkResults`.
*(breaking)*
-** Go: renamed
`MaximumConcurrentConnections`/`IdleConnectionTimeout`/`KeepAliveInterval`/`ConnectionTimeout`/`TlsConfig`/`RequestInterceptors`/`EnableCompression`;
moved auth helpers into an `auth` sub-package
(`auth.Basic`/`auth.SigV4`/`auth.SigV4WithCredentials`); added `ReadTimeout`,
`MaxResponseHeaderBytes`, `Proxy`, `BatchSize`, `BulkResults`. *(breaking)*
-** JavaScript: adopted `undici` for the default dispatcher; renamed
`reader`->`responseSerializer`; added `readTimeoutMillis`,
`keepAliveTimeMillis`, `maxResponseHeaderBytes`, `proxy`, `compression`,
`batchSize`, `bulkResults`, `logger`; removed `headers` (use interceptors) and
`ca`/`cert`/`pfx`/`rejectUnauthorized`/`agent` (TLS via the Node/undici
runtime); undici is swapped out in browser bundles. *(breaking)*
-** All drivers: compression now defaults on; `connectTimeout` lowered to 5s
and applied to transport establishment; `readTimeout` is a streaming-safe
idle-read timeout (off by default); `idleTimeout` reaps only pooled connections.
+* Standardized connection options across all GLVs (Java, Python, .NET, Go,
JavaScript), aligning option names and defaults. *(breaking)*
+* Changed connection defaults across all GLV drivers: compression now defaults
on, `connectTimeout` is 5s and applied to transport establishment.
+* Standardized `gremlin-driver` (Java) connection options, aligning the
pool/timeout/serializer names, removing `maxResponseContentLength`, and adding
`readTimeoutMillis`, `keepAliveTimeMillis`, `maxResponseHeaderBytes`, `proxy`,
and `ssl(SslContext)`. *(breaking)*
+* Standardized `gremlin-python` connection options, renaming
`pool_size`->`max_connections` and `ssl_options`->`ssl`, removing `headers` and
`max_content_length`, and adding `compression`, `batch_size`, `proxy`,
`trust_env`, and timeout options. *(breaking)*
+* Standardized `gremlin-dotnet` connection options, aligning the connection
and `Auth.*` names, switching `KeepAliveTime` to a real TCP keep-alive socket
option, and adding `ReadTimeout`, `MaxResponseHeaderBytes`, `Proxy`, `Ssl`, and
`BulkResults`. *(breaking)*
+* Standardized `gremlin-go` connection options, aligning the connection and
TLS names, moving auth helpers into an `auth` sub-package, and adding
`ReadTimeout`, `MaxResponseHeaderBytes`, `Proxy`, `BatchSize`, and
`BulkResults`. *(breaking)*
+* Standardized `gremlin-javascript` connection options, adopting `undici` as
the default dispatcher, renaming `reader`->`responseSerializer`, removing
`headers` and the Node TLS options
(`ca`/`cert`/`pfx`/`rejectUnauthorized`/`agent`), and adding
`readTimeoutMillis`, `keepAliveTimeMillis`, `proxy`, `compression`,
`batchSize`, `bulkResults`, and `logger`. *(breaking)*
* Changed all GLV drivers to always serialize requests as JSON
(`application/json`). Request serialization is no longer configurable and the
serializer options (now `responseSerializer`) control only response
deserialization.
* Fixed remote traversals in Java, Python, .NET, and JavaScript to avoid
sending the traversal source alias as a GremlinLang parameter, and removed the
unused GremlinLang traversal-source helpers.
* Fixed `gremlin-javascript` `Client.submit()` so that an explicit
`bulkResults: false` request option is forwarded to the server instead of being
silently dropped.
diff --git a/bin/validate-distribution.sh b/bin/validate-distribution.sh
index e4afe5ff6a..77571c3001 100755
--- a/bin/validate-distribution.sh
+++ b/bin/validate-distribution.sh
@@ -141,7 +141,7 @@ cd ${DIR_NAME}
echo -n "* checking source files ... "
find . -type f | xargs -n1 -I {} file {} --mime | grep 'charset=binary' | cut
-f1 -d: |
grep -Pv
'^\./docs/(static|(site/home))/(img|images|fonts)/((icons|logos|policy|resources|providers|community|use-cases|gremlin|download|social)/)?[^/]*\.(png|jpg|ico|pdf|eot|otf|woff|woff2|ttf)$'
|
- grep -Pv '^\./docs/gremlint/(src|public)/[^/]*\.(png|jpg|ico)$' |
+ grep -Pv '^\./docs/(gremlint|gremlator)/(src|public)/[^/]*\.(png|jpg|ico)$' |
grep -Pv '^\./docs/original/(ai/)?[^/]*\.(png|jpg|ico|ai)$' |
grep -Pv '^./gremlin-dotnet/src/images/[^/]*\.(png|ico)$' |
grep -Pv '^./gremlin-dotnet/.*\.snk$' |
diff --git a/docs/src/upgrade/release-4.x.x.asciidoc
b/docs/src/upgrade/release-4.x.x.asciidoc
index 5e2656ae74..2470a6cb3e 100644
--- a/docs/src/upgrade/release-4.x.x.asciidoc
+++ b/docs/src/upgrade/release-4.x.x.asciidoc
@@ -25,7 +25,7 @@ image::gremlins-wildest-dreams.png[width=185]
== TinkerPop 4.0.0-beta.3
-*Release Date: NOT OFFICIALLY RELEASED YET*
+*Release Date: July 20, 2026*
Please see the
link:https://github.com/apache/tinkerpop/blob/4.0.0-beta.3/CHANGELOG.asciidoc#release-4-0-0-beta-3[changelog]
for a
complete list of all the modifications that are part of this release.
diff --git a/docs/tinkeradoc-extension/pom.xml
b/docs/tinkeradoc-extension/pom.xml
index d095d8b994..3d0c61ea98 100644
--- a/docs/tinkeradoc-extension/pom.xml
+++ b/docs/tinkeradoc-extension/pom.xml
@@ -21,7 +21,7 @@ limitations under the License.
<parent>
<groupId>org.apache.tinkerpop</groupId>
<artifactId>tinkerpop</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.0-beta.3</version>
<relativePath>../../pom.xml</relativePath>
</parent>
<artifactId>tinkeradoc-extension</artifactId>
diff --git a/gql-gremlin/pom.xml b/gql-gremlin/pom.xml
index e186256bd4..e69fb93d08 100644
--- a/gql-gremlin/pom.xml
+++ b/gql-gremlin/pom.xml
@@ -24,7 +24,7 @@ under the License.
<parent>
<groupId>org.apache.tinkerpop</groupId>
<artifactId>tinkerpop</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.0-beta.3</version>
</parent>
<artifactId>gql-gremlin</artifactId>
<name>Apache TinkerPop :: GQL Gremlin</name>
diff --git a/gremlin-annotations/pom.xml b/gremlin-annotations/pom.xml
index 15214dbd24..fb7ad732eb 100644
--- a/gremlin-annotations/pom.xml
+++ b/gremlin-annotations/pom.xml
@@ -21,7 +21,7 @@ limitations under the License.
<parent>
<artifactId>tinkerpop</artifactId>
<groupId>org.apache.tinkerpop</groupId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.0-beta.3</version>
</parent>
<artifactId>gremlin-annotations</artifactId>
diff --git a/gremlin-console/bin/gremlin.sh b/gremlin-console/bin/gremlin.sh
index b8cb4ab153..36b8ec8140 120000
--- a/gremlin-console/bin/gremlin.sh
+++ b/gremlin-console/bin/gremlin.sh
@@ -1 +1 @@
-../target/apache-tinkerpop-gremlin-console-4.0.0-SNAPSHOT-standalone/bin/gremlin.sh
\ No newline at end of file
+../target/apache-tinkerpop-gremlin-console-4.0.0-beta.3-standalone/bin/gremlin.sh
\ No newline at end of file
diff --git a/gremlin-console/pom.xml b/gremlin-console/pom.xml
index 0c96d16aa7..5e4c7e6c4a 100644
--- a/gremlin-console/pom.xml
+++ b/gremlin-console/pom.xml
@@ -21,7 +21,7 @@ limitations under the License.
<parent>
<artifactId>tinkerpop</artifactId>
<groupId>org.apache.tinkerpop</groupId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.0-beta.3</version>
</parent>
<artifactId>gremlin-console</artifactId>
<name>Apache TinkerPop :: Gremlin Console</name>
diff --git a/gremlin-core/pom.xml b/gremlin-core/pom.xml
index 7d547d0e5f..68be983f50 100644
--- a/gremlin-core/pom.xml
+++ b/gremlin-core/pom.xml
@@ -20,7 +20,7 @@ limitations under the License.
<parent>
<groupId>org.apache.tinkerpop</groupId>
<artifactId>tinkerpop</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.0-beta.3</version>
</parent>
<artifactId>gremlin-core</artifactId>
<name>Apache TinkerPop :: Gremlin Core</name>
diff --git
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/util/Gremlin.java
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/util/Gremlin.java
index a934468dc1..a6a6ec4666 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/util/Gremlin.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/util/Gremlin.java
@@ -24,7 +24,7 @@ import java.io.IOException;
* @author Stephen Mallette (http://stephen.genoprime.com)
*/
public final class Gremlin {
- private final static String gremlinVersion = "4.0.0-SNAPSHOT"; // DO NOT
MODIFY - Configured automatically by Maven Replacer Plugin
+ private final static String gremlinVersion = "4.0.0-beta.3"; // DO NOT
MODIFY - Configured automatically by Maven Replacer Plugin
private Gremlin() {
}
diff --git a/gremlin-dotnet/pom.xml b/gremlin-dotnet/pom.xml
index e00f0f45cb..5046361ba6 100644
--- a/gremlin-dotnet/pom.xml
+++ b/gremlin-dotnet/pom.xml
@@ -21,7 +21,7 @@ limitations under the License.
<parent>
<groupId>org.apache.tinkerpop</groupId>
<artifactId>tinkerpop</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.0-beta.3</version>
</parent>
<artifactId>gremlin-dotnet</artifactId>
<name>Apache TinkerPop :: Gremlin.Net</name>
diff --git
a/gremlin-dotnet/src/Gremlin.Net.Template/Gremlin.Net.Template.csproj
b/gremlin-dotnet/src/Gremlin.Net.Template/Gremlin.Net.Template.csproj
index ed6da63fa3..30fd969e1f 100644
--- a/gremlin-dotnet/src/Gremlin.Net.Template/Gremlin.Net.Template.csproj
+++ b/gremlin-dotnet/src/Gremlin.Net.Template/Gremlin.Net.Template.csproj
@@ -29,7 +29,7 @@ limitations under the License.
<ProjectReference Include="../Gremlin.Net/Gremlin.Net.csproj" />
<!-- do not edit the version directly - maven updates it automatically -->
- <PackageReference Include="Gremlin.Net" Version="4.0.0-SNAPSHOT" />
+ <PackageReference Include="Gremlin.Net" Version="4.0.0-beta.3" />
</ItemGroup>
</Project>
diff --git
a/gremlin-dotnet/src/Gremlin.Net.Template/Gremlin.Net.Template.nuspec
b/gremlin-dotnet/src/Gremlin.Net.Template/Gremlin.Net.Template.nuspec
index f4091066e2..a5753f66b3 100644
--- a/gremlin-dotnet/src/Gremlin.Net.Template/Gremlin.Net.Template.nuspec
+++ b/gremlin-dotnet/src/Gremlin.Net.Template/Gremlin.Net.Template.nuspec
@@ -5,7 +5,7 @@
<title>Gremlin.Net Template</title>
<!-- do not edit the version directly - maven updates it automatically
-->
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.0-beta.3</version>
<description>Gremlin.Net template to create a console application with
dotnet new.</description>
<authors>Apache TinkerPop</authors>
diff --git a/gremlin-dotnet/src/Gremlin.Net/Driver/Tokens.cs
b/gremlin-dotnet/src/Gremlin.Net/Driver/Tokens.cs
index 2f1b330346..9f5e095f22 100644
--- a/gremlin-dotnet/src/Gremlin.Net/Driver/Tokens.cs
+++ b/gremlin-dotnet/src/Gremlin.Net/Driver/Tokens.cs
@@ -33,7 +33,7 @@ namespace Gremlin.Net.Driver
/// <summary>
/// Current TinkerPop version.
/// </summary>
- public static string GremlinVersion = "4.0.0-SNAPSHOT"; // DO NOT
MODIFY - Configured automatically by Maven Replacer Plugin
+ public static string GremlinVersion = "4.0.0-beta.3"; // DO NOT MODIFY
- Configured automatically by Maven Replacer Plugin
/// <summary>
/// The key for the unique identifier of the request.
diff --git a/gremlin-dotnet/src/Gremlin.Net/Gremlin.Net.csproj
b/gremlin-dotnet/src/Gremlin.Net/Gremlin.Net.csproj
index 300f8c4639..09f49515c4 100644
--- a/gremlin-dotnet/src/Gremlin.Net/Gremlin.Net.csproj
+++ b/gremlin-dotnet/src/Gremlin.Net/Gremlin.Net.csproj
@@ -27,7 +27,7 @@ limitations under the License.
<PropertyGroup Label="Package">
<!-- do not edit the version directly - maven updates it automatically -->
- <Version>4.0.0-SNAPSHOT</Version>
+ <Version>4.0.0-beta.3</Version>
<Title>Gremlin.Net</Title>
<Authors>Apache TinkerPop</Authors>
<Description>Gremlin.Net for Apache TinkerPop™ is a language variant and
driver for .NET.
diff --git a/gremlin-dotnet/src/pom.xml b/gremlin-dotnet/src/pom.xml
index 50a3b2a521..1885c507a5 100644
--- a/gremlin-dotnet/src/pom.xml
+++ b/gremlin-dotnet/src/pom.xml
@@ -21,7 +21,7 @@ limitations under the License.
<parent>
<groupId>org.apache.tinkerpop</groupId>
<artifactId>gremlin-dotnet</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.0-beta.3</version>
</parent>
<artifactId>gremlin-dotnet-source</artifactId>
<name>Apache TinkerPop :: Gremlin.Net - Source</name>
diff --git a/gremlin-dotnet/test/pom.xml b/gremlin-dotnet/test/pom.xml
index 82b1037f32..b3a59bca0d 100644
--- a/gremlin-dotnet/test/pom.xml
+++ b/gremlin-dotnet/test/pom.xml
@@ -21,7 +21,7 @@ limitations under the License.
<parent>
<groupId>org.apache.tinkerpop</groupId>
<artifactId>gremlin-dotnet</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.0-beta.3</version>
</parent>
<artifactId>gremlin-dotnet-tests</artifactId>
<name>Apache TinkerPop :: Gremlin.Net - Tests</name>
diff --git a/gremlin-driver/pom.xml b/gremlin-driver/pom.xml
index 926c61c40e..9ac980c3e1 100644
--- a/gremlin-driver/pom.xml
+++ b/gremlin-driver/pom.xml
@@ -21,7 +21,7 @@ limitations under the License.
<parent>
<groupId>org.apache.tinkerpop</groupId>
<artifactId>tinkerpop</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.0-beta.3</version>
</parent>
<artifactId>gremlin-driver</artifactId>
<name>Apache TinkerPop :: Gremlin Driver</name>
diff --git a/gremlin-go/driver/user_agent.go b/gremlin-go/driver/user_agent.go
index 7fec2b0d2c..698404e168 100644
--- a/gremlin-go/driver/user_agent.go
+++ b/gremlin-go/driver/user_agent.go
@@ -37,7 +37,7 @@ var userAgent string
const userAgentHeader = "User-Agent"
-const gremlinVersion = "4.0.0-SNAPSHOT" // DO NOT MODIFY - Configured
automatically by Maven Replacer Plugin
+const gremlinVersion = "4.0.0-beta.3" // DO NOT MODIFY - Configured
automatically by Maven Replacer Plugin
func init() {
applicationName := "NotAvailable"
diff --git a/gremlin-go/pom.xml b/gremlin-go/pom.xml
index 355687582d..687bbecc40 100644
--- a/gremlin-go/pom.xml
+++ b/gremlin-go/pom.xml
@@ -21,7 +21,7 @@ limitations under the License.
<parent>
<groupId>org.apache.tinkerpop</groupId>
<artifactId>tinkerpop</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.0-beta.3</version>
</parent>
<artifactId>gremlin-go</artifactId>
<name>Apache TinkerPop :: Gremlin Go</name>
diff --git a/gremlin-groovy/pom.xml b/gremlin-groovy/pom.xml
index aaafa65750..90859c1bc5 100644
--- a/gremlin-groovy/pom.xml
+++ b/gremlin-groovy/pom.xml
@@ -21,7 +21,7 @@ limitations under the License.
<parent>
<groupId>org.apache.tinkerpop</groupId>
<artifactId>tinkerpop</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.0-beta.3</version>
</parent>
<artifactId>gremlin-groovy</artifactId>
<name>Apache TinkerPop :: Gremlin Groovy</name>
diff --git a/gremlin-js/gremlin-javascript/lib/utils.ts
b/gremlin-js/gremlin-javascript/lib/utils.ts
index be81755872..47fa84a762 100644
--- a/gremlin-js/gremlin-javascript/lib/utils.ts
+++ b/gremlin-js/gremlin-javascript/lib/utils.ts
@@ -22,7 +22,7 @@
* @author Jorge Bay Gondra
*/
-const gremlinVersion = '4.0.0-SNAPSHOT'; // DO NOT MODIFY - Configured
automatically by Maven Replacer Plugin
+const gremlinVersion = '4.0.0-beta.3'; // DO NOT MODIFY - Configured
automatically by Maven Replacer Plugin
const INT64_MIN = -9223372036854775808n;
const INT64_MAX = 9223372036854775807n;
diff --git a/gremlin-js/gremlin-javascript/package.json
b/gremlin-js/gremlin-javascript/package.json
index 9cf1e83a5e..c1d43a8245 100644
--- a/gremlin-js/gremlin-javascript/package.json
+++ b/gremlin-js/gremlin-javascript/package.json
@@ -1,6 +1,6 @@
{
"name": "gremlin",
- "version": "4.0.0-alpha1",
+ "version": "4.0.0-beta.3",
"description": "JavaScript Gremlin Language Variant",
"author": {
"name": "Apache TinkerPop team"
diff --git a/gremlin-js/gremlin-javascript/pom.xml
b/gremlin-js/gremlin-javascript/pom.xml
index cf8ba36f33..017b3595d7 100644
--- a/gremlin-js/gremlin-javascript/pom.xml
+++ b/gremlin-js/gremlin-javascript/pom.xml
@@ -21,7 +21,7 @@ limitations under the License.
<parent>
<groupId>org.apache.tinkerpop</groupId>
<artifactId>gremlin-js</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.0-beta.3</version>
<relativePath>../pom.xml</relativePath>
</parent>
<artifactId>gremlin-javascript</artifactId>
diff --git a/gremlin-js/gremlin-mcp/package.json
b/gremlin-js/gremlin-mcp/package.json
index f6de399f1c..a44d7e41e2 100644
--- a/gremlin-js/gremlin-mcp/package.json
+++ b/gremlin-js/gremlin-mcp/package.json
@@ -1,6 +1,6 @@
{
"name": "gremlin-mcp",
- "version": "4.0.0-alpha1",
+ "version": "4.0.0-beta.3",
"description": "The official Apache TinkerPop MCP server for Gremlin that
allows for fetching status, schema, and querying using Gremlin for any
TinkerPop-compatible graph database (TypeScript implementation).",
"type": "module",
"main": "dist/server.js",
@@ -43,12 +43,12 @@
},
"license": "Apache-2.0",
"dependencies": {
- "gremlint": "4.0.0-alpha1",
+ "gremlint": "4.0.0-beta.3",
"@effect/platform": "^0.90.6",
"@effect/platform-node": "^0.96.0",
"@modelcontextprotocol/sdk": "^1.17.4",
"effect": "^3.17.9",
- "gremlin": "4.0.0-alpha1",
+ "gremlin": "4.0.0-beta.3",
"winston": "^3.17.0",
"zod": "^3.25.76"
},
diff --git a/gremlin-js/gremlin-mcp/pom.xml b/gremlin-js/gremlin-mcp/pom.xml
index f11f51782e..8a2ab9d058 100644
--- a/gremlin-js/gremlin-mcp/pom.xml
+++ b/gremlin-js/gremlin-mcp/pom.xml
@@ -22,7 +22,7 @@ limitations under the License.
<parent>
<groupId>org.apache.tinkerpop</groupId>
<artifactId>gremlin-js</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.0-beta.3</version>
<relativePath>../pom.xml</relativePath>
</parent>
diff --git a/gremlin-js/gremlin-mcp/src/constants.ts
b/gremlin-js/gremlin-mcp/src/constants.ts
index ecb1282b69..79f63af2d3 100644
--- a/gremlin-js/gremlin-mcp/src/constants.ts
+++ b/gremlin-js/gremlin-mcp/src/constants.ts
@@ -24,7 +24,7 @@
* including server metadata, MCP protocol identifiers, and configuration
defaults.
*/
-export const GREMLIN_VERSION = '4.0.0-SNAPSHOT'; // DO NOT MODIFY - Configured
automatically by Maven Replacer Plugin
+export const GREMLIN_VERSION = '4.0.0-beta.3'; // DO NOT MODIFY - Configured
automatically by Maven Replacer Plugin
// Server Information
export const SERVER_INFO = {
diff --git a/gremlin-js/gremlint/package.json b/gremlin-js/gremlint/package.json
index b4f7f732a3..ebe3c7d34b 100644
--- a/gremlin-js/gremlint/package.json
+++ b/gremlin-js/gremlint/package.json
@@ -1,6 +1,6 @@
{
"name": "gremlint",
- "version": "4.0.0-alpha1",
+ "version": "4.0.0-beta.3",
"description": "Linter/code formatter for Gremlin",
"main": "lib/index.js",
"types": "lib/index.d.ts",
diff --git a/gremlin-js/gremlint/pom.xml b/gremlin-js/gremlint/pom.xml
index 7c302382ae..b128b4c0a6 100644
--- a/gremlin-js/gremlint/pom.xml
+++ b/gremlin-js/gremlint/pom.xml
@@ -21,7 +21,7 @@ limitations under the License.
<parent>
<groupId>org.apache.tinkerpop</groupId>
<artifactId>gremlin-js</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.0-beta.3</version>
<relativePath>../pom.xml</relativePath>
</parent>
<artifactId>gremlint</artifactId>
diff --git a/gremlin-js/package-lock.json b/gremlin-js/package-lock.json
index 71c9e4cc41..87d5e74b89 100644
--- a/gremlin-js/package-lock.json
+++ b/gremlin-js/package-lock.json
@@ -13,7 +13,7 @@
},
"gremlin-javascript": {
"name": "gremlin",
- "version": "4.0.0-alpha1",
+ "version": "4.0.0-beta.3",
"license": "Apache-2.0",
"dependencies": {
"antlr4ng": "3.0.16",
@@ -82,7 +82,7 @@
}
},
"gremlin-mcp": {
- "version": "4.0.0-alpha1",
+ "version": "4.0.0-beta.3",
"hasInstallScript": true,
"license": "Apache-2.0",
"dependencies": {
@@ -90,8 +90,8 @@
"@effect/platform-node": "^0.96.0",
"@modelcontextprotocol/sdk": "^1.17.4",
"effect": "^3.17.9",
- "gremlin": "4.0.0-alpha1",
- "gremlint": "4.0.0-alpha1",
+ "gremlin": "4.0.0-beta.3",
+ "gremlint": "4.0.0-beta.3",
"winston": "^3.17.0",
"zod": "^3.25.76"
},
@@ -140,7 +140,7 @@
}
},
"gremlint": {
- "version": "4.0.0-alpha1",
+ "version": "4.0.0-beta.3",
"license": "Apache-2.0",
"devDependencies": {
"@types/jest": "^30.0.0",
diff --git a/gremlin-js/pom.xml b/gremlin-js/pom.xml
index 143920a026..25c130e50b 100644
--- a/gremlin-js/pom.xml
+++ b/gremlin-js/pom.xml
@@ -22,7 +22,7 @@ limitations under the License.
<parent>
<groupId>org.apache.tinkerpop</groupId>
<artifactId>tinkerpop</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.0-beta.3</version>
<relativePath>../pom.xml</relativePath>
</parent>
diff --git a/gremlin-language/pom.xml b/gremlin-language/pom.xml
index 0d0a1de8a4..12473ff96c 100644
--- a/gremlin-language/pom.xml
+++ b/gremlin-language/pom.xml
@@ -21,7 +21,7 @@ limitations under the License.
<parent>
<groupId>org.apache.tinkerpop</groupId>
<artifactId>tinkerpop</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.0-beta.3</version>
</parent>
<artifactId>gremlin-language</artifactId>
diff --git a/gremlin-python/pom.xml b/gremlin-python/pom.xml
index 63680b3dd4..d004a27068 100644
--- a/gremlin-python/pom.xml
+++ b/gremlin-python/pom.xml
@@ -21,7 +21,7 @@ limitations under the License.
<parent>
<groupId>org.apache.tinkerpop</groupId>
<artifactId>tinkerpop</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.0-beta.3</version>
</parent>
<artifactId>gremlin-python</artifactId>
<name>Apache TinkerPop :: Gremlin Python</name>
diff --git a/gremlin-python/src/main/python/gremlin_python/driver/useragent.py
b/gremlin-python/src/main/python/gremlin_python/driver/useragent.py
index f9065d74f9..cc5a9d3b35 100644
--- a/gremlin-python/src/main/python/gremlin_python/driver/useragent.py
+++ b/gremlin-python/src/main/python/gremlin_python/driver/useragent.py
@@ -18,7 +18,7 @@
#
import platform
-gremlin_version = "4.0.0-SNAPSHOT" # DO NOT MODIFY - Configured automatically
by Maven Replacer Plugin
+gremlin_version = "4.0.0-beta.3" # DO NOT MODIFY - Configured automatically
by Maven Replacer Plugin
def _generate_user_agent():
application_name = "NotAvailable"
diff --git a/gremlin-server/pom.xml b/gremlin-server/pom.xml
index 016365f6b1..3834c00ab0 100644
--- a/gremlin-server/pom.xml
+++ b/gremlin-server/pom.xml
@@ -21,7 +21,7 @@ limitations under the License.
<parent>
<groupId>org.apache.tinkerpop</groupId>
<artifactId>tinkerpop</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.0-beta.3</version>
</parent>
<artifactId>gremlin-server</artifactId>
<name>Apache TinkerPop :: Gremlin Server</name>
diff --git a/gremlin-shaded/pom.xml b/gremlin-shaded/pom.xml
index 0438ad6d50..265bfdb691 100644
--- a/gremlin-shaded/pom.xml
+++ b/gremlin-shaded/pom.xml
@@ -20,7 +20,7 @@ limitations under the License.
<parent>
<groupId>org.apache.tinkerpop</groupId>
<artifactId>tinkerpop</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.0-beta.3</version>
</parent>
<artifactId>gremlin-shaded</artifactId>
<name>Apache TinkerPop :: Gremlin Shaded</name>
diff --git a/gremlin-test/pom.xml b/gremlin-test/pom.xml
index 1c5c7985a6..88b6669f6c 100644
--- a/gremlin-test/pom.xml
+++ b/gremlin-test/pom.xml
@@ -21,7 +21,7 @@ limitations under the License.
<parent>
<groupId>org.apache.tinkerpop</groupId>
<artifactId>tinkerpop</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.0-beta.3</version>
</parent>
<artifactId>gremlin-test</artifactId>
<name>Apache TinkerPop :: Gremlin Test</name>
diff --git a/gremlin-tools/gremlin-benchmark/pom.xml
b/gremlin-tools/gremlin-benchmark/pom.xml
index 7a25d430f1..23a8d602e7 100644
--- a/gremlin-tools/gremlin-benchmark/pom.xml
+++ b/gremlin-tools/gremlin-benchmark/pom.xml
@@ -21,7 +21,7 @@ limitations under the License.
<parent>
<artifactId>gremlin-tools</artifactId>
<groupId>org.apache.tinkerpop</groupId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.0-beta.3</version>
</parent>
<artifactId>gremlin-benchmark</artifactId>
diff --git a/gremlin-tools/gremlin-coverage/pom.xml
b/gremlin-tools/gremlin-coverage/pom.xml
index ef6b9ac682..806191f56c 100644
--- a/gremlin-tools/gremlin-coverage/pom.xml
+++ b/gremlin-tools/gremlin-coverage/pom.xml
@@ -21,7 +21,7 @@ limitations under the License.
<parent>
<artifactId>gremlin-tools</artifactId>
<groupId>org.apache.tinkerpop</groupId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.0-beta.3</version>
</parent>
<artifactId>gremlin-coverage</artifactId>
<name>Apache TinkerPop :: Gremlin Coverage</name>
diff --git a/gremlin-tools/gremlin-socket-server/pom.xml
b/gremlin-tools/gremlin-socket-server/pom.xml
index 42bb46df1f..e9b8408554 100644
--- a/gremlin-tools/gremlin-socket-server/pom.xml
+++ b/gremlin-tools/gremlin-socket-server/pom.xml
@@ -5,7 +5,7 @@
<parent>
<artifactId>gremlin-tools</artifactId>
<groupId>org.apache.tinkerpop</groupId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.0-beta.3</version>
</parent>
<modelVersion>4.0.0</modelVersion>
diff --git a/gremlin-tools/pom.xml b/gremlin-tools/pom.xml
index 569fe97e63..b7d313f813 100644
--- a/gremlin-tools/pom.xml
+++ b/gremlin-tools/pom.xml
@@ -21,7 +21,7 @@ limitations under the License.
<parent>
<artifactId>tinkerpop</artifactId>
<groupId>org.apache.tinkerpop</groupId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.0-beta.3</version>
</parent>
<artifactId>gremlin-tools</artifactId>
diff --git a/gremlin-util/pom.xml b/gremlin-util/pom.xml
index 12141fb216..7325094442 100644
--- a/gremlin-util/pom.xml
+++ b/gremlin-util/pom.xml
@@ -5,7 +5,7 @@
<parent>
<artifactId>tinkerpop</artifactId>
<groupId>org.apache.tinkerpop</groupId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.0-beta.3</version>
</parent>
<modelVersion>4.0.0</modelVersion>
diff --git a/hadoop-gremlin/pom.xml b/hadoop-gremlin/pom.xml
index 83c1da8e87..09dd9e7049 100644
--- a/hadoop-gremlin/pom.xml
+++ b/hadoop-gremlin/pom.xml
@@ -21,7 +21,7 @@ limitations under the License.
<parent>
<groupId>org.apache.tinkerpop</groupId>
<artifactId>tinkerpop</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.0-beta.3</version>
</parent>
<artifactId>hadoop-gremlin</artifactId>
<name>Apache TinkerPop :: Hadoop Gremlin</name>
diff --git a/pom.xml b/pom.xml
index 2569cf6abc..d64d4e906e 100644
--- a/pom.xml
+++ b/pom.xml
@@ -25,7 +25,7 @@ limitations under the License.
</parent>
<groupId>org.apache.tinkerpop</groupId>
<artifactId>tinkerpop</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.0-beta.3</version>
<packaging>pom</packaging>
<name>Apache TinkerPop</name>
<description>A Graph Computing Framework</description>
@@ -1531,7 +1531,7 @@ limitations under the License.
<overview>${basedir}/docs/javadoc/overview.html</overview>
<quiet>true</quiet>
<sourcepath>
-
gremlin-annotations/src/main/java:gremlin-language/target/generated-sources/antlr4:gremlin-core/src/main/java:gremlin-driver/src/main/java:gremlin-groovy/src/main/java:gremlin-groovy/target/generated-sources/annotations:gremlin-groovy/target/generated-sources/groovy-stubs/main:gremlin-server/src/main/java:gremlin-test/src/main/java:tinkergraph-gremlin/src/main/java:gremlin-util/src/main/java
+
gremlin-annotations/src/main/java:gremlin-language/target/generated-sources/antlr4:gremlin-core/src/main/java:gql-gremlin/src/main/java:gql-gremlin/target/generated-sources/antlr4:gremlin-driver/src/main/java:gremlin-groovy/src/main/java:gremlin-groovy/target/generated-sources/annotations:gremlin-groovy/target/generated-sources/groovy-stubs/main:gremlin-server/src/main/java:gremlin-test/src/main/java:tinkergraph-gremlin/src/main/java:gremlin-util/s
[...]
</sourcepath>
<dependencySourceIncludes>
<dependencySourceInclude>org.apache.tinkerpop:*</dependencySourceInclude>
@@ -1552,6 +1552,11 @@ limitations under the License.
<artifactId>netty-codec</artifactId>
<version>${netty.version}</version>
</additionalDependency>
+ <additionalDependency>
+ <groupId>io.netty</groupId>
+
<artifactId>netty-codec-base</artifactId>
+ <version>${netty.version}</version>
+ </additionalDependency>
<additionalDependency>
<groupId>io.netty</groupId>
<artifactId>netty-codec-http</artifactId>
@@ -1572,6 +1577,11 @@ limitations under the License.
<artifactId>netty-handler</artifactId>
<version>${netty.version}</version>
</additionalDependency>
+ <additionalDependency>
+ <groupId>io.netty</groupId>
+
<artifactId>netty-handler-proxy</artifactId>
+ <version>${netty.version}</version>
+ </additionalDependency>
<additionalDependency>
<groupId>io.netty</groupId>
<artifactId>netty-transport</artifactId>
@@ -1895,6 +1905,11 @@ limitations under the License.
<artifactId>netty-codec</artifactId>
<version>${netty.version}</version>
</additionalDependency>
+ <additionalDependency>
+ <groupId>io.netty</groupId>
+
<artifactId>netty-codec-base</artifactId>
+ <version>${netty.version}</version>
+ </additionalDependency>
<additionalDependency>
<groupId>io.netty</groupId>
<artifactId>netty-codec-http</artifactId>
@@ -1910,6 +1925,11 @@ limitations under the License.
<artifactId>netty-handler</artifactId>
<version>${netty.version}</version>
</additionalDependency>
+ <additionalDependency>
+ <groupId>io.netty</groupId>
+
<artifactId>netty-handler-proxy</artifactId>
+ <version>${netty.version}</version>
+ </additionalDependency>
<additionalDependency>
<groupId>io.netty</groupId>
<artifactId>netty-transport</artifactId>
diff --git a/source-release.xml b/source-release.xml
index 890e75ab6c..f5f2e511e0 100644
--- a/source-release.xml
+++ b/source-release.xml
@@ -49,6 +49,7 @@
-->
<!-- AI coding agent directories -->
+ <exclude>**/.beads/**</exclude>
<exclude>**/.claude/**</exclude>
<exclude>**/.codex/**</exclude>
<exclude>**/.copilot/**</exclude>
@@ -89,6 +90,10 @@
<exclude>docs/gremlint/package-lock.json</exclude>
<exclude>docs/gremlint/node_modules/**</exclude>
<exclude>docs/gremlint/build/**</exclude>
+ <exclude>docs/gremlint/dist/**</exclude>
+ <exclude>docs/gremlator/package-lock.json</exclude>
+ <exclude>docs/gremlator/node_modules/**</exclude>
+ <exclude>docs/gremlator/dist/**</exclude>
<exclude>gremlin-dotnet/.glv</exclude>
<exclude>gremlin-dotnet/gremlin-*/**</exclude>
<exclude>gremlin-dotnet/src/docfx/**</exclude>
diff --git a/spark-gremlin/pom.xml b/spark-gremlin/pom.xml
index 0b2917997d..d72242c05e 100644
--- a/spark-gremlin/pom.xml
+++ b/spark-gremlin/pom.xml
@@ -21,7 +21,7 @@ limitations under the License.
<parent>
<groupId>org.apache.tinkerpop</groupId>
<artifactId>tinkerpop</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.0-beta.3</version>
</parent>
<artifactId>spark-gremlin</artifactId>
<name>Apache TinkerPop :: Spark Gremlin</name>
diff --git a/tinkergraph-gremlin/pom.xml b/tinkergraph-gremlin/pom.xml
index 3437530bc4..10d4b0c5da 100644
--- a/tinkergraph-gremlin/pom.xml
+++ b/tinkergraph-gremlin/pom.xml
@@ -21,7 +21,7 @@ limitations under the License.
<parent>
<groupId>org.apache.tinkerpop</groupId>
<artifactId>tinkerpop</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.0-beta.3</version>
</parent>
<artifactId>tinkergraph-gremlin</artifactId>
<name>Apache TinkerPop :: TinkerGraph Gremlin</name>