Skip to content

Latest commit

 

History

History
3161 lines (2931 loc) · 247 KB

CHANGELOG.asciidoc

File metadata and controls

3161 lines (2931 loc) · 247 KB

TinkerPop3 CHANGELOG

TinkerPop 3.3.0 (Gremlin Symphony #40 in G Minor)

gremlin mozart

TinkerPop 3.3.8 (Release Date: August 5, 2019)

  • Provided support for withComputer() in gremlin-javascript.

  • Deprecated remote traversal side-effect retrieval and related infrastructure.

  • Bump to Groovy 2.4.17.

  • Bump to Jackson Databind 2.9.9.1.

  • Fixed bug with Python in g:Date of GraphSON where local time zone was being used during serialization/deserialization.

  • Improved error messaging when an attempt is made to serialize multi-properties to GraphML.

  • Deprecated multi/meta-property support in Neo4jGraph.

  • Improved exception and messaging for gt/gte/lt/lte when one of the object isn’t a Comparable.

  • Added test infrastructure to check for storage iterator leak.

  • Fixed multiple iterator leaks in query processor.

  • Fixed optional() so that the child traversal is treated as local.

  • Changed default keep-alive time for driver to 3 minutes.

  • Fixed bug where server-side keep-alive was not always disabled when its setting was zero.

  • Added support for hasNext() in Javascript and .NET.

  • Improved error messaging for invalid inputs to the TinkerGraph IdManager instances.

  • Forced replacement of connections in Java driver for certain exception types that seem to ultimately kill the connection.

  • Changed the reverse() of desc and asc on Order to not use the deprecated decr and incr.

  • Fixed bug in MatchStep where the correct was not properly determined.

  • Fixed bug where client/server exception mismatch when server throw StackOverflowError

  • Added underscore suffixed steps and tokens in Gremlin-Python that conflict with global function names.

  • Prevent exception when closing a session that doesn’t exist.

  • Allow predicates and traversals to be used as options in BranchStep.

  • Ensure only a single final response is sent to the client with Gremlin Server.

  • Deprecated ResponseHandlerContext with related infrastructure and folded its functionality into Context in Gremlin Server.

  • Improved performance of aggregate() by avoiding excessive calls to hasNext() when the barrier is empty.

Bugs

  • TINKERPOP-1619 TinkerGraphComputer worker count affects OptionalStep query results

  • TINKERPOP-2224 Detect and fix resource leak

  • TINKERPOP-2230 match() step unexpected behaviours

  • TINKERPOP-2232 RemoteStrategy does not call parent class TraversalStrategy init

  • TINKERPOP-2238 Fix remaining iterator leaks marked by @IgnoreIteratorLeak

  • TINKERPOP-2241 Client exception don’t match Server exception when server throw StackOverflowError

  • TINKERPOP-2248 Instability of driver for blocked requests

  • TINKERPOP-2264 Gremlin Python should deserialize g:Date to UTC

Improvements

  • TINKERPOP-1084 Branch option tokens should be allowed to be traversals.

  • TINKERPOP-1921 Support hasNext terminal step in GLVs

  • TINKERPOP-2020 Support withComputer() for javascript

  • TINKERPOP-2223 Update jackson databind to 2.9.9

  • TINKERPOP-2236 Improve error messaging for TinkerGraph IdManagers that fail on conversions

  • TINKERPOP-2237 Prevent error when closing sessions that don’t exist (breaking)

  • TINKERPOP-2246 Consolidate the error propagation to the client

  • TINKERPOP-2256 processAllStarts of AggregateStep should only be called when barrier is empty

  • TINKERPOP-2260 Update jackson databind 2.9.9.1

  • TINKERPOP-2265 Deprecate Traversal.getSideEffects() functionality for remoting purposes

  • TINKERPOP-2270 Deprecate multi/metaproperty support in Neo4j

  • TINKERPOP-2272 Rename steps and tokens that conflict with standard python functions

TinkerPop 3.3.7 (Release Date: May 28, 2019)

  • Developed DSL pattern for gremlin-javascript.

  • Generated uberjar artifact for Gremlin Console.

  • Improved folding of property() step into related mutating steps.

  • Added inject() to steps generated on the DSL TraversalSource.

  • Removed gperfutils dependencies from Gremlin Console.

  • Fixed PartitionStrategy when setting vertex label and having includeMetaProperties configured to true.

  • Ensure gremlin.sh works when directories contain spaces.

  • Prevented client-side hangs if metadata generation fails on the server.

  • Fixed bug with EventStrategy in relation to addE() where detachment was not happening properly.

  • Ensured that gremlin.sh works when directories contain spaces.

  • Fixed bug in detachment of Path where embedded collection objects would prevent that process.

  • Enabled ctrl+c to interrupt long running processes in Gremlin Console.

  • Quieted "host unavailable" warnings for both the driver and Gremlin Console.

  • Fixed construction of g:List from arrays in gremlin-javascript.

  • Fixed bug in GremlinGroovyScriptEngine interpreter mode around class definitions.

  • Implemented EdgeLabelVerificationStrategy.

  • Fixed behavior of P for within() and without() in GLVs to be consistent with Java when using varargs.

  • Cleared the input buffer after exceptions in Gremlin Console.

  • Added parameter to configure the processor in the gremlin-javascript client constructor.

Bugs

  • TINKERPOP-2112 Folding in property() step is not being optimally performed

  • TINKERPOP-2180 gremlin.sh doesn’t work when directories contain spaces

  • TINKERPOP-2183 InterpreterModeASTTransformation needs to be more specific about what it transforms

  • TINKERPOP-2194 Enforcing an order on properties in one test method of ChooseTest

  • TINKERPOP-2196 PartitionStrategy with includeMetaProperties(true) can’t add labeled vertex

  • TINKERPOP-2198 Documentation for Store contradicts itself

  • TINKERPOP-2199 within step does not work with more than two parameters with python

  • TINKERPOP-2200 AddEdgeStartStep used DetachedFactory.detach instead of EventStrategy.detach

  • TINKERPOP-2204 Client receives no response on failed request

  • TINKERPOP-2206 Certain types in javascript don’t appear to serialize with a GraphSON type

  • TINKERPOP-2212 Path is not detaching properly under certain conditions

Improvements

  • TINKERPOP-2089 Javascript DSL support

  • TINKERPOP-2179 Have o.a.t.g.driver.ser.SerializationException extend IOException

  • TINKERPOP-2181 Allow ctrl+c to break out of a long running process in Gremlin Console

  • TINKERPOP-2182 Remove gperfutils from Gremlin Console (breaking)

  • TINKERPOP-2191 Implement EdgeLabelVerificationStrategy

  • TINKERPOP-2211 Provide API to add per request option for a bytecode

TinkerPop 3.3.6 (Release Date: March 18, 2019)

  • Docker images use user gremlin instead of root

  • Added a new ResponseStatusCode for client-side serialization errors.

  • Refactored use of commons-lang to use common-lang3 only, though dependencies may still use commons-lang.

  • Bumped commons-lang3 to 3.8.1.

  • Improved handling of client-side serialization errors that were formerly just being logged rather than being raised.

  • Add Python TraversalMetrics and Metrics deserializers.

  • Masked sensitive configuration options in the logs of KryoShimServiceLoader.

  • Added globalFunctionCacheEnabled to the GroovyCompilerGremlinPlugin to allow that cache to be disabled.

  • Added globalFunctionCacheEnabled override to SessionOpProcessor configuration.

  • Added status code to GremlinServerError so that it would be more directly accessible during failures.

  • Added GraphSON serialization support for Duration, Char, ByteBuffer, Byte, BigInteger and BigDecimal in gremlin-python.

  • Added ProfilingAware interface to allow steps to be notified that profile() was being called.

  • Fixed bug where profile() could produce negative timings when group() contained a reducing barrier.

  • Improved logic determining the dead or alive state of a Java driver Connection.

  • Improved handling of dead connections and the availability of hosts.

  • Bumped httpclient to 4.5.7.

  • Bumped slf4j to 1.7.25.

  • Bumped commons-codec to 1.12.

  • Fixed partial response failures when using authentication in gremlin-python.

  • Fixed concurrency issues in TraverserSet.toString() and ObjectWritable.toString().

  • Fixed a bug in InlineFilterStrategy that mixed up and’s and or’s when folding merging conditions together.

  • Fixed a bug in PartitionStrategy where addE() as a start step was not applying the partition.

  • Improved handling of failing Authenticator instances thus improving server responses to drivers.

  • Improved performance of JavaTranslator by reducing calls to Method.getParameters().

  • Implemented EarlyLimitStrategy which is supposed to significantly reduce backend operations for queries that use range().

  • Reduced chance of hash collisions in Bytecode and its inner classes.

  • Added Symbol.asyncIterator member to the Traversal class to provide support for await …​ of loops (async iterables).

Bugs

  • TINKERPOP-2081 PersistedOutputRDD materialises rdd lazily with Spark 2.x

  • TINKERPOP-2091 Wrong/Missing feature requirements in StructureStandardTestSuite

  • TINKERPOP-2094 Gremlin Driver Cluster Builder serializer method does not use mimeType as suggested

  • TINKERPOP-2095 GroupStep looks for irrelevant barrier steps

  • TINKERPOP-2096 gremlinpython: AttributeError when connection is closed before result is received

  • TINKERPOP-2100 coalesce() creating unexpected results when used with order()

  • TINKERPOP-2105 Gremlin-Python connection not returned back to the pool on exception from gremlin server

  • TINKERPOP-2113 P.Within() doesn’t work when given a List argument

Improvements

  • TINKERPOP-1889 JavaScript GLV: Use heartbeat to prevent connection timeout

  • TINKERPOP-2010 Generate jsdoc for gremlin-javascript

  • TINKERPOP-2013 Process tests that are auto-ignored stink

  • TINKERPOP-2018 Generate API docs for Gremlin.Net

  • TINKERPOP-2038 Make groovy script cache size configurable

  • TINKERPOP-2050 Add a :bytecode command to Gremlin Console

  • TINKERPOP-2062 Add Traversal class to CoreImports

  • TINKERPOP-2065 Optimize iterate() for remote traversals

  • TINKERPOP-2067 Allow getting raw data from Gremlin.Net.Driver.IGremlinClient

  • TINKERPOP-2068 Bump Jackson Databind 2.9.7

  • TINKERPOP-2069 Document configuration of Gremlin.Net

  • TINKERPOP-2070 gremlin-javascript: Introduce Connection representation

  • TINKERPOP-2071 gremlin-python: the graphson deserializer for g:Set should return a python set

  • TINKERPOP-2073 Generate tabs for static code blocks

  • TINKERPOP-2074 Ensure that only NuGet packages for the current version are pushed

  • TINKERPOP-2077 VertexProgram.Builder should have a default create() method with no Graph

  • TINKERPOP-2078 Hide use of EmptyGraph or RemoteGraph behind a more unified method for TraversalSource construction

  • TINKERPOP-2084 For remote requests in console display the remote stack trace

  • TINKERPOP-2092 Deprecate default GraphSON serializer fields

  • TINKERPOP-2097 Create a DriverRemoteConnection with an initialized Client

  • TINKERPOP-2102 Deprecate static fields on TraversalSource related to remoting

  • TINKERPOP-2106 When gremlin executes timeout, throw TimeoutException instead of TraversalInterruptedException/InterruptedIOException

  • TINKERPOP-2110 Allow Connection on Different Path (from /gremlin)

  • TINKERPOP-2114 Document common Gremlin anti-patterns

  • TINKERPOP-2118 Bump to Groovy 2.4.16

  • TINKERPOP-2121 Bump Jackson Databind 2.9.8

TinkerPop 3.3.5 (Release Date: January 2, 2019)

This release also includes changes from 3.2.11.

  • Fixed and/or folding in InlineFilterStrategy.

  • Fixed configuration and serialization of SubgraphStrategy which was missing the checkAdjacentVertices flag.

  • Captured TraversalInterruptionException and converted to TimeoutException for GremlinExecutor.

  • Fixed a bug in CoalesceStep which squared the bulk if the step followed a Barrier step.

  • Fixed a bug in GroupStep that assigned wrong reducing bi-operators

  • Added :bytecode command to help developers debugging Bytecode-based traversals.

  • Added option to set the path for the URI on the Java driver.

  • Fixed PersistedOutputRDD to eager persist RDD by adding count() action calls.

  • Deserialized g:Set to a Python Set in GraphSON in gremlin-python.

  • Deprecated StarGraph.builder() and StarGraph.Builder.build() in favor of the more common "builder" patterns of build() and create() respectively.

  • Deprecated Serializers.DEFAULT_RESULT_SERIALIZER and DEFAULT_REQUEST_SERIALIZER.

  • Deprecated TraversalSource#GREMLIN_REMOTE and TraversalSource#GREMLIN_REMOTE_CONNECTION_CLASS moving them to RemoteConnection.

  • Fixed the setting of the default label for a ReferenceVertex when the original vertex was of type ComputerAdjacentVertex.

  • Changed Java driver to expect a generic RemoteTraverser object rather than the specific DefaultRemoteTraverser.

  • Better handled server disconnect condition for the gremlin-python driver by throwing a clear exception.

  • Display the remote stack trace in the Gremlin Console when scripts sent to the server fail.

  • Added AnonymousTraversalSource which provides a more unified means of constructing a TraversalSource.

  • Added DriverRemoteConnection.using(Client) to provide users better control over the number of connections being created.

  • Changed behavior of GraphSON deserializer in gremlin-python such that g:Set returns a Python Set.

  • Bumped to Groovy 2.4.16.

  • Fixed bug that prevented TraversalExplanation from serializing properly with GraphSON.

  • Changed behavior of iterate() in Python, Javascript and .NET to send none() thus avoiding unnecessary results being returned.

  • Provided for a configurable class map cache in the GremlinGroovyScriptEngine and exposed that in Gremlin Server.

  • GraphProvider instances can be annotated with OptOut configurations that will be applied in addition to the OptOut instances on a Graph.

Bugs

  • TINKERPOP-2081 PersistedOutputRDD materialises rdd lazily with Spark 2.x

  • TINKERPOP-2091 Wrong/Missing feature requirements in StructureStandardTestSuite

  • TINKERPOP-2094 Gremlin Driver Cluster Builder serializer method does not use mimeType as suggested

  • TINKERPOP-2095 GroupStep looks for irrelevant barrier steps

  • TINKERPOP-2096 gremlinpython: AttributeError when connection is closed before result is received

  • TINKERPOP-2100 coalesce() creating unexpected results when used with order()

  • TINKERPOP-2113 P.Within() doesn’t work when given a List argument

Improvements

  • TINKERPOP-1889 JavaScript GLV: Use heartbeat to prevent connection timeout

  • TINKERPOP-2010 Generate jsdoc for gremlin-javascript

  • TINKERPOP-2013 Process tests that are auto-ignored stink

  • TINKERPOP-2018 Generate API docs for Gremlin.Net

  • TINKERPOP-2038 Make groovy script cache size configurable

  • TINKERPOP-2050 Add a :bytecode command to Gremlin Console

  • TINKERPOP-2062 Add Traversal class to CoreImports

  • TINKERPOP-2065 Optimize iterate() for remote traversals

  • TINKERPOP-2067 Allow getting raw data from Gremlin.Net.Driver.IGremlinClient

  • TINKERPOP-2069 Document configuration of Gremlin.Net

  • TINKERPOP-2070 gremlin-javascript: Introduce Connection representation

  • TINKERPOP-2071 gremlin-python: the graphson deserializer for g:Set should return a python set

  • TINKERPOP-2073 Generate tabs for static code blocks

  • TINKERPOP-2074 Ensure that only NuGet packages for the current version are pushed

  • TINKERPOP-2077 VertexProgram.Builder should have a default create() method with no Graph

  • TINKERPOP-2078 Hide use of EmptyGraph or RemoteGraph behind a more unified method for TraversalSource construction

  • TINKERPOP-2084 For remote requests in console display the remote stack trace

  • TINKERPOP-2092 Deprecate default GraphSON serializer fields

  • TINKERPOP-2097 Create a DriverRemoteConnection with an initialized Client

  • TINKERPOP-2102 Deprecate static fields on TraversalSource related to remoting

  • TINKERPOP-2106 When gremlin executes timeout, throw TimeoutException instead of TraversalInterruptedException/InterruptedIOException

  • TINKERPOP-2110 Allow Connection on Different Path (from /gremlin)

  • TINKERPOP-2114 Document common Gremlin anti-patterns

  • TINKERPOP-2118 Bump to Groovy 2.4.16

  • TINKERPOP-2121 Bump Jackson Databind 2.9.8

TinkerPop 3.3.4 (Release Date: October 15, 2018)

This release also includes changes from 3.2.10.

  • Added synchronized Map to Gryo 3.0 registrations.

  • Removed timedInterrupt from documentation as a way to timeout.

  • Deprecated Order for incr and decr in favor of asc and desc.

  • Fixed bug in math() for OLAP where ComputerVerificationStrategy was incorrectly detecting path label access and preventing execution.

Bugs

  • TINKERPOP-1898 Issue with bindings in strategies and lambdas

  • TINKERPOP-1933 gremlin-python maximum recursion depth exceeded on large responses

  • TINKERPOP-1958 TinkerGraphCountStrategy can return wrong counts

  • TINKERPOP-1961 Duplicate copies of images directory in docs

  • TINKERPOP-1962 GroovyTranslator doesn’t handle empty maps

  • TINKERPOP-1963 Use of reducing step in choose()

  • TINKERPOP-1972 inject() tests are throwing exceptions in .NET GLV tests

  • TINKERPOP-1978 Check for Websocket connection state when retrieved from Connection Pool missing

  • TINKERPOP-1979 Several OLAP issues in MathStep

  • TINKERPOP-1988 minor error in documentation

  • TINKERPOP-1999 [Java][gremlin-driver] Query to a remote server via the websocket client hangs indefinitely if the server becomes unavailable

  • TINKERPOP-2005 Intermittent NullPointerException in response handling

  • TINKERPOP-2009 Pick.any and Pick.none should be exposed in Gremlin-JavaScript

  • TINKERPOP-2021 Prevent maximum recursion depth failure

  • TINKERPOP-2030 KeepAlive task executed for every Connection.write call

  • TINKERPOP-2032 Update jython-standalone

  • TINKERPOP-2044 Cannot reconnect to Azure cosmos host that becomes available again

Improvements

  • TINKERPOP-1113 GraphComputer subclasses should support native methods

  • TINKERPOP-1365 Log the seed used to initialize Random in tests

  • TINKERPOP-1447 Add some JavaScript intelligence to the documentation so that comments and output are not copied in a copy paste

  • TINKERPOP-1595 Go through TraversalVertexProgram with a profile and optimize.

  • TINKERPOP-1778 Do not promote timedInterrupt option for Gremlin Server script processing

  • TINKERPOP-1780 Add authentication tests for gremlin-python

  • TINKERPOP-1836 .NET sample project

  • TINKERPOP-1841 Include Python GLV tests on TravisCI

  • TINKERPOP-1864 Gremlin Python tests for GraphSON 2.0 and 3.0

  • TINKERPOP-1897 Provide Docker images of Gremlin Server and Console

  • TINKERPOP-1945 Add support for extended GraphSon types to Gremlin.net

  • TINKERPOP-1951 gremlin-server.bat doesn’t support paths containing spaces

  • TINKERPOP-1956 Deprecate Order incr/decr for asc/desc

  • TINKERPOP-1959 Provide a way to submit scripts to the server in gremlin-javascript

  • TINKERPOP-1968 Refactor elements of Gremlin Server testing

  • TINKERPOP-1976 Include Computer tests for GLVs

  • TINKERPOP-1977 Gremlin-JavaScript: Support SASL authentication

  • TINKERPOP-1985 Update position on bulk loading

  • TINKERPOP-1989 Preserve order that plugins are applied in Gremlin Console

  • TINKERPOP-1995 DriverRemoteConnection close() method returns undefined

  • TINKERPOP-2011 Use NumberHelper on choose()

  • TINKERPOP-2012 Target .NET Standard 2.0 for Gremlin.Net

  • TINKERPOP-2015 Allow users to configure the WebSocket connections

  • TINKERPOP-2016 Upgrade Jackson FasterXML to 2.9.5 or later to fix security vulnerability

  • TINKERPOP-2017 Check for Column in by()

  • TINKERPOP-2022 Cluster SSL should trust default ca certs by default

  • TINKERPOP-2023 Gremlin Server should not create self-signed certs (breaking)

  • TINKERPOP-2024 Gremlin Server Application archetype should connect via withRemote

  • TINKERPOP-2025 Change to SHA-256/512 and drop SHA-1 for releases

  • TINKERPOP-2026 Gremlin.Net.Driver should check ClientWebSocket.State before closing

  • TINKERPOP-2034 Register synchronizedMap() with Gryo

  • TINKERPOP-2035 Gremlin-JavaScript: Pass custom headers to the websocket connection

  • TINKERPOP-2040 Improve flexibility of GroovyTranslator to handle custom types

  • TINKERPOP-2045 Remove non-indy groovy dependencies

  • TINKERPOP-2055 Provide support for special number cases like Infinity in GraphSON

  • TINKERPOP-2056 Use NumberHelper in Compare

TinkerPop 3.3.3 (Release Date: May 8, 2018)

This release also includes changes from 3.2.9.

  • Implemented TraversalSelectStep which allows to select() runtime-generated keys.

  • Coerced BulkSet to g:List in GraphSON 3.0.

  • Deprecated CredentialsGraph DSL in favor of CredentialsTraversalDsl which uses the recommended method for Gremlin DSL development.

  • Allowed iterate() to be called after profile().

Bugs

  • TINKERPOP-1869 Profile step and iterate do not play nicely with each other

  • TINKERPOP-1927 Gherkin scenario expects list with duplicates, but receives g:Set

  • TINKERPOP-1947 Path history isn’t preserved for keys in mutations

Improvements

  • TINKERPOP-1628 Implement TraversalSelectStep

  • TINKERPOP-1755 No docs for ReferenceElements

  • TINKERPOP-1903 Credentials DSL should use the Java annotation processor

  • TINKERPOP-1912 Remove MD5 checksums

  • TINKERPOP-1934 Bump to latest version of httpclient

  • TINKERPOP-1936 Performance enhancement to Bytecode deserialization

  • TINKERPOP-1943 JavaScript GLV: Support GraphSON3

  • TINKERPOP-1944 JavaScript GLV: DriverRemoteConnection is not exported in the root module

  • TINKERPOP-1950 Traversal construction performance enhancements

  • TINKERPOP-1953 Bump to Groovy 2.4.15

TinkerPop 3.3.2 (Release Date: April 2, 2018)

This release also includes changes from 3.2.8.

  • Fixed regression issue where the HTTPChannelizer doesn’t instantiate the specified AuthenticationHandler.

  • Defaulted GLV tests for gremlin-python to run for GraphSON 3.0.

  • Fixed a bug with Tree serialization in GraphSON 3.0.

  • In gremlin-python, the GraphSON 3.0 g:Set type is now deserialized to List.

Bugs

  • TINKERPOP-1053 installed plugins are placed in a directory relative to where gremlin.sh is started

  • TINKERPOP-1509 Failing test case for tree serialization

  • TINKERPOP-1738 Proper functioning of GraphSONReader depends on order of elements in String representation

  • TINKERPOP-1758 RemoteStrategy should be before all other DecorationStrategies.

  • TINKERPOP-1855 Update Rexster links

  • TINKERPOP-1858 HttpChannelizer regression: Does not create specified AuthenticationHandler

  • TINKERPOP-1859 Complex instance of P not serializing to bytecode properly

  • TINKERPOP-1860 valueMap(True) result in error in gremlin-python

  • TINKERPOP-1862 TinkerGraph VertexProgram message passing doesn’t work properly when using Direction.BOTH

  • TINKERPOP-1867 union() can produce extra traversers

  • TINKERPOP-1872 Apply edgeFunction in SparkMessenger

  • TINKERPOP-1873 min() and max() work only in the range of Integer values

  • TINKERPOP-1874 P does not appear to be serialized consistently in GraphSON

  • TINKERPOP-1875 Gremlin-Python only aggregates to list when using GraphSON3

  • TINKERPOP-1879 Gremlin Console does not resepect equal sign for flag argument assignments

  • TINKERPOP-1880 Gremlin.NET Strong name signature could not be verified. (HRESULT: 0x80131045)

  • TINKERPOP-1883 gremlinpython future will never return

  • TINKERPOP-1890 getAnonymousTraversalClass() is not being generated for Java DSLs

  • TINKERPOP-1891 Serialization of P.not() for gremlin-javascript

  • TINKERPOP-1892 GLV test failures for .NET

  • TINKERPOP-1894 GraphSONMessageSerializerV2d0 fails to deserialize valid P.not()

  • TINKERPOP-1896 gremlin-python lambdas error

  • TINKERPOP-1907 Fix failing GLV test for withSack() in .NET

  • TINKERPOP-1917 gx:BigDecimal serialization broken in Gremlin.Net on systems with ',' as decimal separator

  • TINKERPOP-1918 Scenarios fail because of wrong numerical types

  • TINKERPOP-1919 Gherkin runner doesn’t work with P.And() and P.Or() in Gremlin.Net

  • TINKERPOP-1920 Tests fail because P.Within() arguments are wrapped in an array in Gremlin.Net

  • TINKERPOP-1922 Gherkin features fail that contain P.not() in Gremlin.Net

Improvements

  • TINKERPOP-1357 Centrality Recipes should mention pageRank and OLAP.

  • TINKERPOP-1489 Provide a Javascript Gremlin Language Variant

  • TINKERPOP-1586 SubgraphStrategy in OLAP

  • TINKERPOP-1726 Support WebSockets ping/pong keep-alive in Gremlin server

  • TINKERPOP-1842 iterate() missing in terminal steps documentation

  • TINKERPOP-1844 Python GLV test should run for GraphSON 3.0 (breaking)

  • TINKERPOP-1850 Range step has undocumented special values

  • TINKERPOP-1854 Support lambdas in Gremlin.Net

  • TINKERPOP-1857 GLV test suite consistency and completeness

  • TINKERPOP-1863 Delaying the setting of requestId till the RequestMessage instantiation time

  • TINKERPOP-1865 Run Gremlin .NET GLV tests with GraphSON 3.0

  • TINKERPOP-1866 Support g:T for .NET

  • TINKERPOP-1868 Support inject source step in Gremlin.Net

  • TINKERPOP-1870 n^2 synchronious operation in OLAP WorkerExecutor.execute() method

  • TINKERPOP-1871 Exception handling is slow in element ReferenceElement creation

  • TINKERPOP-1877 Add new graph data for specialized testing scenarios

  • TINKERPOP-1884 Bump to Netty 4.0.56.Final

  • TINKERPOP-1885 Various Gremlin.Net documentation updates

  • TINKERPOP-1901 Enable usage of enums in more steps in Gremlin.Net

  • TINKERPOP-1908 Bump to Groovy 2.4.14

  • TINKERPOP-1911 Refactor JavaTranslator to cache all reflective calls

  • TINKERPOP-1914 Support construct a GremlinServer instance from gremlin executor service

TinkerPop 3.3.1 (Release Date: December 17, 2017)

This release also includes changes from 3.2.7.

  • Added NoneStep and Traversal.none() for full filtering integration with iterate().

  • Fixed bug in serialization of Path for GraphSON 3.0 in gremlin-python.

  • Added support for GraphSON 3.0 in Gremlin.Net.

  • Added math()-step which supports scientific calculator capabilities for numbers within a traversal.

  • Added missing GraphTraversalSource.addE()-method to GremlinDslProcessor.

  • Changed to() and from() traversal-based steps to take a wildcard ? instead of of E.

  • Added addV(traversal) and addE(traversal) so that created element labels can be determined dynamically.

  • PageRankVertexProgram supports maxIterations but will break out early if epsilon-based convergence occurs.

  • Added support for epsilon-based convergence in PageRankVertexProgram.

  • Fixed two major bugs in how PageRank was being calculated in PageRankVertexProgram.

  • Added Io.requiresVersion(Object) to allow graph providers a way to check the Io type and version being constructed.

  • Defaulted IoCore.gryo() and IoCore.graphson() to both use their 3.0 formats which means that Graph.io() will use those by default.

  • Bumped Neo4j 3.2.3

Bugs

  • TINKERPOP-1773 Lop should be created as a "software" and not a "person"

  • TINKERPOP-1783 PageRank gives incorrect results for graphs with sinks (breaking)

  • TINKERPOP-1799 Failure to serialize path() in gremlin-python

  • TINKERPOP-1847 tinkergraph-gremlin dependency on gremlin-test, bad scope?

Improvements

  • TINKERPOP-1632 Create a set of default functions

  • TINKERPOP-1692 Bump to Neo4j 3.2.3

  • TINKERPOP-1717 Update name and link of DynamoDB storage backend in landing page

  • TINKERPOP-1730 Gremlin .NET support for GraphSON 3.0

  • TINKERPOP-1767 Method for graph providers to check an IO version and type

  • TINKERPOP-1793 addE() should allow dynamic edge labels

  • TINKERPOP-1834 Consider iterate() as a first class step

TinkerPop 3.3.0 (Release Date: August 21, 2017)

This release also includes changes from 3.2.6.

  • Removed previously deprecated ScriptElementFactory.

  • Added GraphTraversalSource.addE(String) in support of g.addE().from().to().

  • Added support for to(Vertex) and from(Vertex) as a shorthand for to(V(a)) and from(V(b)).

  • Bumped to support Spark 2.2.0.

  • Detected if type checking was required in GremlinGroovyScriptEngine and disabled related infrastructure if not.

  • Removed previously deprecated GraphTraversal.selectV3d0() step.

  • Removed previously deprecated DetachedEdge(Object,String,Map,Pair,Pair) constructor.

  • Removed previously deprecated Bindings constructor. It is now a private constructor.

  • Removed previously deprecated TraversalSource.withBindings().

  • Removed previously deprecated GraphTraversal.sack(BiFunction,String).

  • TraversalMetrics and Metrics Gryo 1.0 formats changed given internal changes to their implementations.

  • Made TraversalMetrics safe to write to from multiple threads.

  • Removed previously deprecated TraversalSideEffects methods.

  • Removed previously deprecated finalization.LazyBarrierStrategy (moved to optimization.LazyBarrierStrategy).

  • Removed previously deprecated Constants in Hadoop.

  • Removed previously deprecated VertexComputing.generateComputer(Graph).

  • Removed previously deprecated ConfigurationTraversal.

  • Established the Gryo 3.0 format.

  • GryoVersion now includes a default ClassResolver to supply to the GryoMapper.

  • GryoClassResolver renamed to GryoClassResolverV1d0 which has an abstract class that for providers to extend in AbstractGryoClassResolver.

  • Removed previously deprecated Order enums of keyIncr, keyDecr, valueIncr, and valueDecr.

  • Removed previously deprecated GraphTraversal.mapKeys() step.

  • Removed previously deprecated GraphTraversal.mapValues() step.

  • Removed previously deprecated GraphTraversal#addV(Object…​).

  • Removed previously deprecated GraphTraversal#addE(Direction, String, String, Object…​).

  • Removed previously deprecated GraphTraversal#addOutE(String, String, Object…​).

  • Removed previously deprecated GraphTraversal#addInV(String, String, Object…​).

  • Removed previously deprecated GraphTraversal.groupV3d0() and respective GroupSideEffectStepV3d0 and GroupStepV3d0.

  • Removed previously deprecated TraversalSource.Builder class.

  • Removed previously deprecated ConnectiveP, AndP, OrP constructors.

  • Removed previously deprecated TraversalScriptFunction class.

  • Removed previously deprecated TraversalScriptHelper class.

  • Removed previously deprecated ScriptEngineCache class.

  • Removed previously deprecated CoreImports class.

  • Removed previously deprecated GremlinJythonScriptEngine#() constructor.

  • Removed access to previously deprecated CoreGremlinPlugin#INSTANCE field.

  • gremlin.sh and gremln.bat no longer support the option to pass a script as an argument for execution mode without using the -i option.

  • Graphite and Ganglia are no longer packaged with the Gremlin Server distribution.

  • TransactionException is no longer a class of AbstractTransaction and it extends RuntimeException.

  • Included an ellipse on long property names that are truncated.

  • Renamed RangeByIsCountStrategy to CountStrategy.

  • Added more specific typing to various __ traversal steps. E.g. <A,Vertex>out() is <Vertex,Vertex>out().

  • Updated Docker build scripts to include Python dependencies (NOTE: users should remove any previously generated TinkerPop Docker images).

  • Added "attachment requisite" VertexProperty.element() and Property.element() data in GraphSON serialization.

  • GraphSON 3.0 is now the default serialization format in TinkerGraph and Gremlin Server.

  • Changed ServerGremlinExecutor to not use generics since there really is no flexibility in the kind of ScheduledExecutorService that will be used.

  • Removed support for passing a byte array on the sasl parameter.

  • Removed previously deprecated GraphSONMapper$Builder#embedTypes option.

  • Removed previously deprecated :remote config timeout max.

  • Removed previously deprecated ConnectionPoolSettings.sessionId and ConnectionPoolSettings.optionalSessionId().

  • Removed previously deprecated reconnectInitialDelay setting from the Java driver.

  • Removed previously deprecated useMapperFromGraph option.

  • Established the GraphSON 3.0 format with new g:Map, g:List and g:Set types.

  • Removed previously deprecated Io.Builder#registry(IoRegistry) method.

  • Removed previously deprecated GryoMessageSerializerV1d0(GryoMapper) constructor.

  • Removed previously deprecated TinkerIoRegistry.

  • Removed previously deprecated getInstance() methods on all TinkerPop classes.

  • Removed previously deprecated VertexPropertyFeatures.supportsAddProperty().

  • Removed previously deprecated TinkerGraph configuration member variables.

  • Removed previously deprecated Transaction.submit(Function).

  • Removed previously deprecated OpSelectorHandler.errorMeter and AbstractEvalOpProcessor.errorMeter fields.

  • Removed previously deprecated AbstractEvalOpProcessor.validBindingName field.

  • Removed previously deprecated SimpleAuthenticator.CONFIG_CREDENTIALS_LOCATION field.

  • Removed previously deprecated IteratorHandler, NioGremlinResponseEncoder and WsGremlinResponseEncoder classes.

  • Removed previously deprecated Session.kill() and Session.manualKill().

  • Removed previously deprecated Authenticator.newSaslNegotiator() and its method implementations in classes that were assignable to that interface.

  • Removed gremlin-groovy-test.

  • Removed previously deprecated "G" functions in gremlin-groovy (i.e. GFunction).

  • Removed references to the old GremlinPlugin system that was in gremlin-groovy - the revised GremlinPlugin system in gremlin-core is the only one now in use.

  • GremlinGroovyScriptEngine no longer implements the now removed DependencyManager.

  • Added Vertex, Edge, VertexProperty, and Property serializers to Gremlin-Python and exposed tests that use graph object arguments.

  • Bytecode.getSourceInstructions() and Bytecode.getStepInstructions() now returns List<Instruction> instead of Iterable<Instruction>.

  • Added various TraversalStrategy registrations with GryoMapper.

  • Fixed a naming mistake in Gremlin-Python: IdentityRemoveStrategy is now called IdentityRemovalStrategy.

  • Added TranslationStrategy test infrastructure that verifies Bytecode generated from a translation is equal to the original Bytecode.

  • Moved NumberHelper into the org.apache.tinkerpop.gremlin.util package.

  • Added Pop.mixed instead of using null to represent such semantics.

  • select()-step now defaults to using Pop.last instead of Pop.mixed.

  • Added gremlin-io-test module to validate IO formats.

  • RequestMessage and ResponseMessage are now registered with GryoMapper as part of the TinkerPop range of type identifiers.

  • Removed previously deprecated Console constructor that took a String as an argument from gremlin-console.

  • Removed previously deprecated ConcurrentBindings from gremlin-groovy.

  • Removed previously deprecated ScriptExecutor from gremlin-groovy.

  • Removed previously deprecated SandboxExtension from gremlin-groovy.

  • Removed previously deprecated GremlinGroovyScriptEngine constructor that took ImportCustomizerProvider as an argument from gremlin-groovy.

  • Removed previously deprecated GremlinGroovyScriptEngine#plugins() from gremlin-groovy.

  • Added OptionalStep for use with optional() to better handle issues associated with branch side-effects.

  • UnfoldStep now supports unfolding of arrays.

  • Removed all performance tests that were not part of gremlin-benchmark.

  • Removed dependency on junit-benchmarks and it’s related reference to h2.

  • Moved the source for the "home page" into the repository under /site so that it easier to accept contributions.

  • Added UnshadedKryoShimService as the new default serializer model for SparkGraphComputer.

  • GryoRegistrator is more efficient than the previous GryoSerializer model in SparkGraphComputer.

  • Added support for IoRegistry custom serialization in Spark/Giraph and provided a general hadoop-gremlin test suite.

  • Replaced term REST with HTTP to remove any confusion as to the design of the API.

  • Moved gremlin-benchmark under gremlin-tools module.

  • Added gremlin-tools and its submodule gremlin-coverage.

  • Removed tryRandomCommit() from AbstractGremlinTest.

  • Changed gremlin-benchmark system property for the report location to benchmarkReportDir for consistency.

  • Added SysV and systemd init scripts.

  • GraphTraversal.valueMap(includeTokens,propertyKeys…​) now returns a Map<Object,E> since keys could be T.id or T.label.

  • Added skip(long) and skip((Scope,long) which call the range(low,high) equivalents with -1 as the high.

  • Added Kerberos authentication to gremlin-server for websockets and nio transport.

  • Added audit logging of authenticated users and gremlin queries to gremlin-server.

Bugs

  • TINKERPOP-1211 UnfoldStep should unfold arrays. (breaking)

  • TINKERPOP-1426 GryoSerializer should implement Java serialization interface

  • TINKERPOP-1465 Remove deprecated newSaslNegotiator (breaking)

  • TINKERPOP-1483 PropertyMapStep returns Map<String,E> but puts non String keys in it!

  • TINKERPOP-1520 Difference between 'has' step generated graphson2.0 in java and python glv implementation

  • TINKERPOP-1533 Storage and IoRegistry

  • TINKERPOP-1597 PathRetractionStrategy messing up certain traversals

  • TINKERPOP-1635 gremlin-python: Duplicate serialization of element property in PropertySerializer

  • TINKERPOP-1658 Graphson2 map keys are serialised as strings

  • TINKERPOP-1716 Traversal strategies are not applied with remote in Gremlin Console

Improvements

  • TINKERPOP-832 Remove deprecated addV/E/InE/OutE methods (breaking)

  • TINKERPOP-833 Remove deprecated GremlinGroovyScriptEngine constructor and plugins() (breaking)

  • TINKERPOP-834 Remove deprecated sack() method (breaking)

  • TINKERPOP-880 Remove deprecated GroupStepV3d0 and GroupSideEffectStepV3d0 (breaking)

  • TINKERPOP-929 Remove Deprecated TinkerGraph public static methods. (breaking)

  • TINKERPOP-980 Add a service script or daemon mode in the distribution (breaking)

  • TINKERPOP-999 ServerGremlinExecutor construction need not use generics for ExecutorService (breaking)

  • TINKERPOP-1004 Make Transaction.commit() failures consistent across implementations. (breaking)

  • TINKERPOP-1010 Remove deprecated credentialsDbLocation for SimpleAuthenticator (breaking)

  • TINKERPOP-1024 Remove deprecated tryRandomCommit() (breaking)

  • TINKERPOP-1028 Remove deprecated ConnectionPoolSettings session settings (breaking)

  • TINKERPOP-1040 Remove deprecated SandboxExtension (breaking)

  • TINKERPOP-1046 Remove deprecated Gremlin Server handler implementations (breaking)

  • TINKERPOP-1049 Remove deprecated error meter member variables in Gremlin Server handlers (breaking)

  • TINKERPOP-1094 Remove deprecated VertexPropertyFeatures.FEATURE_ADD_PROPERTY (breaking)

  • TINKERPOP-1116 Some anonymous traversal steps can be hard typed. (breaking)

  • TINKERPOP-1130 Each release should store Kryo/GraphSON/GraphML versions to ensure future compatibility (breaking)

  • TINKERPOP-1142 Remove deprecated valueIncr, valueDecr, keyIncr, keyDecr. (breaking)

  • TINKERPOP-1169 Remove deprecated TraversalScriptFunction and TraversalScriptHelper (breaking)

  • TINKERPOP-1170 Remove deprecated ConfigurationTraversal. (breaking)

  • TINKERPOP-1171 Remove deprecated TraversalSource.Builder (breaking)

  • TINKERPOP-1235 Remove deprecated ProcessPerformanceSuite and TraversalPerformanceTest (breaking)

  • TINKERPOP-1275 Remove deprecated max setting for :remote (breaking)

  • TINKERPOP-1283 Remove deprecated ScriptExecutor (breaking)

  • TINKERPOP-1289 Remove deprecated ConnectiveP, AndP, and OrP constructors. (breaking)

  • TINKERPOP-1291 Remove deprecated mapValues and mapKeys methods (breaking)

  • TINKERPOP-1313 Rename RangeByIsCountStrategy (breaking)

  • TINKERPOP-1316 Remove deprecated constructor from GryoMessageSerializers (breaking)

  • TINKERPOP-1327 Bring GryoRegistrator to the forefront and deprecate GryoSerializer (breaking)

  • TINKERPOP-1363 Cleanup Docker build script for next major release (breaking)

  • TINKERPOP-1369 Replace REST API with HTTP API

  • TINKERPOP-1389 Support Spark 2.0.0

  • TINKERPOP-1399 NumberHelper needs to go into util and have a private constructor (breaking)

  • TINKERPOP-1404 Path/label optimization

  • TINKERPOP-1408 Remove Deprecated Io.Builder.registry() (breaking)

  • TINKERPOP-1414 Change default GraphSON version to 3.0 (breaking)

  • TINKERPOP-1420 Remove deprecated ConcurrentBindings in gremlin-groovy (breaking)

  • TINKERPOP-1421 Remove deprecated ControlOps (breaking)

  • TINKERPOP-1427 GraphSON 3.0 needs collection types and consistent number typing.

  • TINKERPOP-1443 Use an API checker during build

  • TINKERPOP-1445 Large nested VertexProperties and Properties do not get printed well

  • TINKERPOP-1454 Create Serializers for Graph objects in Gremlin-Python

  • TINKERPOP-1481 Remove deprecated reconnectInitialDelay in Java driver (breaking)

  • TINKERPOP-1485 Move source for TinkerPop site to source code repo

  • TINKERPOP-1506 Optional/Coalesce should not allow sideEffect traversals.

  • TINKERPOP-1514 Restructure for gremlin-tools module (breaking)

  • TINKERPOP-1524 Bytecode.getXXXInstructions should return a List, not Iterable.

  • TINKERPOP-1526 Remove deprecated Session kill() overloads (breaking)

  • TINKERPOP-1536 Include GLVs in Docker build

  • TINKERPOP-1541 Select should default to Pop.last semantics (breaking)

  • TINKERPOP-1549 Implement skip()

  • TINKERPOP-1550 Make Graphite and Ganglia optional dependencies

  • TINKERPOP-1563 Remove deprecated getInstance() methods (breaking)

  • TINKERPOP-1565 Setup GraphSON 3.0

  • TINKERPOP-1566 Kerberos authentication for gremlin-server

  • TINKERPOP-1574 Get rid of untyped GraphSON in 3.0

  • TINKERPOP-1603 Remove support for SASL byte array in protocol (breaking)

  • TINKERPOP-1612 Remove gremlin-groovy-test module (breaking)

  • TINKERPOP-1621 Remove deprecated GremlnPlugin and related infrastructure (breaking)

  • TINKERPOP-1622 Remove deprecated G functions in gremlin-groovy (breaking)

  • TINKERPOP-1651 Remove deprecated gremlin.sh init syntax (breaking)

  • TINKERPOP-1686 Make TraversalMetrics thread safe (breaking)

  • TINKERPOP-1698 Gryo 3.0

  • TINKERPOP-1699 Remove deprecated userMapperFromGraph (breaking)

  • TINKERPOP-1700 Remove deprecated embedTypes option

  • TINKERPOP-1706 Remove deprecated ScriptEngineCache and related dead code (breaking)

  • TINKERPOP-1715 Bump to Spark 2.2

  • TINKERPOP-1719 Remove deprecated Traversal related code (breaking)

  • TINKERPOP-1720 Remove deprecated Hadoop code (breaking)

  • TINKERPOP-1721 Remove deprecated Bindings related code (breaking)

  • TINKERPOP-1724 Remove deprecated ScriptElementFactory

  • TINKERPOP-1729 Remove deprecated select steps.

  • TINKERPOP-1740 Add vertex parameter overload to to() and from()

  • TINKERPOP-1747 Streamline inheritance for gremlin-python GraphSON serializer classes

TinkerPop 3.2.0 (Nine Inch Gremlins)

nine inch gremlins

TinkerPop 3.2.11 (Release Date: January 2, 2019)

  • Bumped to Jackson Databind 2.9.8

Improvements

  • TINKERPOP-2074 Ensure that only NuGet packages for the current version are pushed

  • TINKERPOP-2121 Bump Jackson Databind 2.9.8

TinkerPop 3.2.10 (Release Date: October 15, 2018)

  • Removed conflicting non-indy groovy core dependency

  • Bumped jython-standalone 2.7.1

  • Added a delegate to the Gremlin.Net driver that can be used to configure the WebSocket connection.

  • SSL security enhancements

  • Added Gremlin version to Gremlin Server startup logging output.

  • Fixed problem with Gremlin Server sometimes returning an additional message after a failure.

  • Allowed spaces in classpath for gremlin-server.bat.

  • Fixed bug in traversals that used Python lambdas with strategies in gremlin-python.

  • Modified Maven archetype for Gremlin Server to use remote traversals rather than scripts.

  • Added an system error code for failed plugin installs for Gremlin Server -i option.

  • Fixed bug in keep-alive requests from over-queuing cancelled jobs.

  • Match numbers in choose() options using NumberHelper (match values, ignore data type).

  • Added support for GraphSON serialization of Date in Javascript.

  • Added synchronized Map to Gryo 1.0 registrations.

  • Added Triple to Gryo 1.0 registrations.

  • Added support for Double.NaN, Double.POSITIVE_INFINITY and Double.NEGATIVE_INFINITY.

  • Improved escaping of special characters in strings passed to the GroovyTranslator.

  • Added Cluster configuration option to set a custom validation script to use to test server connectivity in the Java driver.

  • Improved ability of GroovyTranslator to handle more types supported by GraphSON.

  • Improved ability of GroovyTranslator to handle custom types.

  • Added better internal processing of Column in by(Function).

  • Added hasNext() support on Traversal for gremlin-python.

  • Added support for additional extended types in Gremlin.Net with decimal, TimeSpan, BigInteger, byte, byte[], char and short.

  • Fixed bug in Java driver where an disorderly shutdown of the server would cause the client to hang.

  • Added a dotnet template project that should make it easier to get started with Gremlin.Net.

  • Removed ThreadInterruptCustomizerProvider from documentation as a way to timeout.

  • Changed behavior of withRemote() if called multiple times so as to simply throw an exception and not perform the side-effect of auto-closing.

  • Added Docker images for Gremlin Console and Gremlin Server.

  • Fixed bug in branch() where reducing steps as options would produce incorrect results.

  • Removed recursive handling of streaming results from Gremlin-Python driver to avoid max recursion depth errors.

  • Improved performance of TraversalVertexProgram and related infrastructure.

  • Checked web socket state before closing connection in the .NET driver.

  • Deprecated BulkLoaderVertexProgram and related infrastructure.

  • Deprecated BulkDumperVertexProgram with the more aptly named CloneVertexProgram.

  • Added createGratefulDead() to TinkerFactory to help make it easier to try to instantiate that toy graph.

  • Added identifiers to edges in the Kitchen Sink toy graph.

  • Ordered the loading of plugins in the Gremlin Console by their position in the configuration file.

  • Refactored the Gremlin Server integration testing framework and streamlined that infrastructure.

  • Logged the seed used in initializing Random for tests.

  • Fixed bug in GroovyTranslator that didn’t properly handle empty Map objects.

  • Added concrete configuration methods to SparkGraphComputer to make a more clear API for configuring it.

  • Fixed a bug in TinkerGraphCountStrategy, which didn’t consider that certain map steps may not emit an element.

  • Fixed a bug in JavaScript GLV where DriverRemoteConnection close() method didn’t returned a Promise instance.

  • Bumped to Jackson 2.9.6.

  • Sasl Plain Text Authentication added to Gremlin Javascript.

  • Ability to send scripts to server added to Gremlin Javascript.

  • Translator class added to Gremlin Javascript to translate bytecode to script clientside.

Bugs

  • TINKERPOP-1898 Issue with bindings in strategies and lambdas

  • TINKERPOP-1933 gremlin-python maximum recursion depth exceeded on large responses

  • TINKERPOP-1958 TinkerGraphCountStrategy can return wrong counts

  • TINKERPOP-1961 Duplicate copies of images directory in docs

  • TINKERPOP-1962 GroovyTranslator doesn’t handle empty maps

  • TINKERPOP-1963 Use of reducing step in choose()

  • TINKERPOP-1972 inject() tests are throwing exceptions in .NET GLV tests

  • TINKERPOP-1978 Check for Websocket connection state when retrieved from Connection Pool missing

  • TINKERPOP-1988 minor error in documentation

  • TINKERPOP-1999 [Java][gremlin-driver] Query to a remote server via the websocket client hangs indefinitely if the server becomes unavailable

  • TINKERPOP-2005 Intermittent NullPointerException in response handling

  • TINKERPOP-2009 Pick.any and Pick.none should be exposed in Gremlin-JavaScript

  • TINKERPOP-2030 KeepAlive task executed for every Connection.write call

  • TINKERPOP-2032 Update jython-standalone

  • TINKERPOP-2044 Cannot reconnect to Azure cosmos host that becomes available again

Improvements

  • TINKERPOP-1113 GraphComputer subclasses should support native methods

  • TINKERPOP-1365 Log the seed used to initialize Random in tests

  • TINKERPOP-1595 Go through TraversalVertexProgram with a profile and optimize.

  • TINKERPOP-1778 Do not promote timedInterrupt option for Gremlin Server script processing

  • TINKERPOP-1780 Add authentication tests for gremlin-python

  • TINKERPOP-1836 .NET sample project

  • TINKERPOP-1841 Include Python GLV tests on TravisCI

  • TINKERPOP-1897 Provide Docker images of Gremlin Server and Console

  • TINKERPOP-1945 Add support for extended GraphSon types to Gremlin.net

  • TINKERPOP-1951 gremlin-server.bat doesn’t support paths containing spaces

  • TINKERPOP-1959 Provide a way to submit scripts to the server in gremlin-javascript

  • TINKERPOP-1968 Refactor elements of Gremlin Server testing

  • TINKERPOP-1976 Include Computer tests for GLVs

  • TINKERPOP-1977 Gremlin-JavaScript: Support SASL authentication

  • TINKERPOP-1985 Update position on bulk loading

  • TINKERPOP-1989 Preserve order that plugins are applied in Gremlin Console

  • TINKERPOP-1995 DriverRemoteConnection close() method returns undefined

  • TINKERPOP-2011 Use NumberHelper on choose()

  • TINKERPOP-2012 Target .NET Standard 2.0 for Gremlin.Net

  • TINKERPOP-2015 Allow users to configure the WebSocket connections

  • TINKERPOP-2016 Upgrade Jackson FasterXML to 2.9.5 or later to fix security vulnerability

  • TINKERPOP-2017 Check for Column in by()

  • TINKERPOP-2022 Cluster SSL should trust default ca certs by default

  • TINKERPOP-2023 Gremlin Server should not create self-signed certs (breaking)

  • TINKERPOP-2024 Gremlin Server Application archetype should connect via withRemote

  • TINKERPOP-2025 Change to SHA-256/512 and drop SHA-1 for releases

  • TINKERPOP-2026 Gremlin.Net.Driver should check ClientWebSocket.State before closing

  • TINKERPOP-2034 Register synchronizedMap() with Gryo

  • TINKERPOP-2035 Gremlin-JavaScript: Pass custom headers to the websocket connection

  • TINKERPOP-2040 Improve flexibility of GroovyTranslator to handle custom types

  • TINKERPOP-2045 Remove non-indy groovy dependencies

  • TINKERPOP-2055 Provide support for special number cases like Infinity in GraphSON

  • TINKERPOP-2056 Use NumberHelper in Compare

TinkerPop 3.2.9 (Release Date: May 8, 2018)

  • Fixed bug where path history was not being preserved for keys in mutations.

  • Bumped to httpclient 4.5.5.

  • Bumped to Groovy 2.4.15 - fixes bug with Lambda construction.

  • Improved performance of GraphSON deserialization of Bytecode.

  • Improved performance of traversal construction.

Bugs

  • TINKERPOP-1947 Path history isn’t preserved for keys in mutations

Improvements

  • TINKERPOP-1755 No docs for ReferenceElements

  • TINKERPOP-1912 Remove MD5 checksums

  • TINKERPOP-1934 Bump to latest version of httpclient

  • TINKERPOP-1936 Performance enhancement to Bytecode deserialization

  • TINKERPOP-1944 JavaScript GLV: DriverRemoteConnection is not exported in the root module

  • TINKERPOP-1950 Traversal construction performance enhancements

  • TINKERPOP-1953 Bump to Groovy 2.4.15

TinkerPop 3.2.8 (Release Date: April 2, 2018)

  • Added a Lambda class to Gremlin.Net that makes it possible to use Groovy and Python lambdas with Gremlin.Net.

  • Enums are now represented as classes in Gremlin.Net which allows to use them as arguments in more steps.

  • Bumped to Groovy 2.4.14.

  • Added checkAdjacentVertices option to SubgraphStrategy.

  • Modified GremlinDslProcessor so that it generated the getAnonymousTraversalClass() method to return the DSL version of __.

  • Added the "Kitchen Sink" test data set.

  • Fixed deserialization of P.not() for GraphSON.

  • Bumped to Jackson 2.9.4.

  • Improved performance of JavaTranslator by caching reflected methods required for traversal construction.

  • Ensure that RemoteStrategy is applied before all other DecorationStrategy instances.

  • Added idleConnectionTimeout and keepAliveInterval to Gremlin Server that enables a "ping" and auto-close for seemingly dead clients.

  • Fixed a bug where lambdas in gremlin-python would trigger a failure if steps using python-only symbols were present (such as as_()).

  • Fixed a bug in NumberHelper that led to wrong min/max results if numbers exceeded the Integer limits.

  • Delayed setting of the request identifier until RequestMessage construction by the builder.

  • ReferenceElement avoids UnsupportedOperationException handling in construction thus improving performance.

  • Improved error messaging for failed serialization and deserialization of request/response messages.

  • Fixed handling of Direction.BOTH in Messenger implementations to pass the message to the opposite side of the StarGraph.

  • Removed hardcoded expectation in metrics serialization test suite as different providers may have different outputs.

  • Added IndexedTraverserSet which indexes on the value of a Traverser thus improving performance when used.

  • Utilized IndexedTraverserSet in TraversalVertexProgram to avoid extra iteration when doing Vertex lookups.

  • Bumped to Netty 4.0.56.Final.

  • Fixed .NET GraphSON serialization of P.Within() and P.without() when passing a Collection as an argument.

  • Fixed a bug in Gremlin Console which prevented handling of gremlin.sh flags that had an "=" between the flag and its arguments.

  • Fixed bug where SparkMessenger was not applying the edgeFunction from MessageScope.

  • Fixed a bug in ComputerAwareStep that didn’t handle reset() properly and thus occasionally produced some extra traversers.

  • Removed TraversalPredicate class in Gremlin.Net. It is now included in the P class instead.

Bugs

  • TINKERPOP-1053 installed plugins are placed in a directory relative to where gremlin.sh is started

  • TINKERPOP-1509 Failing test case for tree serialization

  • TINKERPOP-1738 Proper functioning of GraphSONReader depends on order of elements in String representation

  • TINKERPOP-1758 RemoteStrategy should be before all other DecorationStrategies.

  • TINKERPOP-1855 Update Rexster links

  • TINKERPOP-1859 Complex instance of P not serializing to bytecode properly

  • TINKERPOP-1860 valueMap(True) result in error in gremlin-python

  • TINKERPOP-1862 TinkerGraph VertexProgram message passing doesn’t work properly when using Direction.BOTH

  • TINKERPOP-1867 union() can produce extra traversers

  • TINKERPOP-1872 Apply edgeFunction in SparkMessenger

  • TINKERPOP-1873 min() and max() work only in the range of Integer values

  • TINKERPOP-1874 P does not appear to be serialized consistently in GraphSON

  • TINKERPOP-1879 Gremlin Console does not resepect equal sign for flag argument assignments

  • TINKERPOP-1880 Gremlin.NET Strong name signature could not be verified. (HRESULT: 0x80131045)

  • TINKERPOP-1883 gremlinpython future will never return

  • TINKERPOP-1890 getAnonymousTraversalClass() is not being generated for Java DSLs

  • TINKERPOP-1891 Serialization of P.not() for gremlin-javascript

  • TINKERPOP-1892 GLV test failures for .NET

  • TINKERPOP-1894 GraphSONMessageSerializerV2d0 fails to deserialize valid P.not()

  • TINKERPOP-1896 gremlin-python lambdas error

  • TINKERPOP-1907 Fix failing GLV test for withSack() in .NET

  • TINKERPOP-1917 gx:BigDecimal serialization broken in Gremlin.Net on systems with ',' as decimal separator

  • TINKERPOP-1918 Scenarios fail because of wrong numerical types

  • TINKERPOP-1919 Gherkin runner doesn’t work with P.And() and P.Or() in Gremlin.Net

  • TINKERPOP-1920 Tests fail because P.Within() arguments are wrapped in an array in Gremlin.Net

  • TINKERPOP-1922 Gherkin features fail that contain P.not() in Gremlin.Net

Improvements

  • TINKERPOP-1357 Centrality Recipes should mention pageRank and OLAP.

  • TINKERPOP-1489 Provide a Javascript Gremlin Language Variant

  • TINKERPOP-1586 SubgraphStrategy in OLAP

  • TINKERPOP-1726 Support WebSockets ping/pong keep-alive in Gremlin server

  • TINKERPOP-1842 iterate() missing in terminal steps documentation

  • TINKERPOP-1850 Range step has undocumented special values

  • TINKERPOP-1854 Support lambdas in Gremlin.Net

  • TINKERPOP-1857 GLV test suite consistency and completeness

  • TINKERPOP-1863 Delaying the setting of requestId till the RequestMessage instantiation time

  • TINKERPOP-1868 Support inject source step in Gremlin.Net

  • TINKERPOP-1870 n^2 synchronious operation in OLAP WorkerExecutor.execute() method

  • TINKERPOP-1877 Add new graph data for specialized testing scenarios

  • TINKERPOP-1884 Bump to Netty 4.0.56.Final

  • TINKERPOP-1885 Various Gremlin.Net documentation updates

  • TINKERPOP-1901 Enable usage of enums in more steps in Gremlin.Net

  • TINKERPOP-1908 Bump to Groovy 2.4.14

  • TINKERPOP-1911 Refactor JavaTranslator to cache all reflective calls

TinkerPop 3.2.7 (Release Date: December 17, 2017)

  • Added core GraphSON classes for Gremlin-Python: UUID, Date, and Timestamp.

  • Documented the recommended method for constructing DSLs with Gremlin.Net.

  • Provided a method to configure detachment options with EventStrategy.

  • Fixed a race condition in TinkerIndex.

  • Fixed bug in handling of the long forms of -e and -i (--execute and --interactive respectively) for Gremlin Console.

  • Fixed bug in LambdaRestrictionStrategy where traversals using Lambda scripts weren’t causing the strategy to trigger.

  • Improved error messaging for bytecode deserialization errors in Gremlin Server.

  • Fixed an ArrayOutOfBoundsException in hasId() for the rare situation when the provided collection is empty.

  • Bump to Netty 4.0.53

  • TraversalVertexProgram profile() now accounts for worker iteration in GraphComputer OLAP.

  • Returned the Builder instance from the DetachedEdge.Builder methods of setOutE and setOutV.

  • Added test framework for GLVs.

  • Fixed bug in TraversalHelper.replaceStep() where the step being replaced needed to be removed prior to the new one being added.

  • Added alias support in the .NET DriverRemoteConnection.

  • Added a test for self-edges and fixed Neo4jVertex to provided repeated self-edges on BOTH.

  • Better respected permissions on the plugins.txt file and prevented writing if marked as read-only.

  • Added getters for the lambdas held by LambdaCollectingBarrierStep, LambdaFlatMapStep and LambdaSideEffectStep.

  • Fixed an old hack in GroovyTranslator and PythonTranslator where Elements were being mapped to their id only.

  • Fixed an "attachement"-bug in InjectStep with a solution generalized to StartStep.

  • Truncate the script in error logs and error return messages for "Method code too large" errors in Gremlin Server.

  • Fixed a bug in LambdaRestrictionStrategy where it was too eager to consider a step as being a lambda step.

  • ReferenceVertex was missing its label() string. ReferenceElement now supports all label handling.

  • Fixed a bug where bytecode containing lambdas would randomly select a traversal source from bindings.

  • Deprecated GremlinScriptEngine.eval() methods and replaced them with new overloads that include the specific TraversalSource to bind to.

  • Added GraphHelper.cloneElements(Graph original, Graph clone) to the gremlin-test module to quickly clone a graph.

  • Added GremlinDsl.AnonymousMethod annotation to help provide explicit types for anonymous methods when the types are not easily inferred.

  • Bump to GMavenPlus 1.6.

  • Added better error message for illegal use of repeat()-step.

  • Fixed a bug in RangeByIsCountStrategy that led to unexpected behaviors when predicates were used with floating point numbers.

  • Bump to Jackson 2.8.10.

  • Deprecated MutationListener.vertexPropertyChanged() method that did not use VertexProperty and added a new method that does.

  • Added an EmbeddedRemoteConnection so that it’s possible to mimic a remote connection within the same JVM.

  • Supported interruption for remote traversals.

  • Allow the :remote command to accept a Cluster object defined in the console itself.

  • The Console’s plugin.txt file is only updated if there were manually uninstalled plugins.

  • Fixed a bug in MatchStep where mid-traversal where() variables were not being considered in start-scope.

  • Generalized MatchStep to locally compute all clauses with barriers (not just reducing barriers).

  • Ensured that plugins were applied in the order they were configured.

  • Fixed a bug in Neo4jGremlinPlugin that prevented it from loading properly in the GremlinPythonScriptEngine.

  • Fixed a bug in ComputerVerificationStrategy where child traversals were being analyzed prior to compilation.

  • Fixed a bug that prevented Gremlin from ordering lists and streams made of mixed number types.

  • Fixed a bug where keepLabels were being corrupted because a defensive copy was not being made when they were being set by PathRetractionStrategy.

  • Cancel script evaluation timeout in GremlinExecutor when script evaluation finished.

  • Added a recipe for OLAP traversals with Spark on YARN.

  • Added spark-yarn dependencies to the manifest of spark-gremlin.

Bugs

  • TINKERPOP-1650 PathRetractionStrategy makes Match steps unsolvable

  • TINKERPOP-1731 Docker build does not appear to work for gremlin-dotnet

  • TINKERPOP-1745 Gremlin .NET: Use DateTimeOffset instead of DateTime to represent g:Date

  • TINKERPOP-1753 OrderStep not able to order by non-integer numbers

  • TINKERPOP-1760 OLAP compilation failing around ConnectiveStrategy

  • TINKERPOP-1761 GremlinExecutor: Timeout future not cancelled on successful script evaluation

  • TINKERPOP-1762 Make MatchStep analyze mid-clause variables for executing ordering purposes.

  • TINKERPOP-1764 Generalize MatchStep to localize all barriers, not just reducing barriers.

  • TINKERPOP-1766 Gremlin.Net: Closed connections should not be re-used

  • TINKERPOP-1782 RangeByIsCountStrategy doesn’t handle floating point numbers properly

  • TINKERPOP-1789 Reference elements should be represented by id and label (breaking)

  • TINKERPOP-1790 GraphSON 3.0 doc updates

  • TINKERPOP-1791 GremlinDsl custom step with generic end type produces invalid code in __.java

  • TINKERPOP-1792 Random TraversalSource Selection in GremlinScriptEngine

  • TINKERPOP-1795 Getting Lambda comparator message for .profile() step

  • TINKERPOP-1796 Driver connection pool SSL properties missing

  • TINKERPOP-1797 LambdaRestrictionStrategy and LambdaMapStep in by()-modulation.

  • TINKERPOP-1798 MutationListener.vertexPropertyChanged oldValue should be a VertexProperty

  • TINKERPOP-1801 OLAP profile() step return incorrect timing

  • TINKERPOP-1802 hasId() fails for empty collections

  • TINKERPOP-1803 inject() doesn’t re-attach with remote traversals

  • TINKERPOP-1819 documentation query and description mismatch

  • TINKERPOP-1821 Consistent behavior of self-referencing edges

  • TINKERPOP-1825 Gremlin .NET: Constant() step has incorrect parameter defined

  • TINKERPOP-1830 Race condition in Tinkergraph index creation

  • TINKERPOP-1832 TraversalHelper.replaceStep sets previousStep to the wrong step

  • TINKERPOP-1846 LambdaRestrictionStrategy not triggering for Lambda scripts

  • TINKERPOP-1848 Fix g:Date assertion in python tests

  • TINKERPOP-1851 Gremlin long options for -e and -i are not working properly

Improvements

  • TINKERPOP-1661 Docker-built documentation does not always point locally

  • TINKERPOP-1725 DotNet GLV: Make traversal generation deterministic

  • TINKERPOP-1734 DSL for Gremlin .NET

  • TINKERPOP-1746 Better error message on wrong ordering of emit()/until()/has()

  • TINKERPOP-1752 Gremlin.Net: Generate completely type-safe methods

  • TINKERPOP-1756 Provide a way to easily mock a RemoteConnection for tests

  • TINKERPOP-1759 Improve hashcode and equals for Traverser implementations

  • TINKERPOP-1768 Bump to Jackson 2.8.10

  • TINKERPOP-1770 Remote traversal timeout

  • TINKERPOP-1771 gremlin.bat doesn’t support paths containing spaces

  • TINKERPOP-1779 Bump to GMavenPlus 1.6

  • TINKERPOP-1784 Gremlin Language Test Suite

  • TINKERPOP-1785 Gremlin.Net should be strong-name signed

  • TINKERPOP-1786 Recipe and missing manifest items for Spark on Yarn

  • TINKERPOP-1787 Allow :remote command to accept a user defined Cluster instance

  • TINKERPOP-1806 Consistently use Gremlin.Net instead of Gremlin-DotNet

  • TINKERPOP-1807 Gremlin-Python doesn’t support GraphSON types g:Date, g:Timestamp and g:UUID

  • TINKERPOP-1808 Add ability to get the consumer in LambdaSideEffectStep

  • TINKERPOP-1811 Improve error reporting for serialization errors between gremlin-python and gremlin-server

  • TINKERPOP-1812 ProfileTest assumes that graph implementations will not add their own steps

  • TINKERPOP-1813 Subgraph step requires the graph API

  • TINKERPOP-1814 Some process tests require the graph API

  • TINKERPOP-1820 Include .NET GLV tests on TravisCI

  • TINKERPOP-1824 Update netty version to 4.0.52

  • TINKERPOP-1827 Gremlin .NET: Test Suite Runner

  • TINKERPOP-1829 Improve flexibility of detachment for EventStrategy

  • TINKERPOP-1833