[ 
https://issues.apache.org/jira/browse/TINKERPOP-3055?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17947061#comment-17947061
 ] 

ASF GitHub Bot commented on TINKERPOP-3055:
-------------------------------------------

spmallette commented on code in PR #3099:
URL: https://github.com/apache/tinkerpop/pull/3099#discussion_r2058620168


##########
docs/src/reference/gremlin-variants.asciidoc:
##########
@@ -1396,6 +1396,29 @@ can be passed in the constructor of a new `Client` or 
`DriverRemoteConnection` :
 |options.pongTimeout |Number |Timeout of pong response in ms after sending a 
ping. |30000
 |=========================================================
 
+[[gremlin-javascript-strategies]]
+=== Traversal Strategies
+
+In order to add and remove <<traversalstrategy,traversal strategies>> from a 
traversal source, Gremlin-Javascript has a
+`TraversalStrategy` class along with a collection of subclasses that mirror 
the standard Gremlin-Java strategies.
+
+[source,javascript]
+----
+// use the class name for the strategy directly for withoutStrategies()
+g.withoutStrategies(InlineFilterStrategy);

Review Comment:
   not sure. i'm not sure how new users think about strategies. like to me, 
knowing how TinkerPop works, i wouldn't find that intuitive at all. but...maybe 
some folks would would wonder why in one case you need the type but others the 
instance. anyway, i'd prefer not to tackle that question here. it could be 
introduced as a non-breaking change at any point technically so if you'd like 
to propose it as something separate from this change, it could be discussed.





> withoutStrategies() mechanism in programming languages for providers
> --------------------------------------------------------------------
>
>                 Key: TINKERPOP-3055
>                 URL: https://issues.apache.org/jira/browse/TINKERPOP-3055
>             Project: TinkerPop
>          Issue Type: Improvement
>          Components: dotnet, go, javascript, process, python
>    Affects Versions: 3.7.1
>            Reporter: Stephen Mallette
>            Priority: Major
>
> {{withoutStrategies()}} is in the grammar for TINKERPOP-2862. That change did 
> not address its accessibility for provider strategies in language variants 
> very well. As the syntax requires a {{Class}} (and for the grammar, a 
> registered strategy class) you may not have that reference in a language 
> variant. Users could create dummy classes as the grammar works on simple 
> name, but that's not especially nice. Otoh, most users shouldn't be tinkering 
> with strategies so perhaps that's ok? It could be inconvenient for notebook 
> users and similar tools though to create the dummy. A simple alternative 
> could just be a {{withoutStrategies(String...)}} but that's not particularly 
> nice. Other ideas?
> needs a general look at all strategy construction across all languages:
> 1. check if the strategy construction makes sense in terms of types and 
> syntax in each language
> 2. watch out for wrong types being parsed into {{Configuration}} which can 
> lead to weird looking errors. 
> 3. are there adequate tests to validate all our syntax is working. we 
> technically need to test every strategy configuration options as those 
> corners are where bugs can hide.
> 4. double check {{List}} vs {{Set}} syntax because {{Set}} might be preferred 
> but a lot of folks will reach for {{[ ]}} just out of habit....do we want 
> them failing for that? can we ease the type there without losing {{Set}} in 
> type safe languages?



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to