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

colegreer pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/tinkerpop.git

commit 5bd0137f6ea9ffdf86899821a74ec5d86322a8ef
Merge: 573edb8cec dee83b3335
Author: Cole-Greer <[email protected]>
AuthorDate: Mon Nov 10 15:35:55 2025 -0800

    Merge branch '3.8-dev'

 .github/workflows/build-test.yml                   | 76 +++++++++++++++++-----
 CHANGELOG.asciidoc                                 |  3 +-
 docs/src/reference/gremlin-variants.asciidoc       |  2 +-
 gremlin-javascript/pom.xml                         |  1 +
 .../gremlin-javascript/docker-compose.yml          |  2 +-
 .../gremlin-javascript/lib/driver/connection.ts    |  8 ++-
 .../test/integration/client-behavior-tests.js      |  2 +-
 .../test/integration/socket-connection-tests.js    |  3 +-
 pom.xml                                            |  1 +
 9 files changed, 74 insertions(+), 24 deletions(-)

diff --cc .github/workflows/build-test.yml
index ca9beb4e07,04db0a939e..fbbe3e2f15
--- a/.github/workflows/build-test.yml
+++ b/.github/workflows/build-test.yml
@@@ -198,46 -198,90 +198,90 @@@ jobs
          run: |
            mvn clean install -pl $EXCLUDE_MODULES -q -DskipTests -Dci
            mvn verify -pl gremlin-driver -DskipIntegrationTests=false
- #  javascript:
- #    name: javascript
 -  javascript-node20:
 -    name: javascript-all-node20
 -    timeout-minutes: 15
 -    needs: cache-gremlin-server-docker-image
 -    runs-on: ubuntu-latest
 -    steps:
 -      - uses: actions/checkout@v5
 -      - name: Set up JDK 11
 -        uses: actions/setup-java@v5
 -        with:
 -          java-version: '11'
 -          distribution: 'temurin'
 -      - name: Get Cached Server Base Image
 -        uses: actions/cache@v4
 -        id: gremlin-server-test-docker-image
 -        with:
 -          path: |
 -            ./gremlin-server/*
 -            ~/.m2/repository/org/apache/tinkerpop/*
 -          key: ${{ github.sha }}
 -      - name: Load Docker Image
 -        working-directory: ./gremlin-server
 -        run: docker load --input gremlin-server.tar
 -      - name: Build with Maven
 -        run: |
 -          
EXCLUDE="-:gremlin-dotnet-source,-:gremlin-dotnet-tests,-:gremlin-go,-:gremlin-python,$EXCLUDE_FOR_GLV"
 -          mvn clean install -pl $EXCLUDE -q -DskipTests -Dci
 -          mvn verify -pl :gremlin-javascript,:gremlint,:gremlin-mcp 
-Dnode.test.version=20
 -  javascript-node22:
 -    name: javascript-glv-node22
 -    timeout-minutes: 15
 -    needs: cache-gremlin-server-docker-image
 -    runs-on: ubuntu-latest
 -    steps:
 -      - uses: actions/checkout@v5
 -      - name: Set up JDK 11
 -        uses: actions/setup-java@v5
 -        with:
 -          java-version: '11'
 -          distribution: 'temurin'
 -      - name: Get Cached Server Base Image
 -        uses: actions/cache@v4
 -        id: gremlin-server-test-docker-image
 -        with:
 -          path: |
 -            ./gremlin-server/*
 -            ~/.m2/repository/org/apache/tinkerpop/*
 -          key: ${{ github.sha }}
 -      - name: Load Docker Image
 -        working-directory: ./gremlin-server
 -        run: docker load --input gremlin-server.tar
 -      - name: Build with Maven
 -        run: |
 -          
EXCLUDE="-:gremlin-dotnet-source,-:gremlin-dotnet-tests,-:gremlin-go,-:gremlin-python,$EXCLUDE_FOR_GLV"
 -          mvn clean install -pl $EXCLUDE -q -DskipTests -Dci
 -          mvn verify -pl :gremlin-javascript -Dnode.test.version=22
 -  javascript-node24:
 -    name: javascript-glv-node24
 -    timeout-minutes: 15
 -    needs: cache-gremlin-server-docker-image
 -    runs-on: ubuntu-latest
 -    steps:
 -      - uses: actions/checkout@v5
 -      - name: Set up JDK 11
 -        uses: actions/setup-java@v5
 -        with:
 -          java-version: '11'
 -          distribution: 'temurin'
 -      - name: Get Cached Server Base Image
 -        uses: actions/cache@v4
 -        id: gremlin-server-test-docker-image
 -        with:
 -          path: |
 -            ./gremlin-server/*
 -            ~/.m2/repository/org/apache/tinkerpop/*
 -          key: ${{ github.sha }}
 -      - name: Load Docker Image
 -        working-directory: ./gremlin-server
 -        run: docker load --input gremlin-server.tar
 -      - name: Build with Maven
 -        run: |
 -          
EXCLUDE="-:gremlin-dotnet-source,-:gremlin-dotnet-tests,-:gremlin-go,-:gremlin-python,$EXCLUDE_FOR_GLV"
 -          mvn clean install -pl $EXCLUDE -q -DskipTests -Dci
 -          mvn verify -pl :gremlin-javascript -Dnode.test.version=24
++#  javascript-node20:
++#    name: javascript-all-node20
 +#    timeout-minutes: 15
 +#    needs: cache-gremlin-server-docker-image
- #    runs-on: ${{ matrix.os }}
- #    strategy:
- #      matrix:
- #        # Windows Disabled until Linux containers are supported on Windows 
runners: https://github.com/actions/virtual-environments/issues/252
- #        # os: [ubuntu-latest, windows-latest]
- #        os: [ubuntu-latest]
++#    runs-on: ubuntu-latest
 +#    steps:
 +#      - uses: actions/checkout@v5
 +#      - name: Set up JDK 11
 +#        uses: actions/setup-java@v5
 +#        with:
 +#          java-version: '11'
 +#          distribution: 'temurin'
 +#      - name: Get Cached Server Base Image
- #        if: matrix.os == 'ubuntu-latest'
 +#        uses: actions/cache@v4
 +#        id: gremlin-server-test-docker-image
 +#        with:
 +#          path: |
 +#            ./gremlin-server/*
 +#            ~/.m2/repository/org/apache/tinkerpop/*
 +#          key: ${{ github.sha }}
- ##      - name: Download Server Base Image
- ##        if: matrix.os == 'windows-latest'
- ##        uses: actions/download-artifact@v3
- ##        with:
- ##          name: ${{ github.sha }}
- ##          path: ./gremlin-server
 +#      - name: Load Docker Image
 +#        working-directory: ./gremlin-server
 +#        run: docker load --input gremlin-server.tar
 +#      - name: Build with Maven
 +#        run: |
 +#          
EXCLUDE="-:gremlin-dotnet-source,-:gremlin-dotnet-tests,-:gremlin-go,-:gremlin-python,$EXCLUDE_FOR_GLV"
 +#          mvn clean install -pl $EXCLUDE -q -DskipTests -Dci
- #          mvn verify -pl :gremlin-javascript,:gremlint,:gremlin-mcp
++#          mvn verify -pl :gremlin-javascript,:gremlint,:gremlin-mcp 
-Dnode.test.version=20
++#  javascript-node22:
++#    name: javascript-glv-node22
++#    timeout-minutes: 15
++#    needs: cache-gremlin-server-docker-image
++#    runs-on: ubuntu-latest
++#    steps:
++#      - uses: actions/checkout@v5
++#      - name: Set up JDK 11
++#        uses: actions/setup-java@v5
++#        with:
++#          java-version: '11'
++#          distribution: 'temurin'
++#      - name: Get Cached Server Base Image
++#        uses: actions/cache@v4
++#        id: gremlin-server-test-docker-image
++#        with:
++#          path: |
++#            ./gremlin-server/*
++#            ~/.m2/repository/org/apache/tinkerpop/*
++#          key: ${{ github.sha }}
++#      - name: Load Docker Image
++#        working-directory: ./gremlin-server
++#        run: docker load --input gremlin-server.tar
++#      - name: Build with Maven
++#        run: |
++#          
EXCLUDE="-:gremlin-dotnet-source,-:gremlin-dotnet-tests,-:gremlin-go,-:gremlin-python,$EXCLUDE_FOR_GLV"
++#          mvn clean install -pl $EXCLUDE -q -DskipTests -Dci
++#          mvn verify -pl :gremlin-javascript -Dnode.test.version=22
++#  javascript-node24:
++#    name: javascript-glv-node24
++#    timeout-minutes: 15
++#    needs: cache-gremlin-server-docker-image
++#    runs-on: ubuntu-latest
++#    steps:
++#      - uses: actions/checkout@v5
++#      - name: Set up JDK 11
++#        uses: actions/setup-java@v5
++#        with:
++#          java-version: '11'
++#          distribution: 'temurin'
++#      - name: Get Cached Server Base Image
++#        uses: actions/cache@v4
++#        id: gremlin-server-test-docker-image
++#        with:
++#          path: |
++#            ./gremlin-server/*
++#            ~/.m2/repository/org/apache/tinkerpop/*
++#          key: ${{ github.sha }}
++#      - name: Load Docker Image
++#        working-directory: ./gremlin-server
++#        run: docker load --input gremlin-server.tar
++#      - name: Build with Maven
++#        run: |
++#          
EXCLUDE="-:gremlin-dotnet-source,-:gremlin-dotnet-tests,-:gremlin-go,-:gremlin-python,$EXCLUDE_FOR_GLV"
++#          mvn clean install -pl $EXCLUDE -q -DskipTests -Dci
++#          mvn verify -pl :gremlin-javascript -Dnode.test.version=24
    python:
      name: python
      timeout-minutes: 20
diff --cc docs/src/reference/gremlin-variants.asciidoc
index 5ca696c2ec,4554e982b0..8993369aa4
--- a/docs/src/reference/gremlin-variants.asciidoc
+++ b/docs/src/reference/gremlin-variants.asciidoc
@@@ -1414,11 -1405,9 +1414,11 @@@ g.inject(java.awt.Color.red, "hi", 123)
  
  [[gremlin-javascript]]
  == Gremlin-JavaScript
 +IMPORTANT: 4.0.0-beta.1 Release - Gremlin-JavaScript is not available in this 
beta, please consider testing with
 +Java or Python.
  
  image:gremlin-js.png[width=130,float=right] Apache TinkerPop's 
Gremlin-JavaScript implements Gremlin within the
- JavaScript language. It targets Node.js runtime and can be used on different 
operating systems on any Node.js 6 or
+ JavaScript language. It targets Node.js runtime and can be used on different 
operating systems on any Node.js 20 or
  above. Since the JavaScript naming conventions are very similar to that of 
Java, it should be very easy to switch
  between Gremlin-Java and Gremlin-JavaScript.
  
diff --cc 
gremlin-javascript/src/main/javascript/gremlin-javascript/lib/driver/connection.ts
index 095dce2757,b7973b96ae..38a75b15a3
--- 
a/gremlin-javascript/src/main/javascript/gremlin-javascript/lib/driver/connection.ts
+++ 
b/gremlin-javascript/src/main/javascript/gremlin-javascript/lib/driver/connection.ts
@@@ -184,9 -135,12 +184,11 @@@ export default class Connection extend
        'perMessageDeflate',
      ]);
      // Check if any `ws` specific options are provided and are non-null / 
non-undefined
-     const hasWsSpecificOptions: boolean = Object.entries(this.options).some(
-       ([key, value]) => wsSpecificOptions.has(key) && ![null, 
undefined].includes(value),
-     );
 -    const hasWsSpecificOptions =
++    const hasWsSpecificOptions: boolean =
+       Object.entries(this.options).some(
+         ([key, value]) => wsSpecificOptions.has(key) && ![null, 
undefined].includes(value),
+       ) ||
 -      this._enableCompression || // we need to check the presence of this 
variable and pass this into ws
+       this._enableUserAgentOnConnect; // global websocket will send "node" as 
user agent by default which doesn't comply with Gremlin
      // Only use the global websocket if we don't have any unsupported options
      const useGlobalWebSocket = !hasWsSpecificOptions && globalThis.WebSocket;
      const WebSocket = useGlobalWebSocket || (await import('ws')).default;
diff --cc 
gremlin-javascript/src/main/javascript/gremlin-javascript/test/integration/socket-connection-tests.js
index 47ac00fa91,e39ab537ed..6b80f5770f
--- 
a/gremlin-javascript/src/main/javascript/gremlin-javascript/test/integration/socket-connection-tests.js
+++ 
b/gremlin-javascript/src/main/javascript/gremlin-javascript/test/integration/socket-connection-tests.js
@@@ -78,7 -78,8 +78,8 @@@ describe('Connection', function () 
        globalThis.WebSocket = function () {
          globalWebsocketCalls++;
        };
-       const connection = 
helper.getDriverRemoteConnection(`ws://localhost:${testServerPort}/401`);
+       const connection = 
helper.getDriverRemoteConnection(`ws://localhost:${testServerPort}/401`,
 -          {enableCompression: false, enableUserAgentOnConnect: false}); // 
Global WebSocket is not compatible with customized compression and user agent 
headers
++          {enableUserAgentOnConnect: false}); // Global WebSocket is not 
compatible with user agent headers
        return connection
          .open()
          .catch(() => {})

Reply via email to