[GitHub] tinkerpop issue #842: TINKERPOP-1945

2018-08-15 Thread danielcweber
Github user danielcweber commented on the issue:

https://github.com/apache/tinkerpop/pull/842
  
Done!


---


[GitHub] tinkerpop issue #842: TINKERPOP-1945

2018-08-15 Thread spmallette
Github user spmallette commented on the issue:

https://github.com/apache/tinkerpop/pull/842
  
I proposed the listing on the dev list...the preview release is nice, but 
could you reference it in your README so that it's clear. Also, please include 
mention of "Apache TinkerPop™" in reference to "Gremlin" - thanks.


---


[GitHub] tinkerpop issue #842: TINKERPOP-1945

2018-08-14 Thread jorgebay
Github user jorgebay commented on the issue:

https://github.com/apache/tinkerpop/pull/842
  
Great work @danielcweber ! Thanks for your patience during the process.


---


[GitHub] tinkerpop issue #842: TINKERPOP-1945

2018-08-13 Thread danielcweber
Github user danielcweber commented on the issue:

https://github.com/apache/tinkerpop/pull/842
  
Alright, thanks!


---


[GitHub] tinkerpop issue #842: TINKERPOP-1945

2018-08-13 Thread spmallette
Github user spmallette commented on the issue:

https://github.com/apache/tinkerpop/pull/842
  
I'm not personally in touch with anyone over there really. I usually just 
ping folks over there on twitter if I need to convey/ask something - try Luis 
Bosquez:

https://twitter.com/_lbosq




---


[GitHub] tinkerpop issue #842: TINKERPOP-1945

2018-08-13 Thread danielcweber
Github user danielcweber commented on the issue:

https://github.com/apache/tinkerpop/pull/842
  
Thanks a lot for the twitter mention! In a completely unrelated issue, is 
anybody of your team in contact with the graph implementors over at CosmosDB? I 
have no luck in getting [this 
issue](https://feedback.azure.com/forums/263030-azure-cosmos-db/suggestions/33998623-cosmosdb-s-implementation-of-the-tinkerpop-dsl-has)
 across and I wonder if there's a workaround I haven't thought of yet...


---


[GitHub] tinkerpop issue #842: TINKERPOP-1945

2018-08-13 Thread spmallette
Github user spmallette commented on the issue:

https://github.com/apache/tinkerpop/pull/842
  
nice @FlorianHockmann - i will manually close this PR now

@danielcweber hope we get to see some more pull requests from you in the 
future. really nicely done - i bragged about your effort on twitter: 
https://twitter.com/spmallette/status/1029033230228447232


---


[GitHub] tinkerpop issue #842: TINKERPOP-1945

2018-08-13 Thread danielcweber
Github user danielcweber commented on the issue:

https://github.com/apache/tinkerpop/pull/842
  
I guess it could qualify for the listing with some minor tweaks. It doesn't 
have a release yet (things get deliberately broken by me all the time, so it's 
at most in some version 0.x, if there was a release), and, well, there is 
__some__ documentation... I will update the docs to reflect what it can already 
do today, and probably even package a preview nuget. Thanks for the offer!


---


[GitHub] tinkerpop issue #842: TINKERPOP-1945

2018-08-13 Thread spmallette
Github user spmallette commented on the issue:

https://github.com/apache/tinkerpop/pull/842
  
neat - I'd be happy to suggest adding it to our provider index on the 
tinkerpop home page assuming it meets the listing policy:

http://tinkerpop.apache.org/policy.html

please let me know if that's something you'd like to see and if so, whether 
or not you think you meet the policy.


---


[GitHub] tinkerpop issue #842: TINKERPOP-1945

2018-08-13 Thread danielcweber
Github user danielcweber commented on the issue:

https://github.com/apache/tinkerpop/pull/842
  
Thanks for accepting the contribution!

For what it's worth, I am developing a [type-safe 
ORM](https://github.com/ExRam/ExRam.Gremlinq) (abusing the 'R' in ORM a bit ;-) 
on top of Gremlin.net, (among others). If this is of any interest for you wrt. 
to the Tinkerpop repo, let me know!


---


[GitHub] tinkerpop issue #842: TINKERPOP-1945

2018-08-13 Thread FlorianHockmann
Github user FlorianHockmann commented on the issue:

https://github.com/apache/tinkerpop/pull/842
  
I think I found the cause of the problem: We're using `dynamic` in 
Gremlin.Net which requires the `Microsoft.CSharp` package. We always got that 
package because Newtonsoft.Json also had a dependency on it. However, 
Newtonsoft.Json seems to not use it anymore for .NET Standard 2.0:


.NETStandard 1.3

Microsoft.CSharp (>= 4.3.0)
NETStandard.Library (>= 1.6.1)
System.ComponentModel.TypeConverter (>= 4.3.0)
System.Runtime.Serialization.Formatters (>= 4.3.0)
System.Runtime.Serialization.Primitives (>= 4.3.0)
System.Xml.XmlDocument (>= 4.3.0)

.NETStandard 2.0

No dependencies.

So, we're now getting errors for every use of `dynamic` with .NET Standard 
2.0 as the target framework. I'm now adding a direct dependency on 
Microsoft.CSharp to Gremlin.Net. So, this can't happen again, even if 
Newtonsoft.Json would get completely rid of that dependency.
We already had that dependency before, it was only kind of _hidden_ behind 
our dependency on Newtonsoft.Json.


---


[GitHub] tinkerpop issue #842: TINKERPOP-1945

2018-08-13 Thread spmallette
Github user spmallette commented on the issue:

https://github.com/apache/tinkerpop/pull/842
  
I don't know if this matters but I noticed that the upgrade of that JSON 
thing didn't seem to matter to the tests. they passed on the old version (i 
sorta tested that version by accident because the PR updated the proj file 
directory and not the template so maven overwrote the change back to 9) - so do 
we need 9? or do we need a test case that shows we need 9? 


---


[GitHub] tinkerpop issue #842: TINKERPOP-1945

2018-08-13 Thread FlorianHockmann
Github user FlorianHockmann commented on the issue:

https://github.com/apache/tinkerpop/pull/842
  
I'm looking into this. At a first glance it seems to be based on the 
combination of the upgraded Newtonsoft.Json version and the addition of the 
.NET Standard 2.0 target.


---


[GitHub] tinkerpop issue #842: TINKERPOP-1945

2018-08-13 Thread spmallette
Github user spmallette commented on the issue:

https://github.com/apache/tinkerpop/pull/842
  
I got the merge done on tp32, but when I merged to tp33 .NET wouldn't 
build. I didn't immediately recognize the problem, so perhaps it's best that 
@jorgebay  or @FlorianHockmann  pick it up from here. I've squashed/merged and 
added a couple of commits to this branch:

https://github.com/apache/tinkerpop/commits/TINKERPOP-1945

which is based on tp32.  I guess we can close this PR once we get that 
branch merged to tp33 and master. 

@danielcweber thanks again for sticking to this PR and taking it to the 
end. it is appreciated.


---


[GitHub] tinkerpop issue #842: TINKERPOP-1945

2018-08-13 Thread spmallette
Github user spmallette commented on the issue:

https://github.com/apache/tinkerpop/pull/842
  
I'm working on merging this now.


---


[GitHub] tinkerpop issue #842: TINKERPOP-1945

2018-08-13 Thread jorgebay
Github user jorgebay commented on the issue:

https://github.com/apache/tinkerpop/pull/842
  
LGTM! VOTE: +1.

Thanks @danielcweber for the contribution!

Note to committers: I think it would be better to squash the commits ahead 
of the merge.


---


[GitHub] tinkerpop issue #842: TINKERPOP-1945

2018-08-13 Thread FlorianHockmann
Github user FlorianHockmann commented on the issue:

https://github.com/apache/tinkerpop/pull/842
  
Great, thanks for making those changes.

My VOTE +1 from nearly 3 months ago still holds with these recent changes.


---


[GitHub] tinkerpop issue #842: TINKERPOP-1945

2018-08-13 Thread danielcweber
Github user danielcweber commented on the issue:

https://github.com/apache/tinkerpop/pull/842
  
Revised based on the comments, rebased onto the current tp32 branch.


---


[GitHub] tinkerpop issue #842: TINKERPOP-1945

2018-08-05 Thread FlorianHockmann
Github user FlorianHockmann commented on the issue:

https://github.com/apache/tinkerpop/pull/842
  
@danielcweber the build is now failing because some of the added files miss 
the required license header. Could you please add that?


---


[GitHub] tinkerpop issue #842: TINKERPOP-1945

2018-08-01 Thread danielcweber
Github user danielcweber commented on the issue:

https://github.com/apache/tinkerpop/pull/842
  
@spmallette Should be symmetrical now!


---


[GitHub] tinkerpop issue #842: TINKERPOP-1945

2018-08-01 Thread danielcweber
Github user danielcweber commented on the issue:

https://github.com/apache/tinkerpop/pull/842
  
Sorry, I lost track of this issue since I worked around the TimeSpan issue 
with simple longs (which can be summed up nicely which is impossible for 
durations). I can delete the unneeded converters though, takes a minute.


---


[GitHub] tinkerpop issue #842: TINKERPOP-1945

2018-08-01 Thread spmallette
Github user spmallette commented on the issue:

https://github.com/apache/tinkerpop/pull/842
  
@danielcweber should we expect any change here or is this ok to close at 
this point?


---


[GitHub] tinkerpop issue #842: TINKERPOP-1945

2018-06-05 Thread spmallette
Github user spmallette commented on the issue:

https://github.com/apache/tinkerpop/pull/842
  
> Symmetry doesn't help me much if my GLV decides to return some obscure 
type that I can't process 

I sense the chance of that is a bit low, especially if in the future we 
look to discourage use of these Java specific types. Most graphs don't natively 
support these Java Time types, so getting one you don't expect would be odd. I 
think the original intent for having these at all was to better support the old 
script API where you might do some calculations in your Gremlin script and 
return one of these types, so in that case, you would be in control of whether 
or not you used that type in the first place.

> I am available to make the appropriate changes,... 

Thanks, that's appreciated. 

> I just hope in the end there will be enough support retained for us to 
work with CosmosDB graph

Please let us know how that pans out.


---


[GitHub] tinkerpop issue #842: TINKERPOP-1945

2018-06-05 Thread danielcweber
Github user danielcweber commented on the issue:

https://github.com/apache/tinkerpop/pull/842
  
@spmallette I have been following the discussion. To be honest, I don't 
care too much about the symmetry. Symmetry doesn't help me much if my GLV 
decides to return some obscure type that I can't process because I also can't 
send it and it would break symmetry. I am just interested in Gremlin.net being 
able to send Java-Durations for .net-TimeSpans to the database.

I am available to make the appropriate changes, which would probably just 
be to retrire support for the non-symmetric types. I just hope in the end there 
will be enough support retained for us to work with CosmosDB graph (they aren't 
even running on Tinkerpop).


---


[GitHub] tinkerpop issue #842: TINKERPOP-1945

2018-06-05 Thread spmallette
Github user spmallette commented on the issue:

https://github.com/apache/tinkerpop/pull/842
  
@danielcweber thanks for your patience on this pull request. Sometimes the 
seemingly simple tasks turn into larger more complex discussions unfortunately. 
 

I'm not sure if you've been following along as I don't recall seeing your 
name pop up in the previously referenced dev mailing list discussion where we 
tried to hash this all out, but it appears that the consensus is to maintain 
symmetry of serializers for .NET and to not allow one way serialization for the 
more richly/strongly typed GLVs. Hopefully you still are available to make the 
appropriate changes to help us get this merged. 


---


[GitHub] tinkerpop issue #842: TINKERPOP-1945

2018-05-24 Thread FlorianHockmann
Github user FlorianHockmann commented on the issue:

https://github.com/apache/tinkerpop/pull/842
  
In case someone is following here but is not on the dev mailing list:

https://lists.apache.org/thread.html/32c47e8682c2848a9cc90eaff0a0da1f9bf4bd5a94b746a3e143f341@%3Cdev.tinkerpop.apache.org%3E


---


[GitHub] tinkerpop issue #842: TINKERPOP-1945

2018-05-24 Thread FlorianHockmann
Github user FlorianHockmann commented on the issue:

https://github.com/apache/tinkerpop/pull/842
  
> @FlorianHockmann Why would we do that? If we can construct (i.e. 
deserialize) e.g. a DateTime of whatever a server gives us, fine. Doesn't mean 
we have to send (i.e. serialize) obscure types. As it currently is, it's more 
of an 'it just works'-approach.

I think the problem Jorge sees with that is the following:

1. You receive e.g. an `gx:Instant`.
2. It gets deserialized to `DateTime`.
3. You work with this `DateTime` and then send it back to the server.
4. It will be serialized to `g:Date`. <- Can't be used where the original 
`gx:Instant` came from.

but right, lets wait for him to come back on this.


> I think the point is to establish the intent to users that we no longer 
intend to support a type at some point in the future. I'm not sure what 
deprecation means in the IO sense.

Ok, since I'm also not sure about how we would want to handle the 
"deprecation" of types but since we seem to agree on the fact that 
communicating to users somehow which types they can expect to be supported 
across GLVs and which ones not, I'll start a DISCUSS thread on the mailing 
list. Maybe others have good ideas for that.


---


[GitHub] tinkerpop issue #842: TINKERPOP-1945

2018-05-23 Thread spmallette
Github user spmallette commented on the issue:

https://github.com/apache/tinkerpop/pull/842
  
I don't think it's wrong to mark something as "deprecated" in preparation 
for a future non-usage that may or may not happen. I think the point is to 
establish the intent to users that we no longer intend to support a type at 
some point in the future. I'm not sure what deprecation means in the IO sense.

@danielcweber maybe don't act yet to just remove them all.  i'd like to 
hear how strongly @jorgebay feels about this issue as he was the one who 
brought it up originally and he hasn't really had a chance to come back to this 
yet.  depending on what he says, maybe we need a more clear DISCUSS thread on 
dev to make sure we have consensus for direction. as we keep wobbling 
back/forth here a bit.


---


[GitHub] tinkerpop issue #842: TINKERPOP-1945

2018-05-23 Thread danielcweber
Github user danielcweber commented on the issue:

https://github.com/apache/tinkerpop/pull/842
  
>remove all deserializers again for which no serializer exists and vice 
versa

Why would we do that? If we can construct (i.e. deserialize) e.g. a 
DateTime of whatever a server gives us, fine. Doesn't mean we have to send 
(i.e. serialize) obscure types. As it currently is, it's more of a 'it just 
works'-approach.



---


[GitHub] tinkerpop issue #842: TINKERPOP-1945

2018-05-23 Thread FlorianHockmann
Github user FlorianHockmann commented on the issue:

https://github.com/apache/tinkerpop/pull/842
  
After thinking a bit more about this, my conclusion was that deprecating 
those types doesn't really make sense unless we plan on GraphSON 4.0 as we 
couldn't remove the types before that. Since we already have those types since 
GraphSON 2.0 and they can only be used when the extended module is explicitly 
selected I guess that we don't have to take immediate action at the moment.
Usage of the extended types is probably relatively low in general anyway.

But for the new serialization format @jorgebay suggested we should really 
check which types we want to support at all. I added a comment to the ticket so 
we don't forget that aspect.

So @danielcweber, looks like it would be best if you could remove all 
deserializers again for which no serializer exists and vice versa. Sorry for 
the unnecessary work you put into this.


---


[GitHub] tinkerpop issue #842: TINKERPOP-1945

2018-05-22 Thread spmallette
Github user spmallette commented on the issue:

https://github.com/apache/tinkerpop/pull/842
  
> Could we then somehow mark types as deprecated that we identify as 
problematic for non-Java languages? 

Not sure, but feel free to start fire up a DISCUSS thread on the mailing 
list about that if you like. Starting to talk about deprecation of types is an 
interesting idea to start polishing up for a core set of types for @jorgebay 
and https://issues.apache.org/jira/browse/TINKERPOP-1942 


---



[GitHub] tinkerpop issue #842: TINKERPOP-1945

2018-05-22 Thread FlorianHockmann
Github user FlorianHockmann commented on the issue:

https://github.com/apache/tinkerpop/pull/842
  
I'm ok with either direction - either to only support types symmetrically 
or try to support at the reading site as much types as possible - as long as we 
make that decision clear and follow it consistently for all GLVs.

Could we then somehow mark types as deprecated that we identify as 
problematic for non-Java languages? That would make it clear to users that they 
can expect types like `byte` or `char` to be supported across GLVs, but that 
they should avoid using types like `Instant` or `YearMonth`.
Otherwise users basically have to check the source code of the GLV(s) 
they're using when they want to know which type they can use and even if it's 
not implemented they can't know whether it was omitted on purpose or if the 
implementation is just still missing.


---


[GitHub] tinkerpop issue #842: TINKERPOP-1945

2018-05-22 Thread spmallette
Github user spmallette commented on the issue:

https://github.com/apache/tinkerpop/pull/842
  
We probably should never have started support for those Java specific 
duration types. dah - stupid exotic types.  anyway...

There is no precedence for these extended types in GLVs i don't think so we 
should probably be careful about this choice from now. If we can't get symmetry 
in a particular language, perhaps we should avoid support in the first place, 
at least for now. I say "at least for now" because it's easy to make it 
asymmetric later if we want, but the reverse of that is not so easy. Thoughts?


---


[GitHub] tinkerpop issue #842: TINKERPOP-1945

2018-05-18 Thread danielcweber
Github user danielcweber commented on the issue:

https://github.com/apache/tinkerpop/pull/842
  
I don't know how to get total symmetry into that. As long as Tinkerpop 
I/O-docs don't explain the important difference between e.g. a Date and an 
Instant, and as long as there are vastly more time-related structures on the 
Java side than there are on the .net side, we can't do better than this I guess.


---


[GitHub] tinkerpop issue #842: TINKERPOP-1945

2018-05-18 Thread jorgebay
Github user jorgebay commented on the issue:

https://github.com/apache/tinkerpop/pull/842
  
Sorry I'm late to the party, I haven't got much time during the past weeks: 
nice contribution @danielcweber !

I'm a little concerned about the difference between serializers and 
deserializers supported.

Can we limit the scope of this PR to types for which we support 
serialization and deserialization?
Some of the extended types are not very popular but once we add support for 
them, the user base for those could grow. From the user perspective, retrieving 
and storing are expected to be symmetric: if one operation is supported the 
other should also be.
Mapping 1 type (like `DateTime`) to multiple TinkerPop types could lead to 
obscure serialization errors that the user might not be able to identify.



---