Hi all,

On the topic of Gremlin-Go, I would like to provide an update as we have
prepared code that is now release ready (once code review on TinkerPop is
complete).

First off, we decided to add an additional milestone (Milestone 4 below,
incrementing the milestones that come after) to the above list. We now have
the following plan:


   - *Milestone 1 - Basic Connectivity with String Traversals*
   - *Milestone 2 - ResultSet and Programmatic Traversals*
   - *Milestone 3 - TinkerPop Build Infrastructure Integration*
   - *NEW: **Milestone 4 - GA Ready*
   - *Milestone 5 - Sessions, Strategies, Translator, Remote Transactions*
   - *Milestone 6 - Advanced Driver Features and Configuration Options*
   - *Milestone 7 - Performance and Documentation*


We have combined the Milestone 3 and 4 into a pull request which is
available here: https://github.com/apache/tinkerpop/pull/1589/files.

After this pull request is merged, I will take the gremlin-go branch and
merge the code into a release branch, from here we can formally release the
Gremlin-Go code, and make it available for users. We have all the Cucumber
tests passing, so that gives high confidence that the driver is stable for
users and the features are working.

We will be beginning Milestone 5 immediately (while prioritizing
incorporating feedback on the pull request).

Finally, since I got no feedback on the previous question about __/T__ so
we have gone with T__ in the gremlin-go driver. If you disagree with this
and would like to raise your opinion, you can comment on our open pull
request for Milestone 3/4.

Thank you to all the people who have been actively reviewing and developing
this!

On Tue, Mar 1, 2022 at 9:52 AM Lyndon Bauto <[email protected]>
wrote:

> Hi all,
>
> I was looking to see if anyone had input on naming of embedded traversals
> in the Gremlin Go Driver. Typically we would have something like:
> g.V().Foo(__.Bar())
>
> Now in Golang we are currently making this look like:
> g.V().Foo(gremlingo.T__.Bar())
>
> We have the following constraints in go:
> 1. We must prefix something from our package with the package name (hence
> the gremlingo prefix).
> 2. We must prefix something with a capital letter to export it (hence the
> T__ instead of __).
>
> If anyone has any ideas to make this look nicer or has alternative ideas
> for this, please suggest them.
>
> On Wed, Feb 16, 2022 at 3:54 PM Lyndon Bauto <[email protected]>
> wrote:
>
>> Hi all,
>>
>> We have now merged the Gremlin Go Milestone 1 code to
>> https://github.com/apache/tinkerpop/tree/gremlin-go and have opened a
>> pull request that contains the code for Milestone 2 (see
>> https://github.com/apache/tinkerpop/pull/1569).
>>
>> With this change, you can now execute programmatic traversals with the
>> code (see the Getting Started section of
>> https://github.com/lyndonb-bq/tinkerpop/tree/gremlin-go-ms2/gremlin-go
>> for more details).
>>
>> We are now working on Milestone 3, and as requested, will be adding a
>> detailed design document to the milestone.
>>
>> If anyone is interested in joining in on the effort or has questions
>> about the driver, please let me know directly, as there are a few others
>> working on it concurrently and we are moving quickly.
>>
>> On Mon, Jan 31, 2022 at 1:01 PM Lyndon Bauto <[email protected]>
>> wrote:
>>
>>> I am happy to report that we have milestone 1 of the Gremlin Go driver
>>> ready!
>>>
>>> Pull request on GitHub which can be reviewed:
>>> https://github.com/apache/tinkerpop/pull/1556
>>>
>>> I would like to thank Yang (https://github.com/xiazcy), Simon (
>>> https://github.com/simonz-bq), and Rithin (https://github.com/L0Lmaker)
>>> for their contributions. Going forward commit history will be properly
>>> preserved, unfortunately it ended up getting mangled for the first
>>> milestone.
>>>
>>> If anyone is interested in joining in on the effort, please let me know
>>> directly, as there are a few others working on it concurrently and will be
>>> moving quickly to Milestone 2.
>>>
>>> On Wed, Jan 19, 2022 at 3:16 AM Jorge Bay Gondra <
>>> [email protected]> wrote:
>>>
>>>> Sounds good! looking forward to it! I hope I can have some free cycles
>>>> to
>>>> help review it.
>>>>
>>>> On Tue, Jan 18, 2022 at 11:25 PM Lyndon Bauto
>>>> <[email protected]> wrote:
>>>>
>>>> > Hi all,
>>>> >
>>>> > I am working on a Golang driver for TinkerPop. I will be working on
>>>> it on
>>>> > my fork of TinkerPop
>>>> > <https://github.com/lyndonb-bq/tinkerpop/tree/gremlin-go>. I have
>>>> laid out
>>>> > a plan for delivering it below. Each milestone will come to a main
>>>> branch
>>>> > on the TinkerPop repo (branch yet to be made) that can be reviewed by
>>>> > anyone interested. If you would like to join in the development of the
>>>> > driver please let me know so we can make sure we are working on
>>>> separate
>>>> > things as a couple others are already involved.
>>>> >
>>>> > Each milestone will come with a basic README that ought to have
>>>> enough info
>>>> > for someone to try out the current features of the driver. If anyone
>>>> has
>>>> > any comments or questions on the below plan, feel free to comment.
>>>> Note -
>>>> > the first serialization format will be GraphBinary.
>>>> >
>>>> > *Milestone 1 - Basic Connectivity with String Traversals*
>>>> >
>>>> >    1. Allows string traversals to be sent and received
>>>> >    2. Returns results as a string
>>>> >
>>>> > *Milestone 2 - ResultSet and Programmatic Traversals*
>>>> >
>>>> >    1. Proper ResultSet returned (iterable results with proper objects,
>>>> >    might use channel since that is generally preferred in golang)
>>>> >    2. Programmatic traversal support (g.V().etc())
>>>> >
>>>> > *Milestone 3 - TinkerPop Build Infrastructure Integration*
>>>> >
>>>> >    1. Gremlin-Go will build in the TinkerPop build infrastructure
>>>> >    2. Gherkin test suite integration
>>>> >    3. Go translator written in Java
>>>> >    4. Docker integration
>>>> >
>>>> > *Milestone 4 - Sessions, Strategies, Translator, Remote Transactions*
>>>> >
>>>> >    1. TraversalStrategies and DriverRemoteConnection strategy hookups
>>>> >    2. Sessions implementation
>>>> >    3. Remote transactions
>>>> >
>>>> > *Milestone 5 - Advanced Driver Features and Configuration Options*
>>>> >
>>>> >    1. Connection pooling and load balancing
>>>> >    2. Custom header injection, keep alive, connection timeout, and
>>>> >    websocket compression
>>>> >    3. Authentication methods (IAM, kerberos)
>>>> >    4. GraphSON - Not sure if this will be required - it may be
>>>> descoped.
>>>> >
>>>> > *Milestone 6 - Performance and Documentation*
>>>> >
>>>> >    1. Full documentation on par with other TinkerPop drivers
>>>> >    2. Performance tests and metrics on Driver performance
>>>> >
>>>> > --
>>>> > *Lyndon Bauto*
>>>> > Team Lead
>>>> > Bit Quill Technologies Inc.
>>>> > [email protected]
>>>> > https://www.bitquilltech.com
>>>> >
>>>>
>>>
>>>
>>> --
>>> *Lyndon Bauto*
>>> Team Lead
>>> Bit Quill Technologies Inc.
>>> [email protected]
>>> https://www.bitquilltech.com
>>>
>>
>>
>> --
>> *Lyndon Bauto*
>> Team Lead
>> Bit Quill Technologies Inc.
>> [email protected]
>> https://www.bitquilltech.com
>>
>
>
> --
> *Lyndon Bauto*
> Team Lead
> Bit Quill Technologies Inc.
> [email protected]
> https://www.bitquilltech.com
>


-- 
*Lyndon Bauto*
Team Lead
Bit Quill Technologies Inc.
[email protected]
https://www.bitquilltech.com

Reply via email to