You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tinkerpop.apache.org by xi...@apache.org on 2026/09/02 02:16:54 UTC

(tinkerpop) branch 3.7.7-rc2 created (now 86a495f591)

This is an automated email from the ASF dual-hosted git repository.

xiazcy pushed a change to branch 3.7.7-rc2
in repository https://gitbox.apache.org/repos/asf/tinkerpop.git


      at 86a495f591 TinkerPop 3.7.7 release

This branch includes the following new commits:

     new 86a495f591 TinkerPop 3.7.7 release

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.



(tinkerpop) 01/01: TinkerPop 3.7.7 release

Posted by xi...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

xiazcy pushed a commit to branch 3.7.7-rc2
in repository https://gitbox.apache.org/repos/asf/tinkerpop.git

commit 86a495f591dab66b37b8dfe48fbff35f853111f5
Author: Yang Xia <xi...@gmail.com>
AuthorDate: Tue Sep 1 19:14:39 2026 -0700

    TinkerPop 3.7.7 release
---
 CHANGELOG.asciidoc                                 | 27 +++++++++++++++++++++-
 bin/validate-distribution.sh                       |  4 ++--
 docs/src/upgrade/release-3.7.x.asciidoc            |  2 +-
 docs/tinkeradoc-extension/pom.xml                  |  2 +-
 .../tinkerpop/tinkeradoc/NeutralTabCodecTest.java  |  2 +-
 gremlin-annotations/pom.xml                        |  2 +-
 gremlin-archetype/gremlin-archetype-dsl/pom.xml    |  2 +-
 gremlin-archetype/gremlin-archetype-server/pom.xml |  2 +-
 .../gremlin-archetype-tinkergraph/pom.xml          |  2 +-
 gremlin-archetype/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-javascript/pom.xml                         |  2 +-
 .../javascript/gremlin-javascript/lib/utils.js     |  2 +-
 .../gremlin-javascript/package-lock.json           |  4 ++--
 .../javascript/gremlin-javascript/package.json     |  2 +-
 gremlin-language/pom.xml                           |  2 +-
 gremlin-python/pom.xml                             |  2 +-
 .../src/main/python/gremlin_python/__init__.py     |  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 +-
 gremlint/package-lock.json                         |  4 ++--
 gremlint/package.json                              |  2 +-
 gremlint/pom.xml                                   |  2 +-
 hadoop-gremlin/pom.xml                             |  2 +-
 neo4j-gremlin/pom.xml                              |  2 +-
 pom.xml                                            |  2 +-
 source-release.xml                                 |  9 ++++++++
 spark-gremlin/pom.xml                              |  2 +-
 sparql-gremlin/pom.xml                             |  2 +-
 tinkergraph-gremlin/pom.xml                        |  2 +-
 51 files changed, 87 insertions(+), 53 deletions(-)

diff --git a/CHANGELOG.asciidoc b/CHANGELOG.asciidoc
index 4e0bcae085..93b16d35b5 100644
--- a/CHANGELOG.asciidoc
+++ b/CHANGELOG.asciidoc
@@ -23,7 +23,9 @@ under the License.
 image::https://raw.githubusercontent.com/apache/tinkerpop/master/docs/static/images/gremlin-zamfir.png[width=185]
 
 [[release-3-7-7]]
-=== TinkerPop 3.7.7 (Release Date: NOT OFFICIALLY RELEASED YET)
+=== TinkerPop 3.7.7 (Release Date: September 1, 2026)
+
+This release also includes changes from <<release-3-7-6, 3.7.6>>.
 
 * Fixed GraphBinary deserialization to reject invalid length and count values with an `IOException`.
 * Disabled unsafe Java deserialization on the Gryo IO paths and added `GryoMapper.Builder.javaSerializationAllowed(boolean)` to control it.
@@ -63,6 +65,29 @@ image::https://raw.githubusercontent.com/apache/tinkerpop/master/docs/static/ima
 * Fixed `gremlin-go` GraphBinary serialization of zero `BigInteger`/`BigDecimal` values, which were encoded with zero length and rejected by Java servers.
 * Capped by count and by total size the requests `SaslAuthenticationHandler` retains on a channel while its SASL authentication is pending, and closed the channel when that authentication does not complete within 30 seconds, all three tunable with the new `authentication.maxDeferredRequests`, `authentication.maxPreAuthRetainedBytes` and `authentication.preAuthTimeout` settings.
 
+==== Bugs
+
+* TINKERPOP-3225 conjoin has incorrect null handling
+* TINKERPOP-3270 where(P) throws ClassCastException for non-String predicate values instead of a descriptive validation error
+* TINKERPOP-3271 subgraph() throws ClassCastException instead of a descriptive error for non-Edge input
+* TINKERPOP-3273 V and hasId consistency with collection unrolling
+* TINKERPOP-3275 gremlin-python graphbinary BigInt serializer incorrect for negative boundary values
+* TINKERPOP-3277 gremlin-go can't serialize zero in bigdecimal/biginteger
+* TINKERPOP-3278 Gryo IO unsafe Java deserialization
+* TINKERPOP-3279 GraphSON 1.0 embedded types unsafe deserialization *(breaking)*
+* TINKERPOP-3281 GraphBinary deserializer unbounded pre-allocation from length prefixes *(breaking)*
+
+==== Improvements
+
+* TINKERPOP-2085 Remove dependency on Mono
+* TINKERPOP-3042 Deprecate ProductiveByStrategy
+* TINKERPOP-3151 Allow floats with no leading digits
+* TINKERPOP-3179 Support withComputer() for go
+* TINKERPOP-3185 Ensure consistency of option key constants for with()
+* TINKERPOP-3238 fail() improvements for remote applications
+* TINKERPOP-3243 Add next(n) batch iteration to gremlin-javascript
+* TINKERPOP-3244 Add next(n) batch iteration to gremlin-go for GLV parity
+
 [[release-3-7-6]]
 === TinkerPop 3.7.6 (Release Date: April 1, 2026)
 
diff --git a/bin/validate-distribution.sh b/bin/validate-distribution.sh
index 1a1c1b738b..25914be48c 100755
--- a/bin/validate-distribution.sh
+++ b/bin/validate-distribution.sh
@@ -210,9 +210,9 @@ if [ "${TYPE}" = "CONSOLE" ]; then
   SCRIPT_PATH="${TMP_DIR}/${SCRIPT_FILENAME}"
   echo ${SCRIPT} > ${SCRIPT_PATH}
   [[ `bin/gremlin.sh <<< ${SCRIPT} | sed "s/\x1b\[[0-9;]*m//g" | tr -d "\r" | grep '^==>' | sed -e 's/^==>//'` -eq 6 ]] || { echo "failed to evaluate sample script"; exit 1; }
-  [[ `bin/gremlin.sh -e ${SCRIPT_PATH}` -eq 6 ]] || { echo "failed to evaluate sample script using -e option"; exit 1; }
+  [[ `bin/gremlin.sh -e ${SCRIPT_PATH} | tr -d "\r" | grep -E '^[0-9]+$' | tail -n1` -eq 6 ]] || { echo "failed to evaluate sample script using -e option"; exit 1; }
   CONSOLE_DIR=`pwd`
   cd ${TMP_DIR}
-  [[ `${CONSOLE_DIR}/bin/gremlin.sh -e ${SCRIPT_FILENAME}` -eq 6 ]] || { echo "failed to evaluate sample script using -e option (using a different working directory and a relative script path)"; exit 1; }
+  [[ `${CONSOLE_DIR}/bin/gremlin.sh -e ${SCRIPT_FILENAME} | tr -d "\r" | grep -E '^[0-9]+$' | tail -n1` -eq 6 ]] || { echo "failed to evaluate sample script using -e option (using a different working directory and a relative script path)"; exit 1; }
   echo "OK"
 fi
diff --git a/docs/src/upgrade/release-3.7.x.asciidoc b/docs/src/upgrade/release-3.7.x.asciidoc
index df795f61d6..de337cffd2 100644
--- a/docs/src/upgrade/release-3.7.x.asciidoc
+++ b/docs/src/upgrade/release-3.7.x.asciidoc
@@ -26,7 +26,7 @@ image::gremlin-zamfir.png[width=185]
 
 == TinkerPop 3.7.7
 
-*Release Date: NOT OFFICIALLY RELEASED YET*
+*Release Date: September 1, 2026*
 
 Please see the link:https://github.com/apache/tinkerpop/blob/3.7.7/CHANGELOG.asciidoc#release-3-7-7[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 9a259c8fcb..d58114fbee 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>3.7.7-SNAPSHOT</version>
+        <version>3.7.7</version>
         <relativePath>../../pom.xml</relativePath>
     </parent>
     <artifactId>tinkeradoc-extension</artifactId>
diff --git a/docs/tinkeradoc-extension/src/test/java/org/apache/tinkerpop/tinkeradoc/NeutralTabCodecTest.java b/docs/tinkeradoc-extension/src/test/java/org/apache/tinkerpop/tinkeradoc/NeutralTabCodecTest.java
index 5c48c72172..8f3eed105c 100644
--- a/docs/tinkeradoc-extension/src/test/java/org/apache/tinkerpop/tinkeradoc/NeutralTabCodecTest.java
+++ b/docs/tinkeradoc-extension/src/test/java/org/apache/tinkerpop/tinkeradoc/NeutralTabCodecTest.java
@@ -79,7 +79,7 @@ public class NeutralTabCodecTest {
     @Test
     public void shouldRoundTripContentWithNewlinesTabsAndControlChars() {
         assertRoundTrip(Collections.singletonList(
-                NeutralTab.console("groovy", "line1\n\tindented\r\nline3end")));
+                NeutralTab.console("groovy", "line1\n\tindented\r\nline3\u0001end")));
     }
 
     @Test
diff --git a/gremlin-annotations/pom.xml b/gremlin-annotations/pom.xml
index bbdba79870..00d918f522 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>3.7.7-SNAPSHOT</version>
+        <version>3.7.7</version>
     </parent>
 
     <artifactId>gremlin-annotations</artifactId>
diff --git a/gremlin-archetype/gremlin-archetype-dsl/pom.xml b/gremlin-archetype/gremlin-archetype-dsl/pom.xml
index 44560614f5..82acdfbae2 100644
--- a/gremlin-archetype/gremlin-archetype-dsl/pom.xml
+++ b/gremlin-archetype/gremlin-archetype-dsl/pom.xml
@@ -21,7 +21,7 @@ limitations under the License.
     <parent>
         <groupId>org.apache.tinkerpop</groupId>
         <artifactId>gremlin-archetype</artifactId>
-        <version>3.7.7-SNAPSHOT</version>
+        <version>3.7.7</version>
     </parent>
 
     <artifactId>gremlin-archetype-dsl</artifactId>
diff --git a/gremlin-archetype/gremlin-archetype-server/pom.xml b/gremlin-archetype/gremlin-archetype-server/pom.xml
index 23174c9c07..8099537079 100644
--- a/gremlin-archetype/gremlin-archetype-server/pom.xml
+++ b/gremlin-archetype/gremlin-archetype-server/pom.xml
@@ -21,7 +21,7 @@ limitations under the License.
     <parent>
         <groupId>org.apache.tinkerpop</groupId>
         <artifactId>gremlin-archetype</artifactId>
-        <version>3.7.7-SNAPSHOT</version>
+        <version>3.7.7</version>
     </parent>
 
     <artifactId>gremlin-archetype-server</artifactId>
diff --git a/gremlin-archetype/gremlin-archetype-tinkergraph/pom.xml b/gremlin-archetype/gremlin-archetype-tinkergraph/pom.xml
index 7417f98b06..e201acbe20 100644
--- a/gremlin-archetype/gremlin-archetype-tinkergraph/pom.xml
+++ b/gremlin-archetype/gremlin-archetype-tinkergraph/pom.xml
@@ -21,7 +21,7 @@ limitations under the License.
     <parent>
         <groupId>org.apache.tinkerpop</groupId>
         <artifactId>gremlin-archetype</artifactId>
-        <version>3.7.7-SNAPSHOT</version>
+        <version>3.7.7</version>
     </parent>
 
     <artifactId>gremlin-archetype-tinkergraph</artifactId>
diff --git a/gremlin-archetype/pom.xml b/gremlin-archetype/pom.xml
index ba84569893..3869a65302 100644
--- a/gremlin-archetype/pom.xml
+++ b/gremlin-archetype/pom.xml
@@ -21,7 +21,7 @@ limitations under the License.
     <parent>
         <artifactId>tinkerpop</artifactId>
         <groupId>org.apache.tinkerpop</groupId>
-        <version>3.7.7-SNAPSHOT</version>
+        <version>3.7.7</version>
     </parent>
 
     <artifactId>gremlin-archetype</artifactId>
diff --git a/gremlin-console/bin/gremlin.sh b/gremlin-console/bin/gremlin.sh
index 6acd971bfc..b032ba7434 120000
--- a/gremlin-console/bin/gremlin.sh
+++ b/gremlin-console/bin/gremlin.sh
@@ -1 +1 @@
-../target/apache-tinkerpop-gremlin-console-3.7.7-SNAPSHOT-standalone/bin/gremlin.sh
\ No newline at end of file
+../target/apache-tinkerpop-gremlin-console-3.7.7-standalone/bin/gremlin.sh
\ No newline at end of file
diff --git a/gremlin-console/pom.xml b/gremlin-console/pom.xml
index e97fe2045f..63a9f21c13 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>3.7.7-SNAPSHOT</version>
+        <version>3.7.7</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 d8f95274a0..c0122babbd 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>3.7.7-SNAPSHOT</version>
+        <version>3.7.7</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 be0398d86f..301bfe0c8a 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 = "3.7.7-SNAPSHOT"; // DO NOT MODIFY - Configured automatically by Maven Replacer Plugin
+    private final static String gremlinVersion = "3.7.7"; // DO NOT MODIFY - Configured automatically by Maven Replacer Plugin
 
     private Gremlin() {
     }
diff --git a/gremlin-dotnet/pom.xml b/gremlin-dotnet/pom.xml
index d48c3dc7ce..c017ce2928 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>3.7.7-SNAPSHOT</version>
+        <version>3.7.7</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 3632aa3051..104298825b 100644
--- a/gremlin-dotnet/src/Gremlin.Net.Template/Gremlin.Net.Template.csproj
+++ b/gremlin-dotnet/src/Gremlin.Net.Template/Gremlin.Net.Template.csproj
@@ -31,7 +31,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="3.7.7-SNAPSHOT" />
+    <PackageReference Include="Gremlin.Net" Version="3.7.7" />
   </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 bcecd2cdd8..c38aa9a720 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>3.7.7-SNAPSHOT</version>
+        <version>3.7.7</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 2bd45975b1..4fcce44e0d 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 = "3.7.7-SNAPSHOT"; // DO NOT MODIFY - Configured automatically by Maven Replacer Plugin
+        public static string GremlinVersion = "3.7.7"; // 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 b1492a0eb3..e3a5344a11 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>3.7.7-SNAPSHOT</Version>
+    <Version>3.7.7</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 6a9c080a5b..b5f171adf0 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>3.7.7-SNAPSHOT</version>
+        <version>3.7.7</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 3ca7f039e9..d3c2815c78 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>3.7.7-SNAPSHOT</version>
+        <version>3.7.7</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 1602aa4a92..2921d32cbd 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>3.7.7-SNAPSHOT</version>
+        <version>3.7.7</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 5e698da339..6f9f96147a 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 = "3.7.7-SNAPSHOT" // DO NOT MODIFY - Configured automatically by Maven Replacer Plugin
+const gremlinVersion = "3.7.7" // 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 41a99fe125..f2aede3660 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>3.7.7-SNAPSHOT</version>
+        <version>3.7.7</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 ab219c804d..b7bd0bdf62 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>3.7.7-SNAPSHOT</version>
+        <version>3.7.7</version>
     </parent>
     <artifactId>gremlin-groovy</artifactId>
     <name>Apache TinkerPop :: Gremlin Groovy</name>
diff --git a/gremlin-javascript/pom.xml b/gremlin-javascript/pom.xml
index 5c5d84081b..b0f05ade86 100644
--- a/gremlin-javascript/pom.xml
+++ b/gremlin-javascript/pom.xml
@@ -21,7 +21,7 @@ limitations under the License.
     <parent>
         <groupId>org.apache.tinkerpop</groupId>
         <artifactId>tinkerpop</artifactId>
-        <version>3.7.7-SNAPSHOT</version>
+        <version>3.7.7</version>
     </parent>
     <artifactId>gremlin-javascript</artifactId>
     <name>Apache TinkerPop :: Gremlin Javascript</name>
diff --git a/gremlin-javascript/src/main/javascript/gremlin-javascript/lib/utils.js b/gremlin-javascript/src/main/javascript/gremlin-javascript/lib/utils.js
index e2fd9b0250..a497aa6085 100644
--- a/gremlin-javascript/src/main/javascript/gremlin-javascript/lib/utils.js
+++ b/gremlin-javascript/src/main/javascript/gremlin-javascript/lib/utils.js
@@ -25,7 +25,7 @@
 
 const uuid = require('uuid');
 
-const gremlinVersion = '3.7.7-SNAPSHOT'; // DO NOT MODIFY - Configured automatically by Maven Replacer Plugin
+const gremlinVersion = '3.7.7'; // DO NOT MODIFY - Configured automatically by Maven Replacer Plugin
 
 exports.toLong = function toLong(value) {
   return new Long(value);
diff --git a/gremlin-javascript/src/main/javascript/gremlin-javascript/package-lock.json b/gremlin-javascript/src/main/javascript/gremlin-javascript/package-lock.json
index be541f55fa..8d3b90ece1 100644
--- a/gremlin-javascript/src/main/javascript/gremlin-javascript/package-lock.json
+++ b/gremlin-javascript/src/main/javascript/gremlin-javascript/package-lock.json
@@ -1,12 +1,12 @@
 {
   "name": "gremlin",
-  "version": "3.7.7-alpha1",
+  "version": "3.7.7",
   "lockfileVersion": 3,
   "requires": true,
   "packages": {
     "": {
       "name": "gremlin",
-      "version": "3.7.7-alpha1",
+      "version": "3.7.7",
       "license": "Apache-2.0",
       "dependencies": {
         "buffer": "^6.0.3",
diff --git a/gremlin-javascript/src/main/javascript/gremlin-javascript/package.json b/gremlin-javascript/src/main/javascript/gremlin-javascript/package.json
index 0e2836b2e3..02f62a0741 100644
--- a/gremlin-javascript/src/main/javascript/gremlin-javascript/package.json
+++ b/gremlin-javascript/src/main/javascript/gremlin-javascript/package.json
@@ -1,6 +1,6 @@
 {
   "name": "gremlin",
-  "version": "3.7.7-alpha1",
+  "version": "3.7.7",
   "description": "JavaScript Gremlin Language Variant",
   "author": "Apache TinkerPop team",
   "keywords": [
diff --git a/gremlin-language/pom.xml b/gremlin-language/pom.xml
index ee7ca799bb..cc3150b5cc 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>3.7.7-SNAPSHOT</version>
+        <version>3.7.7</version>
     </parent>
 
     <artifactId>gremlin-language</artifactId>
diff --git a/gremlin-python/pom.xml b/gremlin-python/pom.xml
index 0a667b0eeb..3d784bb2d2 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>3.7.7-SNAPSHOT</version>
+        <version>3.7.7</version>
     </parent>
     <artifactId>gremlin-python</artifactId>
     <name>Apache TinkerPop :: Gremlin Python</name>
diff --git a/gremlin-python/src/main/python/gremlin_python/__init__.py b/gremlin-python/src/main/python/gremlin_python/__init__.py
index abd215479b..9c88435a36 100644
--- a/gremlin-python/src/main/python/gremlin_python/__init__.py
+++ b/gremlin-python/src/main/python/gremlin_python/__init__.py
@@ -18,4 +18,4 @@
 #
 
 __author__ = 'Marko A. Rodriguez (http://markorodriguez.com)'
-__version__ = '3.7.7.dev1' # Do not touch, updated automatically from maven
+__version__ = '3.7.7' # Do not touch, updated automatically from maven
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 d40d62df40..20956e5251 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 = "3.7.7-SNAPSHOT"  # DO NOT MODIFY - Configured automatically by Maven Replacer Plugin
+gremlin_version = "3.7.7"  # 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 5354f731ae..48b8809b86 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>3.7.7-SNAPSHOT</version>
+        <version>3.7.7</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 e38771295b..5ca30b25d4 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>3.7.7-SNAPSHOT</version>
+        <version>3.7.7</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 b6e5c98d33..5ff4651b43 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>3.7.7-SNAPSHOT</version>
+        <version>3.7.7</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 f6065d5446..a26652e17c 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>3.7.7-SNAPSHOT</version>
+        <version>3.7.7</version>
     </parent>
 
     <artifactId>gremlin-benchmark</artifactId>
diff --git a/gremlin-tools/gremlin-coverage/pom.xml b/gremlin-tools/gremlin-coverage/pom.xml
index bf22fdf43b..e72bcc326f 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>3.7.7-SNAPSHOT</version>
+        <version>3.7.7</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 5279a306ab..c10d1a67d3 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>3.7.7-SNAPSHOT</version>
+        <version>3.7.7</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
diff --git a/gremlin-tools/pom.xml b/gremlin-tools/pom.xml
index 41f7e7cbbc..55b223b4aa 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>3.7.7-SNAPSHOT</version>
+        <version>3.7.7</version>
     </parent>
 
     <artifactId>gremlin-tools</artifactId>
diff --git a/gremlin-util/pom.xml b/gremlin-util/pom.xml
index 020ce487f3..c827ec4bfd 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>3.7.7-SNAPSHOT</version>
+        <version>3.7.7</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
diff --git a/gremlint/package-lock.json b/gremlint/package-lock.json
index 6f2ed75ef5..f0377b6109 100644
--- a/gremlint/package-lock.json
+++ b/gremlint/package-lock.json
@@ -1,12 +1,12 @@
 {
   "name": "gremlint",
-  "version": "3.7.7-alpha1",
+  "version": "3.7.7",
   "lockfileVersion": 2,
   "requires": true,
   "packages": {
     "": {
       "name": "gremlint",
-      "version": "3.7.7-alpha1",
+      "version": "3.7.7",
       "license": "Apache-2.0",
       "devDependencies": {
         "@types/jest": "^27.5.0",
diff --git a/gremlint/package.json b/gremlint/package.json
index 6ee68dc8fa..81385e330d 100644
--- a/gremlint/package.json
+++ b/gremlint/package.json
@@ -1,6 +1,6 @@
 {
   "name": "gremlint",
-  "version": "3.7.7-alpha1",
+  "version": "3.7.7",
   "description": "Linter/code formatter for Gremlin",
   "main": "lib/index.js",
   "types": "lib/index.d.ts",
diff --git a/gremlint/pom.xml b/gremlint/pom.xml
index a07398585f..9519023b98 100644
--- a/gremlint/pom.xml
+++ b/gremlint/pom.xml
@@ -21,7 +21,7 @@ limitations under the License.
     <parent>
         <groupId>org.apache.tinkerpop</groupId>
         <artifactId>tinkerpop</artifactId>
-        <version>3.7.7-SNAPSHOT</version>
+        <version>3.7.7</version>
     </parent>
     <artifactId>gremlint</artifactId>
     <name>Apache TinkerPop :: Gremlint</name>
diff --git a/hadoop-gremlin/pom.xml b/hadoop-gremlin/pom.xml
index 129165f4fb..0f706bc380 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>3.7.7-SNAPSHOT</version>
+        <version>3.7.7</version>
     </parent>
     <artifactId>hadoop-gremlin</artifactId>
     <name>Apache TinkerPop :: Hadoop Gremlin</name>
diff --git a/neo4j-gremlin/pom.xml b/neo4j-gremlin/pom.xml
index 94e3a4be76..8ccc991d0f 100644
--- a/neo4j-gremlin/pom.xml
+++ b/neo4j-gremlin/pom.xml
@@ -21,7 +21,7 @@ limitations under the License.
     <parent>
         <groupId>org.apache.tinkerpop</groupId>
         <artifactId>tinkerpop</artifactId>
-        <version>3.7.7-SNAPSHOT</version>
+        <version>3.7.7</version>
     </parent>
     <artifactId>neo4j-gremlin</artifactId>
     <name>Apache TinkerPop :: Neo4j Gremlin</name>
diff --git a/pom.xml b/pom.xml
index 53334b1f32..bcb72b9a84 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>3.7.7-SNAPSHOT</version>
+    <version>3.7.7</version>
     <packaging>pom</packaging>
     <name>Apache TinkerPop</name>
     <description>A Graph Computing Framework</description>
diff --git a/source-release.xml b/source-release.xml
index 0909a7197b..d6e989a16e 100644
--- a/source-release.xml
+++ b/source-release.xml
@@ -48,6 +48,15 @@
                      of these files will be present. So, it's safer to exclude them.
                 -->
 
+                <!-- AI coding agent directories -->
+                <exclude>**/.beads/**</exclude>
+                <exclude>**/.claude/**</exclude>
+                <exclude>**/.codex/**</exclude>
+                <exclude>**/.copilot/**</exclude>
+                <exclude>**/.cursor/**</exclude>
+                <exclude>**/.kiro/**</exclude>
+                <exclude>**/.junie/**</exclude>
+
                 <!-- IDEs -->
                 <exclude>%regex[(?!((?!${project.build.directory}/)[^/]+/)*src/)(.*/)?maven-eclipse\.xml]</exclude>
                 <exclude>%regex[(?!((?!${project.build.directory}/)[^/]+/)*src/)(.*/)?\.project]</exclude>
diff --git a/spark-gremlin/pom.xml b/spark-gremlin/pom.xml
index fc98a1e19b..9b3d2f6b68 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>3.7.7-SNAPSHOT</version>
+        <version>3.7.7</version>
     </parent>
     <artifactId>spark-gremlin</artifactId>
     <name>Apache TinkerPop :: Spark Gremlin</name>
diff --git a/sparql-gremlin/pom.xml b/sparql-gremlin/pom.xml
index e303c4e639..f9890b62c9 100644
--- a/sparql-gremlin/pom.xml
+++ b/sparql-gremlin/pom.xml
@@ -21,7 +21,7 @@ limitations under the License.
     <parent>
         <artifactId>tinkerpop</artifactId>
         <groupId>org.apache.tinkerpop</groupId>
-        <version>3.7.7-SNAPSHOT</version>
+        <version>3.7.7</version>
     </parent>
     <artifactId>sparql-gremlin</artifactId>
     <name>Apache TinkerPop :: SPARQL Gremlin</name>
diff --git a/tinkergraph-gremlin/pom.xml b/tinkergraph-gremlin/pom.xml
index e6003f3e01..3f4f6fc6d5 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>3.7.7-SNAPSHOT</version>
+        <version>3.7.7</version>
     </parent>
     <artifactId>tinkergraph-gremlin</artifactId>
     <name>Apache TinkerPop :: TinkerGraph Gremlin</name>