You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tinkerpop.apache.org by sp...@apache.org on 2021/07/01 19:14:21 UTC

[tinkerpop] branch master updated (15c7504 -> 1b4f3e0)

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

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


    from 15c7504  Updated package-lock.json based on latest merge CTR
     new 7dc8def  TINKERPOP-2379 Made DriverRemoteConnection init a bit more consistent across implementations
     new 4fa7083  Merge branch '3.4-dev' into 3.5-dev
     new 1b4f3e0  Merge branch '3.5-dev'

The 3 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.


Summary of changes:
 CHANGELOG.asciidoc                                 |  2 ++
 docs/src/reference/intro.asciidoc                  | 16 +++++++++++++---
 .../Driver/Remote/DriverRemoteConnection.cs        | 22 ++++++++++++++++++++++
 .../Docs/Reference/IntroTests.cs                   |  5 ++---
 .../driver/driver_remote_connection.py             |  2 +-
 gremlin-python/src/main/python/tests/conftest.py   |  2 +-
 6 files changed, 41 insertions(+), 8 deletions(-)

[tinkerpop] 01/03: TINKERPOP-2379 Made DriverRemoteConnection init a bit more consistent across implementations

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

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

commit 7dc8def58e0cf366792379cc4eaeb74a0a1c02fe
Author: Stephen Mallette <st...@amazon.com>
AuthorDate: Thu Jul 1 14:39:36 2021 -0400

    TINKERPOP-2379 Made DriverRemoteConnection init a bit more consistent across implementations
    
    They now at least can all be initialized via host/port even if some take urls and others url components. All seem to have the option to change the TraversalSource it is bound to as well. CTR
---
 CHANGELOG.asciidoc                                 |  2 ++
 docs/src/reference/intro.asciidoc                  | 16 +++++++++++++---
 .../Driver/Remote/DriverRemoteConnection.cs        | 22 ++++++++++++++++++++++
 .../Docs/Reference/IntroTests.cs                   |  5 ++---
 .../driver/driver_remote_connection.py             |  2 +-
 gremlin-python/src/main/jython/tests/conftest.py   |  2 +-
 6 files changed, 41 insertions(+), 8 deletions(-)

diff --git a/CHANGELOG.asciidoc b/CHANGELOG.asciidoc
index bca2b82..915529c 100644
--- a/CHANGELOG.asciidoc
+++ b/CHANGELOG.asciidoc
@@ -28,6 +28,8 @@ image::https://raw.githubusercontent.com/apache/tinkerpop/master/docs/static/ima
 * Changed `IndexStep` to make it easier for providers to determine the type of indexer being used.
 * Allowed Javascript `Translator` to take `Bytecode` or a `Traversal`.
 * Addressed CVE-2021-32640 for gremlin-javascript.
+* Allowed construction of `DriverRemoteConnection` in .NET to use host and port specification similar to Java syntax.
+* Defaulted `DriverRemoteConnection` to "g" if it the `TraversalSource` binding isn't supplied in Python.
 
 [[release-3-4-11]]
 === TinkerPop 3.4.11 (Release Date: May 3, 2021)
diff --git a/docs/src/reference/intro.asciidoc b/docs/src/reference/intro.asciidoc
index aea28e6..ba8a422 100644
--- a/docs/src/reference/intro.asciidoc
+++ b/docs/src/reference/intro.asciidoc
@@ -379,15 +379,25 @@ the location of the Gremlin Server to connect to:
 
 [source,java,tab]
 ----
+// gremlin-driver module
+import org.apache.tinkerpop.gremlin.driver.remote.DriverRemoteConnection;
+
+// gremlin-core module
 import static org.apache.tinkerpop.gremlin.process.traversal.AnonymousTraversalSource.traversal;
 
-GraphTraversalSource g = traversal().withRemote("conf/remote-graph.properties");
+GraphTraversalSource g = traversal().withRemote(
+                DriverRemoteConnection.using("localhost", 8182));
 ----
 [source,groovy]
 ----
+// gremlin-driver module
+import org.apache.tinkerpop.gremlin.driver.remote.DriverRemoteConnection;
+
+// gremlin-core module
 import static org.apache.tinkerpop.gremlin.process.traversal.AnonymousTraversalSource.traversal;
 
-def g = traversal().withRemote('conf/remote-graph.properties')
+def g = traversal().withRemote(
+                DriverRemoteConnection.using('localhost', 8182))
 ----
 [source,csharp]
 ----
@@ -407,7 +417,7 @@ const g = traversal().withRemote(
 from gremlin_python.process.anonymous_traversal_source import traversal
 
 g = traversal().withRemote(
-          DriverRemoteConnection('ws://localhost:8182/gremlin','g'))
+          DriverRemoteConnection('ws://localhost:8182/gremlin'))
 ----
 
 As shown in the embedded approach in the previous section, once "g" is defined, writing Gremlin is structurally and
diff --git a/gremlin-dotnet/src/Gremlin.Net/Driver/Remote/DriverRemoteConnection.cs b/gremlin-dotnet/src/Gremlin.Net/Driver/Remote/DriverRemoteConnection.cs
index 510a2f4..023fa6e 100644
--- a/gremlin-dotnet/src/Gremlin.Net/Driver/Remote/DriverRemoteConnection.cs
+++ b/gremlin-dotnet/src/Gremlin.Net/Driver/Remote/DriverRemoteConnection.cs
@@ -25,6 +25,7 @@ using System;
 using System.Collections.Generic;
 using System.Threading.Tasks;
 using Gremlin.Net.Driver.Messages;
+using Gremlin.Net.Driver;
 using Gremlin.Net.Process.Remote;
 using Gremlin.Net.Process.Traversal;
 using Gremlin.Net.Process.Traversal.Strategy.Decoration;
@@ -51,6 +52,27 @@ namespace Gremlin.Net.Driver.Remote
         /// <summary>
         ///     Initializes a new <see cref="IRemoteConnection" /> using "g" as the default remote TraversalSource name.
         /// </summary>
+        /// <param name="host">The host to connect to.</param>
+        /// <param name="port">The port to connect to.</param>
+        /// <exception cref="ArgumentNullException">Thrown when client is null.</exception>
+        public DriverRemoteConnection(string host, int port):this(host, port, "g")
+        {
+        }
+
+        /// <summary>
+        ///     Initializes a new <see cref="IRemoteConnection" /> using "g" as the default remote TraversalSource name.
+        /// </summary>
+        /// <param name="host">The host to connect to.</param>
+        /// <param name="port">The port to connect to.</param>
+        /// <param name="traversalSource">The name of the traversal source on the server to bind to.</param>
+        /// <exception cref="ArgumentNullException">Thrown when client is null.</exception>
+        public DriverRemoteConnection(string host, int port, string traversalSource):this(new GremlinClient(new GremlinServer(host, port)), traversalSource)
+        {
+        }
+
+        /// <summary>
+        ///     Initializes a new <see cref="IRemoteConnection" /> using "g" as the default remote TraversalSource name.
+        /// </summary>
         /// <param name="client">The <see cref="IGremlinClient" /> that will be used for the connection.</param>
         /// <exception cref="ArgumentNullException">Thrown when client is null.</exception>
         public DriverRemoteConnection(IGremlinClient client):this(client, "g")
diff --git a/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Docs/Reference/IntroTests.cs b/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Docs/Reference/IntroTests.cs
index 63bc576..9df167a 100644
--- a/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Docs/Reference/IntroTests.cs
+++ b/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Docs/Reference/IntroTests.cs
@@ -25,10 +25,10 @@ using Gremlin.Net.Driver;
 using Gremlin.Net.Driver.Remote;
 using Gremlin.Net.Process.Traversal;
 // tag::traversalSourceUsing[]
+using Gremlin.Net.IntegrationTest.Process.Traversal.DriverRemoteConnection;
 using static Gremlin.Net.Process.Traversal.AnonymousTraversalSource;
 // end::traversalSourceUsing[]
 using Xunit;
-using Gremlin.Net.IntegrationTest.Process.Traversal.DriverRemoteConnection;
 
 namespace Gremlin.Net.IntegrationTest.Docs.Reference
 {
@@ -41,8 +41,7 @@ namespace Gremlin.Net.IntegrationTest.Docs.Reference
         public void TraversalSourceCreationTest()
         {
 // tag::traversalSourceCreation[]
-var g = Traversal().WithRemote(
-    new DriverRemoteConnection(new GremlinClient(new GremlinServer("localhost", 8182))));
+var g = Traversal().WithRemote(new DriverRemoteConnection("localhost", 8182));
 // end::traversalSourceCreation[]
         }
         
diff --git a/gremlin-python/src/main/jython/gremlin_python/driver/driver_remote_connection.py b/gremlin-python/src/main/jython/gremlin_python/driver/driver_remote_connection.py
index bc7b57b..df6ccd2 100644
--- a/gremlin-python/src/main/jython/gremlin_python/driver/driver_remote_connection.py
+++ b/gremlin-python/src/main/jython/gremlin_python/driver/driver_remote_connection.py
@@ -28,7 +28,7 @@ __author__ = 'David M. Brown (davebshow@gmail.com)'
 
 class DriverRemoteConnection(RemoteConnection):
 
-    def __init__(self, url, traversal_source, protocol_factory=None,
+    def __init__(self, url, traversal_source = "g", protocol_factory=None,
                  transport_factory=None, pool_size=None, max_workers=None,
                  username="", password="", message_serializer=None,
                  graphson_reader=None, graphson_writer=None,
diff --git a/gremlin-python/src/main/jython/tests/conftest.py b/gremlin-python/src/main/jython/tests/conftest.py
index 110c63c..c2e6376 100644
--- a/gremlin-python/src/main/jython/tests/conftest.py
+++ b/gremlin-python/src/main/jython/tests/conftest.py
@@ -118,7 +118,7 @@ def remote_connection(request):
 @pytest.fixture
 def remote_connection_v2(request):
     try:
-        remote_conn = DriverRemoteConnection(gremlin_server_url, 'g',
+        remote_conn = DriverRemoteConnection(gremlin_server_url,
                                              message_serializer=serializer.GraphSONSerializersV2d0())
     except OSError:
         pytest.skip('Gremlin Server is not running')

[tinkerpop] 02/03: Merge branch '3.4-dev' into 3.5-dev

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

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

commit 4fa7083bde9057db0faf790d43f864c2fbb0dc7d
Merge: 8b5d7b3 7dc8def
Author: Stephen Mallette <st...@amazon.com>
AuthorDate: Thu Jul 1 14:58:47 2021 -0400

    Merge branch '3.4-dev' into 3.5-dev

 CHANGELOG.asciidoc                                 |  2 ++
 docs/src/reference/intro.asciidoc                  | 16 +++++++++++++---
 .../Driver/Remote/DriverRemoteConnection.cs        | 22 ++++++++++++++++++++++
 .../Docs/Reference/IntroTests.cs                   |  5 ++---
 .../gremlin-javascript/package-lock.json           |  4 ++--
 .../driver/driver_remote_connection.py             |  2 +-
 gremlin-python/src/main/python/tests/conftest.py   |  2 +-
 7 files changed, 43 insertions(+), 10 deletions(-)

diff --cc gremlin-javascript/src/main/javascript/gremlin-javascript/package-lock.json
index 896bf5d,fc9e9e3..41c6b17
--- a/gremlin-javascript/src/main/javascript/gremlin-javascript/package-lock.json
+++ b/gremlin-javascript/src/main/javascript/gremlin-javascript/package-lock.json
@@@ -120,9 -3483,7 +120,9 @@@
        "dev": true
      },
      "async-limiter": {
 -      "version": "1.0.1"
 +      "version": "1.0.1",
 +      "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz",
-       "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ=="
++      "integrity": "sha1-3TeelPDbgxCwgpH51kwyCXZmF/0="
      },
      "atob": {
        "version": "2.1.2",
@@@ -2599,9 -5813,7 +2599,9 @@@
        "dev": true
      },
      "ws": {
 -      "version": "6.2.1",
 +      "version": "6.2.2",
 +      "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.2.tgz",
-       "integrity": "sha512-zmhltoSR8u1cnDsD43TX59mzoMZsLKqUweyYBAIvTngR3shc0W6aOZylZmq/7hqyVxPdi+5Ud2QInblgyE72fw==",
++      "integrity": "sha1-3Vzb1XqZeZFgl2UtePHMX66gwy4=",
        "requires": {
          "async-limiter": "~1.0.0"
        }
diff --cc gremlin-python/src/main/python/gremlin_python/driver/driver_remote_connection.py
index d5e4660,0000000..abc4a2c
mode 100644,000000..100644
--- a/gremlin-python/src/main/python/gremlin_python/driver/driver_remote_connection.py
+++ b/gremlin-python/src/main/python/gremlin_python/driver/driver_remote_connection.py
@@@ -1,87 -1,0 +1,87 @@@
 +#
 +# Licensed to the Apache Software Foundation (ASF) under one
 +# or more contributor license agreements.  See the NOTICE file
 +# distributed with this work for additional information
 +# regarding copyright ownership.  The ASF licenses this file
 +# to you under the Apache License, Version 2.0 (the
 +# "License"); you may not use this file except in compliance
 +# with the License.  You may obtain a copy of the License at
 +#
 +# http://www.apache.org/licenses/LICENSE-2.0
 +#
 +# Unless required by applicable law or agreed to in writing,
 +# software distributed under the License is distributed on an
 +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 +# KIND, either express or implied.  See the License for the
 +# specific language governing permissions and limitations
 +# under the License.
 +#
 +from concurrent.futures import Future
 +
 +from gremlin_python.driver import client, serializer
 +from gremlin_python.driver.remote_connection import (
 +    RemoteConnection, RemoteTraversal)
 +from gremlin_python.process.strategies import OptionsStrategy
 +
 +__author__ = 'David M. Brown (davebshow@gmail.com)'
 +
 +
 +class DriverRemoteConnection(RemoteConnection):
 +
-     def __init__(self, url, traversal_source, protocol_factory=None,
++    def __init__(self, url, traversal_source = "g", protocol_factory=None,
 +                 transport_factory=None, pool_size=None, max_workers=None,
 +                 username="", password="", kerberized_service='',
 +                 message_serializer=None, graphson_reader=None,
 +                 graphson_writer=None, headers=None,
 +                 **transport_kwargs):
 +        if message_serializer is None:
 +            message_serializer = serializer.GraphSONMessageSerializer(
 +                reader=graphson_reader,
 +                writer=graphson_writer)
 +        self._client = client.Client(url, traversal_source,
 +                                     protocol_factory=protocol_factory,
 +                                     transport_factory=transport_factory,
 +                                     pool_size=pool_size,
 +                                     max_workers=max_workers,
 +                                     message_serializer=message_serializer,
 +                                     username=username,
 +                                     password=password,
 +                                     kerberized_service=kerberized_service,
 +                                     headers=headers,
 +                                     **transport_kwargs)
 +        self._url = self._client._url
 +        self._traversal_source = self._client._traversal_source
 +
 +    def close(self):
 +        self._client.close()
 +
 +    def submit(self, bytecode):
 +        result_set = self._client.submit(bytecode, request_options=self._extract_request_options(bytecode))
 +        results = result_set.all().result()
 +        return RemoteTraversal(iter(results))
 +
 +    def submitAsync(self, bytecode):
 +        future = Future()
 +        future_result_set = self._client.submitAsync(bytecode, request_options=self._extract_request_options(bytecode))
 +
 +        def cb(f):
 +            try:
 +                result_set = f.result()
 +                results = result_set.all().result()
 +                future.set_result(RemoteTraversal(iter(results)))
 +            except Exception as e:
 +                future.set_exception(e)
 +
 +        future_result_set.add_done_callback(cb)
 +        return future
 +
 +    @staticmethod
 +    def _extract_request_options(bytecode):
 +        options_strategy = next((x for x in bytecode.source_instructions
 +                                 if x[0] == "withStrategies" and type(x[1]) is OptionsStrategy), None)
 +        request_options = None
 +        if options_strategy:
 +            allowed_keys = ['evaluationTimeout', 'scriptEvaluationTimeout', 'batchSize', 'requestId', 'userAgent']
 +            request_options = {allowed: options_strategy[1].configuration[allowed] for allowed in allowed_keys
 +                               if allowed in options_strategy[1].configuration}
 +        return request_options
diff --cc gremlin-python/src/main/python/tests/conftest.py
index 4f20a44,0000000..d858219
mode 100644,000000..100644
--- a/gremlin-python/src/main/python/tests/conftest.py
+++ b/gremlin-python/src/main/python/tests/conftest.py
@@@ -1,176 -1,0 +1,176 @@@
 +#
 +# Licensed to the Apache Software Foundation (ASF) under one
 +# or more contributor license agreements.  See the NOTICE file
 +# distributed with this work for additional information
 +# regarding copyright ownership.  The ASF licenses this file
 +# to you under the Apache License, Version 2.0 (the
 +# "License"); you may not use this file except in compliance
 +# with the License.  You may obtain a copy of the License at
 +# 
 +# http://www.apache.org/licenses/LICENSE-2.0
 +# 
 +# Unless required by applicable law or agreed to in writing,
 +# software distributed under the License is distributed on an
 +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 +# KIND, either express or implied.  See the License for the
 +# specific language governing permissions and limitations
 +# under the License.
 +#
 +
 +import concurrent.futures
 +import ssl
 +import pytest
 +import sys
 +import socket
 +
 +from six.moves import queue
 +
 +from gremlin_python.driver.client import Client
 +from gremlin_python.driver.connection import Connection
 +from gremlin_python.driver import serializer
 +from gremlin_python.driver.driver_remote_connection import (
 +    DriverRemoteConnection)
 +from gremlin_python.driver.protocol import GremlinServerWSProtocol
 +from gremlin_python.driver.serializer import (
 +    GraphSONMessageSerializer, GraphSONSerializersV2d0, GraphSONSerializersV3d0,
 +    GraphBinarySerializersV1)
 +from gremlin_python.driver.aiohttp.transport import AiohttpTransport
 +
 +gremlin_server_url = 'ws://localhost:{}/gremlin'
 +anonymous_url = gremlin_server_url.format(45940)
 +basic_url = 'wss://localhost:{}/gremlin'.format(45941)
 +kerberos_url = gremlin_server_url.format(45942)
 +kerberized_service = 'test-service@{}'.format(socket.gethostname())
 +
 +
 +@pytest.fixture
 +def connection(request):
 +    protocol = GremlinServerWSProtocol(
 +        GraphSONMessageSerializer(),
 +        username='stephen', password='password')
 +    executor = concurrent.futures.ThreadPoolExecutor(5)
 +    pool = queue.Queue()
 +    try:
 +        conn = Connection(anonymous_url, 'gmodern', protocol,
 +                          lambda: AiohttpTransport(), executor, pool)
 +    except OSError:
 +        executor.shutdown()
 +        pytest.skip('Gremlin Server is not running')
 +    else:
 +        def fin():
 +            executor.shutdown()
 +            conn.close()
 +        request.addfinalizer(fin)
 +        return conn
 +
 +
 +@pytest.fixture
 +def client(request):
 +    try:
 +        client = Client(anonymous_url, 'gmodern')
 +    except OSError:
 +        pytest.skip('Gremlin Server is not running')
 +    else:
 +        def fin():
 +            client.close()
 +        request.addfinalizer(fin)
 +        return client
 +
 +
 +@pytest.fixture(params=['basic', 'kerberos'])
 +def authenticated_client(request):
 +    try:
 +        if request.param == 'basic':
 +            # turn off certificate verification for testing purposes only
 +            ssl_opts = ssl.SSLContext(ssl.PROTOCOL_TLSv1_2)
 +            ssl_opts.verify_mode = ssl.CERT_NONE
 +            client = Client(basic_url, 'gmodern', username='stephen', password='password',
 +                            transport_factory=lambda: AiohttpTransport(ssl_options=ssl_opts))
 +        elif request.param == 'kerberos':
 +            client = Client(kerberos_url, 'gmodern', kerberized_service=kerberized_service)
 +        else:
 +            raise ValueError("Invalid authentication option - " + request.param)
 +    except OSError:
 +        pytest.skip('Gremlin Server is not running')
 +    else:
 +        def fin():
 +            client.close()
 +        request.addfinalizer(fin)
 +        return client
 +
 +
 +@pytest.fixture(params=['graphsonv2', 'graphsonv3', 'graphbinaryv1'])
 +def remote_connection(request):
 +    try:
 +        if request.param == 'graphbinaryv1':
 +            remote_conn = DriverRemoteConnection(anonymous_url, 'gmodern',
 +                                                 message_serializer=serializer.GraphBinarySerializersV1())
 +        elif request.param == 'graphsonv2':
 +            remote_conn = DriverRemoteConnection(anonymous_url, 'gmodern',
 +                                                 message_serializer=serializer.GraphSONSerializersV2d0())
 +        elif request.param == 'graphsonv3':
 +            remote_conn = DriverRemoteConnection(anonymous_url, 'gmodern',
 +                                                 message_serializer=serializer.GraphSONSerializersV3d0())
 +        else:
 +            raise ValueError("Invalid serializer option - " + request.param)
 +    except OSError:
 +        pytest.skip('Gremlin Server is not running')
 +    else:
 +        def fin():
 +            remote_conn.close()
 +        request.addfinalizer(fin)
 +        return remote_conn
 +
 +
 +@pytest.fixture(params=['basic', 'kerberos'])
 +def remote_connection_authenticated(request):
 +    try:
 +        if request.param == 'basic':
 +            # turn off certificate verification for testing purposes only
 +            ssl_opts = ssl.SSLContext(ssl.PROTOCOL_TLSv1_2)
 +            ssl_opts.verify_mode = ssl.CERT_NONE
 +            remote_conn = DriverRemoteConnection(basic_url, 'gmodern',
 +                                                 username='stephen', password='password',
 +                                                 message_serializer=serializer.GraphSONSerializersV2d0(),
 +                                                 transport_factory=lambda: AiohttpTransport(ssl_options=ssl_opts))
 +        elif request.param == 'kerberos':
 +            remote_conn = DriverRemoteConnection(kerberos_url, 'gmodern', kerberized_service=kerberized_service,
 +                                                 message_serializer=serializer.GraphSONSerializersV2d0())
 +        else:
 +            raise ValueError("Invalid authentication option - " + request.param)
 +    except OSError:
 +        pytest.skip('Gremlin Server is not running')
 +    else:
 +        def fin():
 +            remote_conn.close()
 +        request.addfinalizer(fin)
 +        return remote_conn
 +
 +
 +@pytest.fixture
 +def remote_connection_graphsonV2(request):
 +    try:
-         remote_conn = DriverRemoteConnection(anonymous_url, 'g',
++        remote_conn = DriverRemoteConnection(anonymous_url,
 +                                             message_serializer=serializer.GraphSONSerializersV2d0())
 +    except OSError:
 +        pytest.skip('Gremlin Server is not running')
 +    else:
 +        def fin():
 +            remote_conn.close()
 +        request.addfinalizer(fin)
 +        return remote_conn
 +
 +
 +@pytest.fixture
 +def graphson_serializer_v2(request):
 +    return GraphSONSerializersV2d0()
 +
 +
 +@pytest.fixture
 +def graphson_serializer_v3(request):
 +    return GraphSONSerializersV3d0()
 +
 +
 +@pytest.fixture
 +def graphbinary_serializer_v1(request):
 +    return GraphBinarySerializersV1()

[tinkerpop] 03/03: Merge branch '3.5-dev'

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

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

commit 1b4f3e0dee540b5d23ad707e9c8d70827a465be8
Merge: 15c7504 4fa7083
Author: Stephen Mallette <st...@amazon.com>
AuthorDate: Thu Jul 1 14:58:57 2021 -0400

    Merge branch '3.5-dev'

 CHANGELOG.asciidoc                                 |  2 ++
 docs/src/reference/intro.asciidoc                  | 16 +++++++++++++---
 .../Driver/Remote/DriverRemoteConnection.cs        | 22 ++++++++++++++++++++++
 .../Docs/Reference/IntroTests.cs                   |  5 ++---
 .../driver/driver_remote_connection.py             |  2 +-
 gremlin-python/src/main/python/tests/conftest.py   |  2 +-
 6 files changed, 41 insertions(+), 8 deletions(-)