[GitHub] [tinkerpop] jorgebay commented on pull request #1547: Add GraphBinary serialization support to gremlin-javascript

2022-02-07 Thread GitBox


jorgebay commented on pull request #1547:
URL: https://github.com/apache/tinkerpop/pull/1547#issuecomment-1031211265


   > passed using current state of GraphBinary
   
   NICE!!!


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscr...@tinkerpop.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org




[tinkerpop] branch 3.5-dev updated: docs: Fix GraphBinary enum like types specification

2022-02-07 Thread jorgebg
This is an automated email from the ASF dual-hosted git repository.

jorgebg pushed a commit to branch 3.5-dev
in repository https://gitbox.apache.org/repos/asf/tinkerpop.git


The following commit(s) were added to refs/heads/3.5-dev by this push:
 new a34280d  docs: Fix GraphBinary enum like types specification
 new cbb3bea  Merge pull request #1560 from ihoro/fix-graphbinary-enum-spec
a34280d is described below

commit a34280dc030b6aaffaf36509b60e38dec2da5073
Author: Igor Ostapenko 
AuthorDate: Thu Feb 3 20:24:39 2022 +0200

docs: Fix GraphBinary enum like types specification

Enum like types (Barrier, Cardinality, Column, Direction, Operator, Order,
Pick, Pop, Scope, T) should provide enum element name as a fully-qualified
string, i.e. as {type_code}{type_info}{value_flag}{value}.
---
 docs/src/dev/io/graphbinary.asciidoc | 20 ++--
 1 file changed, 10 insertions(+), 10 deletions(-)

diff --git a/docs/src/dev/io/graphbinary.asciidoc 
b/docs/src/dev/io/graphbinary.asciidoc
index ecec755..9403857 100644
--- a/docs/src/dev/io/graphbinary.asciidoc
+++ b/docs/src/dev/io/graphbinary.asciidoc
@@ -356,7 +356,7 @@ properties. Note that as TinkerPop currently send 
"references" only, this value
 
  Barrier
 
-Format: a single `String` representing the enum value.
+Format: a fully qualified single `String` representing the enum value.
 
  Binding
 
@@ -386,31 +386,31 @@ Where:
 
  Cardinality
 
-Format: a single `String` representing the enum value.
+Format: a fully qualified single `String` representing the enum value.
 
  Column
 
-Format: a single `String` representing the enum value.
+Format: a fully qualified single `String` representing the enum value.
 
  Direction
 
-Format: a single `String` representing the enum value.
+Format: a fully qualified single `String` representing the enum value.
 
  Operator
 
-Format: a single `String` representing the enum value.
+Format: a fully qualified single `String` representing the enum value.
 
  Order
 
-Format: a single `String` representing the enum value.
+Format: a fully qualified single `String` representing the enum value.
 
  Pick
 
-Format: a single `String` representing the enum value.
+Format: a fully qualified single `String` representing the enum value.
 
  Pop
 
-Format: a single `String` representing the enum value.
+Format: a fully qualified single `String` representing the enum value.
 
  Lambda
 
@@ -433,11 +433,11 @@ Where:
 
  Scope
 
-Format: a single `String` representing the enum value.
+Format: a fully qualified single `String` representing the enum value.
 
  T
 
-Format: a single `String` representing the enum value.
+Format: a fully qualified single `String` representing the enum value.
 
  Traverser
 


[GitHub] [tinkerpop] jorgebay merged pull request #1560: docs: Fix GraphBinary enum like types specification

2022-02-07 Thread GitBox


jorgebay merged pull request #1560:
URL: https://github.com/apache/tinkerpop/pull/1560


   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscr...@tinkerpop.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org




[tinkerpop] 01/01: Merge remote-tracking branch 'origin/3.5-dev'

2022-02-07 Thread spmallette
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 de4e35353e298ec0a029dd698368c353a19a6f24
Merge: 71b335f cbb3bea
Author: Stephen Mallette 
AuthorDate: Mon Feb 7 06:31:55 2022 -0500

Merge remote-tracking branch 'origin/3.5-dev'

 docs/src/dev/io/graphbinary.asciidoc | 20 ++--
 1 file changed, 10 insertions(+), 10 deletions(-)


[tinkerpop] branch master updated (71b335f -> de4e353)

2022-02-07 Thread spmallette
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 71b335f  Remove gryo message tests
 add a34280d  docs: Fix GraphBinary enum like types specification
 add cbb3bea  Merge pull request #1560 from ihoro/fix-graphbinary-enum-spec
 new de4e353  Merge remote-tracking branch 'origin/3.5-dev'

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.


Summary of changes:
 docs/src/dev/io/graphbinary.asciidoc | 20 ++--
 1 file changed, 10 insertions(+), 10 deletions(-)


[tinkerpop] 01/02: Prevent creation of vertices if they do not exist for mergeE()

2022-02-07 Thread spmallette
This is an automated email from the ASF dual-hosted git repository.

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

commit 2337b5a96b18600b3b684da09c2fe22983d31975
Author: Stephen Mallette 
AuthorDate: Sat Feb 5 09:52:48 2022 -0500

Prevent creation of vertices if they do not exist for mergeE()
---
 .../process/traversal/step/map/MergeEdgeStep.java  | 28 +++
 .../Gremlin.Net.IntegrationTest/Gherkin/Gremlin.cs |  5 +--
 .../gremlin-javascript/test/cucumber/gremlin.js|  5 +--
 gremlin-python/src/main/python/radish/gremlin.py   |  5 +--
 gremlin-test/features/map/MergeEdge.feature| 40 --
 .../process/traversal/step/map/MergeEdgeTest.java  | 17 +
 6 files changed, 71 insertions(+), 29 deletions(-)

diff --git 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/MergeEdgeStep.java
 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/MergeEdgeStep.java
index 94d4273..7734f95 100644
--- 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/MergeEdgeStep.java
+++ 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/MergeEdgeStep.java
@@ -279,6 +279,13 @@ public class MergeEdgeStep extends FlatMapStep 
implements Mutating keyValues = new ArrayList<>();
 String label = Edge.DEFAULT_LABEL;
 
@@ -292,11 +299,9 @@ public class MergeEdgeStep extends FlatMapStep 
implements Mutating) entry.getValue())
-
.attach(Attachable.Method.getOrCreate(this.getTraversal().getGraph().orElse(EmptyGraph.instance(;
+toV = tryAttachVertex((Attachable) 
entry.getValue());
 } else if (useOnCreate && 
entry.getKey().equals(Direction.OUT)) {
-fromV = ((Attachable) entry.getValue())
-
.attach(Attachable.Method.getOrCreate(this.getTraversal().getGraph().orElse(EmptyGraph.instance(;
+fromV = tryAttachVertex((Attachable) 
entry.getValue());
 }
 } else if (entry.getKey().equals(T.label)) {
 label = (String) entry.getValue();
@@ -335,14 +340,25 @@ public class MergeEdgeStep extends FlatMapStep implements Mutating) v)
-
.attach(Attachable.Method.getOrCreate(this.getTraversal().getGraph().orElse(EmptyGraph.instance(;
+return tryAttachVertex((Attachable) v);
 } else {
 return v;
 }
 }
 
 /**
+ * Tries to attach a {@link Vertex} to its host {@link Graph} of the 
traversal. If the {@link Vertex} cannot be
+ * found then an {@code IllegalArgumentException} is expected.
+ */
+protected Vertex tryAttachVertex(final Attachable attachable) {
+try {
+return 
attachable.attach(Attachable.Method.get(this.getTraversal().getGraph().orElse(EmptyGraph.instance(;
+} catch (IllegalStateException ise) {
+throw new IllegalArgumentException(String.format("%s could not be 
found and edge could not be created", attachable));
+}
+}
+
+/**
  * Validates input to any {@code Map} arguments to this step. For {@link 
Merge#onMatch} updates cannot be applied
  * to immutable parts of an {@link Edge} (id, label, incident vertices) so 
those can be ignored in the validation.
  */
diff --git a/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/Gremlin.cs 
b/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/Gremlin.cs
index d600ff9..95c4069 100644
--- a/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/Gremlin.cs
+++ b/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/Gremlin.cs
@@ -505,8 +505,8 @@ namespace Gremlin.Net.IntegrationTest.Gherkin

{"g_withSideEffectXa_label_knows_out_marko_in_vadasX_mergeEXselectXaXX", new 
List, ITraversal>> 
{(g,p) 
=>g.AddV("person").Property(T.Id,100).Property("name","marko").AddV("person").Property(T.Id,101).Property("name","vadas"),
 (g,p) =>g.WithSideEffect("a",p["xx1"]).MergeE((IDictionary) 
__.Select("a")), (g,p) 
=>g.V().Has("person","name","marko").Out("knows").Has("person","name","vadas")}},
 
{"g_mergeEXlabel_knows_out_marko1_in_vadas1X", new 
List, ITraversal>> 
{(g,p) 
=>g.AddV("person").Property(T.Id,100).Property("name","marko").AddV("person").Property(T.Id,101).Property("name","vadas"),
 (g,p) =>g.MergeE((IDictionary) p["xx1"]), (g,p) 
=>g.V().Has("person","name","marko").Out("knows").Has("person","name","vadas")}},
 
{"g_mergeEXlabel_knows_out_marko_in_vadas_weight_05X_exists", 
new List, ITraversal>> 
{(g,p) 
=>g.AddV("person").Property(T.Id,100).Property("name","marko").As("a").AddV("person").Property(T.Id,101).Property("name","vadas").As("b").AddE("knows").From("a").To("b"),
 (g,p) =>g.MergeE((IDictionary) p["xx1"]), (g,p)

[tinkerpop] 02/02: TINKERPOP-2681 Finalize mergeV semantics around null/empty args

2022-02-07 Thread spmallette
This is an automated email from the ASF dual-hosted git repository.

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

commit 8939d5ea4a1ad7dcf27c5b9c807ae17fa93078ad
Author: Stephen Mallette 
AuthorDate: Mon Feb 7 07:27:45 2022 -0500

TINKERPOP-2681 Finalize mergeV semantics around null/empty args
---
 docs/src/dev/provider/gremlin-semantics.asciidoc   |  66 
 .../language/grammar/TraversalMethodVisitor.java   |  10 ++
 .../grammar/TraversalSourceSpawnMethodVisitor.java |   6 ++
 .../traversal/step/map/MergeVertexStep.java|  90 ++--
 gremlin-language/src/main/antlr4/Gremlin.g4|  11 +-
 gremlin-test/features/map/MergeVertex.feature  | 116 +
 .../traversal/step/map/TinkerMergeVertexStep.java  |   4 +-
 7 files changed, 263 insertions(+), 40 deletions(-)

diff --git a/docs/src/dev/provider/gremlin-semantics.asciidoc 
b/docs/src/dev/provider/gremlin-semantics.asciidoc
index 3bb1244..c6a0223 100644
--- a/docs/src/dev/provider/gremlin-semantics.asciidoc
+++ b/docs/src/dev/provider/gremlin-semantics.asciidoc
@@ -590,3 +590,69 @@ Same as Comparability, except orderability semantics apply 
for element compariso
 * If the unknown arguments are of different types or do not define a natural 
order, order first by Classname, then
 by `Object.toString()`.
 
+== Steps
+
+While TinkerPop has a full test suite for validating functionality of Gremlin, 
tests alone aren't always exhaustive or
+fully demonstrative of Gremlin step semantics. It is also hard to simply read 
the tests to understand exactly how a
+step is meant to behave. This section discusses the semantics for individual 
steps to help users and providers
+understand implementation expectations.
+
+=== mergeE()
+
+
+
+=== mergeV()
+
+*Description:* Provides upsert-like functionality for vertices.
+*Syntax:* `mergeV()` | `mergeV(Map)` | `mergeV(Traversal)`
+
+[width="100%",options="header"]
+|=
+|Start Step |Mid Step |Modulated |Domain |Range
+|Y |Y |`option()` |`Map` |`Vertex`
+
+*Arguments:*
+
+* `searchCreate` - A `Map` used to match a `Vertex` and if not found be the 
default set of data to create the new one.
+* `onCreate` - A `Map` that is the override to the default of `searchCreate`
+* `onMatch` - A `Map` used to update the `Vertex` that is found using the 
`searchCreate` criteria.
+
+The `searchCreate` and `onCreate` `Map` instances must consists of any 
combination of `T.id`, `T.label`, or arbitrary
+`String` keys (which are assumed to be vertex properties). The `onMatch` `Map` 
instance only allows for `String` keys
+as the `id` and `label` of a `Vertex` are immutable. Values for these valid 
keys that are `null` will be treated
+according to the semantics of the `addV()` step.
+
+The `Map` that is used as the argument for `searchCreate` may be assigned from 
the incoming `Traverser` for the no-arg
+`mergeV()`. If `mergeV(Map)` is used, then it will override the incoming 
`Traverser`. If `mergeV(Traversal)` is used,
+the `Traversal` argument must resolve to a `Map` and it would also override 
the incoming Traverser. The `onCreate` and
+`onMatch` arguments are assigned via modulation as described below.
+
+[width="100%",options="header"]
+|=
+|Event |Null `Map` |Empty `Map`
+|Search |Filters all vertices |Matches all vertices
+|Create |No new vertex |New vertex with defaults
+|Update |No update to matched vertex |No update to matched vertex
+|=
+
+If `T.id` is used for `searchCreate` or `onCreate`, it may be ignored for 
vertex creation if the `Graph` does not
+support user supplied identifiers.
+
+*Modulation:*
+
+* `option(Merge, Map)` - Sets the `onCreate` or `onMatch` arguments directly.
+* `option(Merge, Traversal)` - Sets the `onCreate` or `onMatch` arguments 
dynamically where the `Traversal` must
+resolve to a `Map`.
+
+*Exceptions*
+
+* `Map` arguments are validated for their keys resulting in exception if they 
do not meet requirements defined above.
+* Use of `T.label` should always have a value that is a `String`.
+
+*Considerations:*
+
+* `mergeV()` Can only be used mid-traversal. It is not a start step.
+* As is common to Gremlin, it is expected that `Traversal` arguments may 
utilize `sideEffect()` steps.
+
+See: 
link:https://github.com/apache/tinkerpop/tree/master/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/MergeVertexStep.java[source],
+link:https://tinkerpop.apache.org/docs/current/reference/#mergev-step[reference]
\ No newline at end of file
diff --git 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/grammar/TraversalMethodVisitor.java
 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/grammar/TraversalMethodVisitor.java
index ed1ae19..ed630cc 100644
--- 
a/gr

[tinkerpop] branch TINKERPOP-2681 updated (ce3924c -> 8939d5e)

2022-02-07 Thread spmallette
This is an automated email from the ASF dual-hosted git repository.

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


from ce3924c  Added from/to aliases for Direction OUT/IN
 new 2337b5a  Prevent creation of vertices if they do not exist for mergeE()
 new 8939d5e  TINKERPOP-2681 Finalize mergeV semantics around null/empty 
args

The 2 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:
 docs/src/dev/provider/gremlin-semantics.asciidoc   |  66 
 .../language/grammar/TraversalMethodVisitor.java   |  10 ++
 .../grammar/TraversalSourceSpawnMethodVisitor.java |   6 ++
 .../process/traversal/step/map/MergeEdgeStep.java  |  28 +++--
 .../traversal/step/map/MergeVertexStep.java|  90 ++--
 .../Gremlin.Net.IntegrationTest/Gherkin/Gremlin.cs |   5 +-
 .../gremlin-javascript/test/cucumber/gremlin.js|   5 +-
 gremlin-language/src/main/antlr4/Gremlin.g4|  11 +-
 gremlin-python/src/main/python/radish/gremlin.py   |   5 +-
 gremlin-test/features/map/MergeEdge.feature|  40 +--
 gremlin-test/features/map/MergeVertex.feature  | 116 +
 .../process/traversal/step/map/MergeEdgeTest.java  |  17 +--
 .../traversal/step/map/TinkerMergeVertexStep.java  |   4 +-
 13 files changed, 334 insertions(+), 69 deletions(-)


[GitHub] [tinkerpop] divijvaidya commented on a change in pull request #1556: Milestone 1 of the gremlin-go driver

2022-02-07 Thread GitBox


divijvaidya commented on a change in pull request #1556:
URL: https://github.com/apache/tinkerpop/pull/1556#discussion_r800879591



##
File path: gremlin-go/go.mod
##
@@ -0,0 +1,18 @@
+module github.com/lyndonb-bq/tinkerpop/gremlin-go
+
+go 1.17
+
+require (
+   github.com/google/uuid v1.3.0

Review comment:
   please ensure that the libraries satisfies the Apache requirement for 
third party libraries. https://www.apache.org/legal/resolved.html#category-a

##
File path: gremlin-go/driver/connection.go
##
@@ -0,0 +1,68 @@
+/*
+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.
+*/
+
+package gremlingo
+
+type connection struct {

Review comment:
   From my experience of maintaining other clients, I have observed that 
making a concept of `state` in multiple client entities could be very useful 
for debugging.
   
   My suggestion would be to add stateful transition to the lifecycle of a 
connection such as:
   Initialised
   Connection With Remote Initiated
   Connection With Remote Established
   Close request received
   Close in progress
   Closed
   
   These state transitions help us model various edge cases such as what 
happens when a connection receives a message to disconnect when it is in 
"Connection With Remote Initiated" state.
   
   
   

##
File path: gremlin-go/driver/connection.go
##
@@ -0,0 +1,68 @@
+/*
+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.
+*/
+
+package gremlingo
+
+type connection struct {
+   hoststring
+   portint
+   transporterType TransporterType
+   logHandler  *logHandler
+   transporter transporter
+   protocolprotocol
+   results map[string]ResultSet
+}
+
+func (connection *connection) close() (err error) {
+   if connection.transporter != nil {
+   err = connection.transporter.Close()
+   }
+   return
+}
+
+func (connection *connection) connect() error {
+   if connection.transporter != nil {
+   closeErr := connection.transporter.Close()
+   connection.logHandler.logf(Warning, transportCloseFailed, 
closeErr)
+   }
+   connection.protocol = newGremlinServerWSProtocol(connection.logHandler)
+   connection.transporter = getTransportLayer(connection.transporterType, 
connection.host, connection.port)
+   err := connection.transporter.Connect()
+   if err != nil {
+   return err
+   }
+   connection.protocol.connectionMade(connection.transporter)
+   return nil
+}
+
+func (connection *connection) write(request *request) (ResultSet, error) {
+   if connection.transporter == nil || connection.transporter.IsClosed() {
+   err := connection.connect()

Review comment:
   Let's keep things simple and not retry to re-connect here. A connection 
should be in "connected" state if we want to write on it. Else throw an error 
about illegal state and the upper layers should choose a different connection 
to work with.

##
File path: gremlin-go/driver/serializer.go
##
@@ -0,0 +1,343 @@
+/*
+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.a

[tinkerpop] branch TINKERPOP-2681 updated (8939d5e -> 3b187a5)

2022-02-07 Thread spmallette
This is an automated email from the ASF dual-hosted git repository.

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


from 8939d5e  TINKERPOP-2681 Finalize mergeV semantics around null/empty 
args
 add 3b187a5  TINKERPOP-2681 Fixed problems with GLVs processing null

No new revisions were added by this update.

Summary of changes:
 .../traversal/dsl/graph/GraphTraversal.java|  6 +-
 .../traversal/translator/DotNetTranslator.java |  4 +-
 .../traversal/translator/DotNetTranslatorTest.java |  8 +++
 gremlin-dotnet/build/generate.groovy   | 10 +++
 .../Gremlin.Net.IntegrationTest/Gherkin/Gremlin.cs |  7 ++
 .../ast/AmbiguousMethodASTTransformation.groovy| 82 ++
 .../jsr223/GremlinGroovyScriptEngineTest.java  | 22 --
 gremlin-javascript/build/generate.groovy   | 11 +++
 .../gremlin-javascript/test/cucumber/gremlin.js|  7 ++
 gremlin-python/build/generate.groovy   | 10 +++
 gremlin-python/src/main/python/radish/gremlin.py   |  7 ++
 11 files changed, 164 insertions(+), 10 deletions(-)
 create mode 100644 
gremlin-groovy/src/main/groovy/org/apache/tinkerpop/gremlin/groovy/jsr223/ast/AmbiguousMethodASTTransformation.groovy


[tinkerpop] branch TINKERPOP-2681 updated (3b187a5 -> 756d464)

2022-02-07 Thread spmallette
This is an automated email from the ASF dual-hosted git repository.

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


from 3b187a5  TINKERPOP-2681 Fixed problems with GLVs processing null
 add 756d464  mergeE() fixup

No new revisions were added by this update.

Summary of changes:
 .../process/traversal/step/map/MergeEdgeStep.java  |  6 --
 gremlin-test/features/map/MergeEdge.feature| 23 ++
 2 files changed, 27 insertions(+), 2 deletions(-)


[GitHub] [tinkerpop] lyndonb-bq commented on a change in pull request #1556: Milestone 1 of the gremlin-go driver

2022-02-07 Thread GitBox


lyndonb-bq commented on a change in pull request #1556:
URL: https://github.com/apache/tinkerpop/pull/1556#discussion_r801084685



##
File path: gremlin-go/driver/graphTraversalSource.go
##
@@ -0,0 +1,23 @@
+/*
+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.
+*/
+
+package gremlingo
+
+type GraphTraversalSource interface {

Review comment:
   @divijvaidya 
   
   > Thank you for taking up this body of work.
   > 
   > Please add a style guide for GoLang that other future develops 
contributing to this code would follow.
   > 
   > I added very initial comments based on first look. I will delve deeper 
into this PR in the coming days but as a general rule of thumb we would try to 
apply the learnings from structure of other clients and improve this one. 
Primary focus will be testability and debuggability of the client.
   
   Thanks for reviewing Divij, we will definitely look into that. We are having 
a bit of a hard time with the initial structure because of the way Golang works 
- if we move a file to a subfolder, it can now only access public facing 
structs of other classes within the project. However as we get more components 
in, I think we can begin to organize this better. We look forward to the 
feedback you will be giving and will incorporate it into the coming Milestones.




-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscr...@tinkerpop.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org