graph icon indicating copy to clipboard operation
graph copied to clipboard

TRACKING: Track TinkerPop 3.3.x, 3.4.x, 3.5.x, and 3.6.x changes

Open krlawrence opened this issue 7 years ago • 4 comments
trafficstars

TinkerPop 3.4, 3.5, and 3.6 are all now released; 3.7 is pending. The manuscript needs updating to reflect the latest changes and possibly needs some deprecation warnings as well. This Epic level issue is to track key changes and make sure they do not get forgotten. Many of the items will also have their own issue (linked below).

The TinkerPop changelog is located at: https://github.com/apache/tinkerpop/blob/master/CHANGELOG.asciidoc

Key changes include: (A ~~strikethrough~~ indicates the item has been completed)

  • ~~New index() step~~
  • ~~New with() modulator [done for index and valueMap]~~
  • ~~New TextP predicates (startingWith, endingWith, containing, ...)~~
  • ~~Nested 'repeat' steps~~
  • ~~Named 'repeat steps~~
  • ~~elementMap() added in 3.4.4 #156~~
  • ~~valueMap() now has by() and with() modulators. valueMap(true) deprecated~~
  • ~~Increased GLV coverage (.Net etc.)~~ these are really entire sections of the book
  • ~~Read and Write steps from traversals: g.io()~~ #259
  • ~~min() and max() will work for any comparable type~~
  • ~~New none() step.~~
  • ~~The store() step was replaced by aggregate(local)~~ #187
  • ~~Improved null support (3.5.0)~~ #171
  • ~~incr and decr removed (3.5.0) #228~~
  • ~~Tornado replaced (3.5.0) by AIOHTTP~~
  • ~~HashableDict (3.5.0) - only relevant to the Python GLV~~
  • ~~Additional Translators (3.5.0)~~
  • ~~Allow predicates and traversals to be used as options in BranchStep. (3.4.3) #173~~
  • ~~GLV scriptEvaluationTimeout setting (since renamed evaluationTimeout)~~
  • ~~New sparql() step~~ - won't do
  • ~~EmptyGraph.instance().traversal() now deprecated~~ #172 #259 #201
  • ~~New Graph Binary serialization format~~
  • The steps hasKey() and hasValue() are now usable on Edges and Meta Properties (3.4.5)
  • ~~A by(String) can now be used after a map generating step (project etc.) (3.4.5)~~ #171
    • ~~g.V('3').valueMap().project('x').by('name')~~
    • ~~{'x':null} is returned if 'x' does not exist.~~

~~TinkerPop 3.3.4 deprecated some things.~~

~~Key changes include:~~

  • ~~Introduces asc and desc and deprecates incr and decr from Order.~~

Specific to 3.5.x

  • ~~Null changes~~
  • ~~g.V() mid traversal no longer allowed. Must just be V()~~
  • ~~datetime() function now in the grammar~~
    • ~~g.addV().property('date',datetime('2022-05-01:15:15:00'))~~
  • g.tx()
  • ~~fold can now merge maps using addAll~~ #218
  • ~~Translators~~
  • ~~AIO HTTP in Python GLV~~
  • Per traverser "bags of anything" using sack
  • Improvements to comparable. Can compare lists etc. (as in order...by)
g.V(3).valueMap('city').sack(assign).by(fold()).V(4).sack(addAll).by(fold()).sack()
==>[[city:[Austin]],v[4]]  

Specific to 3.6.x

  • ~~by filtering changes~~
  • ~~mergeV and mergeE~~ #268
  • ~~TextP.regex~~ #269
  • ~~property can take a map~~ #273
  • ~~New fail step~~ #270
  • New call step #272
  • ~~New element step~~ #271

Specific to 3.7.0

  • ~~New concat() step~~
  • ~~union is now a start step~~
  • ~~mergeV and property improved cardinality support~~ #268
  • TinkerGraph transactions (TinkerTransactionGraph)
  • Properties on elements (vs reference elements)
  • ~~Mid traversal E() is now supported~~

Specific to 3.7.1

  • ~~String functions~~
    • ~~asString()~~
    • ~~length()~~
    • ~~toLower()~~
    • ~~toUpper()~~
    • ~~trim()~~
    • ~~lTrim()~~
    • ~~rTrim()~~
    • ~~reverse()~~
    • ~~replace()~~
    • ~~split()~~
    • ~~substring()~~
  • ~~List and Set functions~~
    • ~~all()~~
    • ~~any()~~
  • ~~Date functions~~
    • ~~asDate()~~
    • ~~dateAdd()~~
    • ~~dateDiff()~~
    • ~~DT operator~~

krlawrence avatar Jul 23 '18 02:07 krlawrence

Created #127 To cover new Order enums added in 3.3.4

krlawrence avatar Oct 22 '18 17:10 krlawrence

Fixed #127

krlawrence avatar Nov 18 '18 17:11 krlawrence

TinkerPop 3.4 is now released. There are a lot of new features that will need coverage added to the book. This will be a time consuming process that will have to be done in phases and also intermixed with other key issues that need additional focus such as expanding the overall coverage of Gremlin Server and GLVs.

The full list of final 3.4 changes is available at: https://github.com/apache/tinkerpop/blob/master/CHANGELOG.asciidoc

krlawrence avatar Feb 24 '19 17:02 krlawrence

The remaining items will be included as part of the Second Edition work

krlawrence avatar Sep 23 '23 19:09 krlawrence