Skip to content

Latest commit

 

History

History
840 lines (634 loc) · 44.9 KB

CHANGELOG.asciidoc

File metadata and controls

840 lines (634 loc) · 44.9 KB

TinkerPop CHANGELOG

TinkerPop 4.0.0

gremlin standing

TinkerPop 4.0.0 (NOT OFFICIALLY RELEASED YET)

  • Added support for deserialization of Set for gremlin-javascript.

  • Added grammar-based Translator for all languages including explicit ones for Java and anonymization.

  • Removed grammar support for enums to be used as variables.

  • Changed valueMap in grammar to disallow the boolean argument as a variable to avoid ambiguous step calls.

  • Added integer overflow checks for sum().

  • Gremlin Server only supports instantiation of authentication.authenticationHandler with three-arg constructor.

  • Removed previously deprecated two-arg constructors for authentication.authenticationHandler implementations.

  • Removed previously deprecated one-arg constructor for AbstractAuthenticationHandler.

  • Deprecated withEmbedded() and withRemote() options on AnonymousTraversalSource.

  • Added with() on AnonymousTraversalSource to cover both embedded and remote creation options.

  • Renamed the traversal discarding none() step to discard().

  • Added new list filtering step none().

  • Changed sum() to retain the type common to the stream rather than always promoting to long given the need for it to multiple by the long bulk value for the traverser.

  • Added support for Set in GraphSON and GraphBinary serialization for gremlin-javascript, where it previously just converted to array.

  • Added Set syntax in gremlin-language.

  • Modified RequestInterceptor to be a UnaryOperator<HttpRequest> to abstract the underlying implementation.

  • Renamed MergeStep to MergeElementStep as it is a base class to mergeV() and mergeE().

  • Renamed TraversalMergeStep of merge() to MergeStep for consistency.

  • Removed the deprecated withGraph() option from AnonymousTraversalSource.

  • Removed the gremlin-archetype module in favor of newer sample applications in each GLV’s examples folder.

  • Bumped to commons-collection4.

  • Made mergeE() and mergeV() consistent in their use as a start step and as mid-traversal by always promoting the currently created or matched Element to the onCreate or onMatch child traversal.

  • Added withoutStrategies() syntax to the Gremlin ANTLR grammar.

  • Modified the Gremlin ANTLR grammar to more dynamically interact with any strategies registered globally to the TraversalStrategies cache sets.

  • Made new keyword optional in the Gremlin grammar.

  • Switched to HTTP protocol in gremlin-python and replaced GraphSONV2, GraphSONV2 & GraphBinaryV1 with GraphBinaryV4

  • Added support for chunked transfer in gremlin-python

  • Added TypeScript & ECMAScript module support.

  • Improved graph structures type definitions in TypeScript.

  • Removed usage of Bytecode for Gremlin Server and Java GLV, script engines and GremlinExecutor will not be able to handle Bytecode.

  • Bytecode - based authorization removed.

  • Added GremlinLang which allows to generate gremlin-lang compatible string based on Traversal.

  • Bindings replaced with 'Parameter`, it’s thread-safe construct which can be used to pass parameters from GLV to server.

  • Feature tests will be performed not only for GremlinGroovyScriptEngine, but also for GremlinLangScriptEngine.

  • Old translator’s removed, new Grammar-based one’s will be used.

  • Serialization support removed for Bindings and Bytecode.

  • EmbeddedRemoteConnection will use Gremlinlang, not JavaTranslator.

  • Java Client will no longer support submitting traversals. DriverRemoteConnection should be used instead.

  • Removed usage of Bytecode from gremlin-python.

  • Added auth module in gremlin-python for pluggable authentication.

  • Fixed GremlinLangScriptEngine handling for some strategies.

  • Updated Docker test suite set-up in gremlin-python to work with HTTP driver/server.

  • Modified the split() step to split a string into a list of its characters if the given separator is an empty string.

  • Remove serializers for datatype removed from GraphBinaryV4 IO spec.

  • Add DateTime serializer for Java and Python according to GraphBinaryV4 IO spec.

  • Replaced Date with OffsetDateTime in Java core.

  • Update serializers for label as a singleton list of string according to GraphBinaryV4 IO spec.

  • Added bulked byte to Response Message serialization according to GraphBinaryV4 IO spec.

  • Added a bulked header set by cluster setting, as well as a with bulked request option to turn on the bulking of result data.

  • Updated List and BulkSet serializers in Java and Python to implement bulk value flag for List according to GraphBinaryV4 IO spec.

  • The maxContentLength setting for Gremlin Driver has been renamed to maxResponseContentLength and now blocks incoming responses that are too large based on total response size.

  • The maxContentLength setting for Gremlin Server has been renamed to maxRequestContentLength.

  • Add missing strategies to the TraversalStrategies global cache as well as CoreImports in gremlin-groovy.

  • Add missing strategies to strategies.py in gremlin-python.

  • Updated OptionsStrategy in gremlin-python to take options directly as keyword arguments.

  • Added static instance() method to ElementIdStrategy to an instance with the default configuration.

  • Updated ElementIdStrategy.getConfiguration() to help with serialization.

  • Updated TraversalStrategyProxy to utilize strategy names instead of strategy classes

  • Use TraversalStrategyProxy in Java, or TraversalStrategy in Python to pass custom strategies in traversals

  • Removed minSize setting for Gremlin Driver connection pool since connections are now short-lived HTTP connections

  • Added idleConnectionTimeout setting for Gremlin Driver and automatic closing of idle connections

TinkerPop 3.7.0 (Gremfir Master of the Pan Flute)

gremlin zamfir

TinkerPop 3.7.4 (NOT OFFICIALLY RELEASED YET)

  • Add log entry in WsAndHttpChannelizerHandler.

  • Changed IdentityRemovalStrategy to omit IdentityStep if only with RepeatEndStep under RepeatStep.

  • Changed Gremlin grammar to make use of g to spawn child traversals a syntax error.

TinkerPop 3.7.3 (October 23, 2024)

This release also includes changes from 3.6.8.

  • Refactored mutation events registration by moving reusable code from relevant steps to EventUtil

  • Opened NoOpBarrierStep for extensibility (removed final keyword).

  • Deprecated public constructor for SeedStrategy in favor of builder pattern to be consistent with other strategies.

  • Allowed specification of a customized Spark app name.

  • Added getter method to CoinStep for its probability field.

  • Prevented decimal values from being parsed by asDate().

  • Prevented specification of Cardinality to option() when not used in conjunction with mergeV().

  • Exposed a mechanism for providers to customize the assertion of error messages in feature tests.

  • Attempted to detect JDK version for Gremlin Console to avoid problems with Java 17 if neo4j-gremlin is used.

  • Fixed so that TrimGlobalStep and TrimLocalStep have the same character control handling as Ltrim and Rtrim

  • Fixed a bug in MaxLocalStep, MinLocalStep, MeanLocalStep and SumLocalStep that it throws NoSuchElementException when encounters an empty iterator as input.

  • Fixed cases where Map keys of incomparable types could panic in gremlin-go.

  • Fixed an issue where missing necessary parameters for logging, resulting in '%!x(MISSING)' output in gremlin-go.

  • Added getter method to ConcatStep, ConjoinStep, SplitGlobalStep and SplitLocalStep for their private fields.

  • Fixed older driver GraphBinary compatibility problems where using ReferenceElementStrategy, properties on elements returned as null instead of empty List.

  • Gremlin Server docker containers shutdown gracefully when receiving a SIGTERM.

  • Added 'userProvidedLabel' property to detect if the default label was supplied explicitly or not.

  • Added DefaultIdManager.STRING for proper string id creation/handling.

  • Allowed specification of an Operator as a reducer in withSideEffect when parsing with the grammar.

  • Fixed bug in Bytecode build logic where duplicate strategies were added instead of replacing the existing ones.

  • Bump Groovy to 4.0.23

Bugs

  • TINKERPOP-3035 Add explicit property(IDictionary) for .NET

  • TINKERPOP-3050 security vulnerability in logback-core

  • TINKERPOP-3051 security vulnerability in logback-classic

  • TINKERPOP-3052 security vulnerability in ivy

  • TINKERPOP-3053 security vulnerability in netty-codec-http2

  • TINKERPOP-3076 Incorrect handling of large requests in Go GLV

  • TINKERPOP-3077 Javascript translator incorrectly handle quotes, null and undefined values

  • TINKERPOP-3079 The test TraversalStrategiesTest#shouldAllowUserManipulationOfGlobalCache is not idempotent, as it passes in the first run and fails in repeated runs in the same environment.

  • TINKERPOP-3081 When using authentication, evaluationTimeout is ignored

  • TINKERPOP-3089 min() and max() local forms not working properly with empty iterator input

  • TINKERPOP-3090 trim() steps not handling unicode characters properly

  • TINKERPOP-3093 optimization of readmap function

  • TINKERPOP-3105 Running 3.6.x python-driver with 3.7.x server leads to deserialization errors

  • TINKERPOP-3110 Incorrect Bytecode when multiple options are used in traversal

  • TINKERPOP-3116 async_timeout not declared in gremlinpython dependencies

Improvements

  • TINKERPOP-2700 WebSocket compression may lead to attacks (CRIME / BREACH)

  • TINKERPOP-3041 Consistent construction of SeedStrategy

  • TINKERPOP-3080 AggregateStep can support all Operators predefined in TinkerPop

  • TINKERPOP-3082 Tinkerpop hardcoded the Spark AppName

  • TINKERPOP-3086 Upgrade gremlin-python to newer Python interpreter

  • TINKERPOP-3098 Gremlin Console bat file is missing log level configuration option

  • TINKERPOP-3102 Cardinality input with mergeE step shouldn’t be allowed.

TinkerPop 3.7.2 (April 8, 2024)

This release also includes changes from 3.6.7.

  • Deprecated ltrim() and rTrim() in favor of l_trim() and r_trim in Python.

  • Fixed bug in onCreate for mergeV() where use of the Cardinality functions was not properly handled.

  • Fixed multiple concurrent initially requests caused authentication to fail.

Bugs

  • TINKERPOP-2132 Authentication when using multiple threads fails

  • TINKERPOP-2359 onShutDown not being called when docker container stopped

  • TINKERPOP-2913 Ensure that if tx.commit() is called remotely it does not hang for graphs without transactions

  • TINKERPOP-3012 Wrong hashCode implementation for DetachedVertexPropert

  • TINKERPOP-3022 JavaTranslator failing for has(String, null)

  • TINKERPOP-3025 l_trim() and r_trim() missing in python

  • TINKERPOP-3026 checkAdjacentVertices is misconfigured for python in SubgraphStrategy

  • TINKERPOP-3027 Pick.any should be any_()

  • TINKERPOP-3029 Gremlin.Net: Traversal enumeration fails on .NET 8

  • TINKERPOP-3031 Bad translation for g.tx()

  • TINKERPOP-3039 Java driver won’t propagate with args when using aliased client directly

  • TINKERPOP-3049 onCreate for mergeV() doesn’t handle Cardinality functions

  • TINKERPOP-3054 RequestId serialization broken in Python GLV

  • TINKERPOP-3056 mergeE is updating vertices in certain conditions

  • TINKERPOP-3061 Concurrent queries will break authentication on javascript driver

Improvements

  • TINKERPOP-2456 Add missing tests for queries

  • TINKERPOP-2872 Inconsistency in comparing Elements in JavaScript tests

  • TINKERPOP-2995 Create Sample Applications in each GLV

  • TINKERPOP-3020 Incorrect tests

  • TINKERPOP-3021 Publish ARM64 Gremlin Console Images

  • TINKERPOP-3030 Update to .NET 8

  • TINKERPOP-3068 Make serviceName and mergedParams public for provider usage in CallStep

TinkerPop 3.7.1 (November 20, 2023)

This release also includes changes from 3.6.6 and 3.5.8.

  • Added the asString(), length(), toLower(), and toUpper() steps to perform String manipulations.

  • Added Gherkin parsing support for specific string results using str[].

  • Added the trim(), lTrim(), rTrim(), and reverse() steps to perform String manipulations.

  • Added replace(), split() and substring() steps to perform String manipulations.

  • Added Scope to asString(), length(), toLower(), toUpper(), trim(), lTrim(), rTrim(), replace(), `split() and substring() to allow String manipulation inside incoming lists.

  • Update concat() to accept Traversal varargs.

  • Corrected concat() signatures in gremlin-dotnet, Concat() is now used instead of Concat<object>(). (breaking)

  • Update concat() to not special treat inject in arguments and use TraversalUtil.apply on it as with any other child traversals. (breaking)

  • Added format() step to perform String manipulations.

  • Checked graph features for meta-property support before trying to serialize them in VertexPropertySerializer for GraphBinary.

  • Fixed multiline query bug in console caused by upgrade to Groovy 4.

  • Added date manipulation steps asDate, dateAdd and dateDiff.

  • Added new data type DT to represent periods of time.

  • Added Gherkin support for Date.

  • Extended datetime() function to produce a current server date.

  • Added list filtering functions all and any.

  • Added list/set functions conjoin, combine, difference, disjunct, intersect, merge, and product.

  • Added getter for isStart on UnionStep.

  • Added NullVariableResolver that will quietly produce a null for each variable found when parsing with the grammar.

  • Changed the @MultiMetaProperties testing tag for Gherkin feature tests to instead be separate @MetaProperties and @MultiProperties.

  • Added agent parameter to DriverRemoteConnection options to allow a user-provided http.Agent implementation.

  • Fixed deserialization of element properties for GraphBinary.

  • Fixed bug in union() as a start step where the Path was including the starting dummy traverser.

  • Moved some TinkerGraph specific transaction tests from TransactionMultiThreadedTest to TinkerTransactionGraphTest

  • Fixed incorrect read operations in some cases for TinkerTransactionGraph.

  • Updated JavaScript tests to check equality on only id and class when comparing elements for consistency with other GLVs.

  • Improved performance for Element comparison by comparing hashCode() prior to doing more expensive checks.

Bugs

  • TINKERPOP-2811 ElementIdStrategy doesn’t replace all references of an element’s id with the specified custom id property

  • TINKERPOP-2921 Filters not working when side-effect is used with group()

  • TINKERPOP-2976 InvalidOperationException: Collection was modified in GraphBinary serialization

  • TINKERPOP-2983 Upgrade Netty for Security Reasons

  • TINKERPOP-2996 Golang Translator in core does not properly translate list arguments

  • TINKERPOP-2999 3.7.0 Remote Console Sends Incomplete Queries

  • TINKERPOP-3000 Issue with union step when using path().by()

  • TINKERPOP-3001 Gremlin Console complains about missing serializers field

  • TINKERPOP-3004 Low performance for queries with a large number of element comparisons

  • TINKERPOP-3009 SubgraphStrategy produces excessive filtering when multiple labels are filtered upon

  • TINKERPOP-3010 Move TinkerGraph specific transaction testing

  • TINKERPOP-3013 Console not sending scripts to the server when :remote console is enabled

  • TINKERPOP-3014 Dependencny jcl-over-slf4j in gremlin-core is declared but unused due to dependency conflict.

  • TINKERPOP-3016 TinkerTransactionGraph can incorrectly handle some read operations.

Improvements

  • TINKERPOP-2334 Add format() step

  • TINKERPOP-2672 Add String Manipulation Steps to Gremlin

  • TINKERPOP-2802 Support Adding Custom Serializer for Gremlin Go

  • TINKERPOP-2830 Handle User-Agent from HTTP Requests to server

  • TINKERPOP-2946 Resolve ordering issues in gherkin tests

  • TINKERPOP-2951 Add translator to the Go GLV

  • TINKERPOP-2964 Many TraversalParent’s steps have a replaceLocalChild logic that can result in a new ChildTraversal having an ID that already exists.

  • TINKERPOP-2978 Add List Manipulation Steps to Gremlin

  • TINKERPOP-2979 Add Date Manipulation Steps to Gremlin

  • TINKERPOP-2982 Allow gremlin-driver usage over HTTP

  • TINKERPOP-2984 Replace Moq mocking library in .NET tests

  • TINKERPOP-2986 StarGraph shall drop edge properties when dropping edges

  • TINKERPOP-2988 Serialization error throws an Invalid OpProcessor exception when using stream() API

  • TINKERPOP-2991 Reformat Javadoc link in reference docs

  • TINKERPOP-2994 PartitionStrategy does not work with mergeV() and mergeE()

  • TINKERPOP-2998 UnionStep.isStart needs a public getter

  • TINKERPOP-3008 Update concat() to accept traversal varargs and remove special treatment of inject child traversals (breaking)

TinkerPop 3.7.0 (Release Date: July 31, 2023)

This release also includes changes from 3.6.5 and 3.5.7.

  • Allowed mergeV() and property(Map) to more easily define Cardinality values for properties for onMatch and onCreate options.

  • Removed connectOnStartup configuration option from gremlin-javascript.

  • Added marker interface PBiPredicate for predefined predicates.

  • Changed Gremlin.version() to read from the more specifically named tinkerpop-version attribute.

  • Added warning on vertex property cardinality mismatch when reading GraphML.

  • Added a union() start step.

  • Added the concat() step to perform String concatenations.

  • Added TinkerTransactionGraph, a reference implementation of transactional TinkerGraph

  • Replaced instances of Neo4j transaction graph with TinkerTransactionGraph for server, driver, and GLV integration tests

  • Bumped to ws 8.x for gremlin-javascript.

  • Added support for mid-traversal E()-steps to Gremlin core and GLV’s.

  • Added nullable annotations to Gremlin.NET.

  • Bumped Objenesis to 3.3 in gremlin-shaded.

  • Moved Java serializer, message and token classes from gremlin-driver to a new gremlin-util module.

  • Moved SimpleSocketServer and its initializers to a new gremlin-tools/gremlin-socket-server module.

  • Configured gremlin-socket-server to build a docker image which can be used for testing GLV’s. (Can be skipped with -DskipImageBuild)

  • Reduced dependency from gremlin-server onto gremlin-driver to a test scope only.

  • Added RequestOptions and RequestOptionsBuilder types to Go GLV to encapsulate per-request settings and bindings.

  • Added SubmitWithOptions() methods to Client and DriverRemoteConnection in Go GLV to pass RequestOptions to the server.

  • Changed default behavior for returning properties on graph elements for OLTP queries so that properties are now returned.

  • Detachment is no longer performed in TraverserIterator.

  • Prevented ConcurentModificationException when removing all labels from a Step.

  • Added materializeProperties request option to control properties serialization.

  • Modified serializers in to handle serialization and deserialization of properties.

  • Added functional properties to the graph structure components for .NET, GO and Python.

  • Modified the GremlinScriptChecker to extract the materializeProperties request option.

  • Neo4jVertexProperty no longer throw Exception for properties(), but return empty Iterable.

  • Modified the grammar to allow for parameters to be specified in Gremlin.

  • Modified GremlinLangScriptEngine to take bindings.

  • Removed deprecated getInstance() method for grammar Visitor implementations.

  • Renamed all MessageSerializer implementations that used the "d0" suffix to drop that convention.

  • Removed deprecated GraphSONMessageSerializerGremlinV1d0 as this is now GraphSONMessageSerializerV1 to be consistent with other naming.

  • Added GraphSONUntypedMessageSerializerV1 which was formerly GraphSONMessageSerializerV1d0 to be consistent with other naming.

  • Added GraphSONUntypedMessageSerializerV3 which essentially matches the format of GraphSON 1.0 in its untyped form.

  • Removed gremlin-io-test and moved that IO type of testing to gremlin-util.

  • Bumped Groovy to 4.0.9.

  • Bumped GMavenPlus to 2.1.0.

  • Bumped Spark to 3.3.2.

  • Enabled building and testing with JDK 17.

  • Raised minimum node version for gremlin-javascript and gremlint to node 18

Bugs

  • TINKERPOP-2526 Gremlin Console performance with incomplete multi-line scripts

  • TINKERPOP-2677 Upgrade to Groovy 3.x to fix XStream security vulnerability

  • TINKERPOP-2708 unhandledRejection upon connection failure (breaking)

  • TINKERPOP-2734 NullPointerException when calling Client chooseConnection()

  • TINKERPOP-2736 PluginAcceptror interface no more available in 3.5.3+ but referred in documentation

  • TINKERPOP-2741 GraphMLWriter error message is not properly formatted

  • TINKERPOP-2742 IO read may use wrong cardinality for property

  • TINKERPOP-2746 Medium security vulnerabilities on logback-core

  • TINKERPOP-2751 Transaction: tx.commit() hangs up in javascript client-lib

  • TINKERPOP-2754 Javascript client hangs if the server restarts

  • TINKERPOP-2765 Race condition during script creation when using UnifiedChannelizer

  • TINKERPOP-2767 Repeat Out Times traversal hangs indefinitely on first execution

  • TINKERPOP-2768 BranchStep pickToken should be integrated when added as a child option

  • TINKERPOP-2769 gremlin-server does not reply with a timeout response to all timed out requests

  • TINKERPOP-2771 Critical severity security vulnerabilty in commons-configuration 2.7

  • TINKERPOP-2775 Remove dependency on cloudflare CDN

  • TINKERPOP-2796 High severity security vulnerability found in snakeyaml

  • TINKERPOP-2801 Incorrect deprecation notice on gremlin-python

  • TINKERPOP-2803 Incorrect count() with sample() in TinkerGraph

  • TINKERPOP-2805 No results returned for multiple labels to select()

  • TINKERPOP-2809 High severity security vulnerability found in jackson databind

  • TINKERPOP-2815 Critical security vulnerability for apache commons-text

  • TINKERPOP-2816 Gherkin test issues for implementers

  • TINKERPOP-2817 "Could not find a type identifier for the class : class java.lang.Byte" occurs when dumping graph to graphson format

  • TINKERPOP-2820 gremlin-python _close_session race condition/FD leak

  • TINKERPOP-2826 Critical security vulnerability in ivy

  • TINKERPOP-2836 Github actions do not run java driver integration tests

  • TINKERPOP-2840 Test Failures on NonDex

  • TINKERPOP-2843 Security vulnerabilities found in netty version 4.1.77

  • TINKERPOP-2849 Incorrect implementation for GraphTraversalSource.With in gremlin-go

  • TINKERPOP-2855 Performance degradation in TinkerGraph 3.5.4 and 3.5.5

  • TINKERPOP-2856 math() step fails if variable name contains a keyword

  • TINKERPOP-2858 ConcurrentModificationException in ConnectiveStrategy

  • TINKERPOP-2861 Fix incorrect symlinks in source release zip

  • TINKERPOP-2863 HasId Step generates incorrect results when given a list of IDs mid-traversal

  • TINKERPOP-2870 mergeV requires key of 'new' to be quoted

  • TINKERPOP-2878 Incorrect handling of local operations when there are duplicate elements

  • TINKERPOP-2888 DefaultTraversal’s applyStrategies performance decrease

  • TINKERPOP-2891 Inconsistent behavior when comparing a counted value with a negative value

  • TINKERPOP-2893 Incorrectly comparing a counted value with multiple predicates

  • TINKERPOP-2901 Incorrect result caused by has(key, predicate)

  • TINKERPOP-2902 Critical security vulnerability in snakeyaml

  • TINKERPOP-2905 gremlin-go gorillaTransporter.logHandler is not initialized correctly and leads to panic

  • TINKERPOP-2911 CountStrategy converts count().is(0) wrongly under ConnectiveStrategy

  • TINKERPOP-2918 Utils.GenerateUserAgent assumes Gremlin.Net.dll to be present when, in some environments, it is not.

  • TINKERPOP-2920 SubgraphStrategy failure when property key not present on vertex in by()

  • TINKERPOP-2922 GroovyTranslator produces a Map not parseable by the grammar

  • TINKERPOP-2925 mergeE() in javascript producing an error

  • TINKERPOP-2926 Gremlin-Java > An UnsupportedOperationException occurs on calling next() after a merge step with the option step modulator if the element does not exist

  • TINKERPOP-2928 element() not working in conjunction with edge properties

  • TINKERPOP-2937 Throw an error when trying to use a closed connection

  • TINKERPOP-2944 Memory leak in Gremlin.Net driver if CancellationToken is used

  • TINKERPOP-2945 TextP.regex() Serialization Failing in Java driver

  • TINKERPOP-2948 PRISMA security vulnerabilty for jackson-databind 2.14.0 (breaking)

  • TINKERPOP-2953 Static import for __.values() overriden by Column.values()

  • TINKERPOP-2957 mergeV with sideEffect not correctly updating properties

  • TINKERPOP-2958 ScheduledExecutorService for timeouts are never cancelled

  • TINKERPOP-2965 FilterRankingStrategy removing labels it shouldn’t in certain conditions

Improvements

  • TINKERPOP-1403 Provide support for GraphFilter.vertexProperties() (breaking)

  • TINKERPOP-2229 JavaScript GLV: Add GraphBinary Support

  • TINKERPOP-2348 Enable nullable checks

  • TINKERPOP-2373 Bump to Groovy 4.0

  • TINKERPOP-2471 Add logging to Gremlin.Net driver

  • TINKERPOP-2480 User agent for Gremlin drivers

  • TINKERPOP-2622 Enforce ordering semantics in feature tests

  • TINKERPOP-2631 GraphSON float serialization when ujson is used is imprecise

  • TINKERPOP-2633 Support Gremlin Console on Java 17

  • TINKERPOP-2693 Complete GraphBinary support in Python

  • TINKERPOP-2696 Refactor Gherkin test framework to better handle bindings

  • TINKERPOP-2703 Build on JDK17

  • TINKERPOP-2715 remove log4jv1 dependency

  • TINKERPOP-2723 Make GraphBinary the default serialization format for .NET and Python

  • TINKERPOP-2731 Bump to Spark 3.3.0

  • TINKERPOP-2737 Dockerized Build and Test Environments

  • TINKERPOP-2747 Add function callback hooks for gremlin-go authentication

  • TINKERPOP-2748 Medium security vulnerability on netty-all and netty-codec

  • TINKERPOP-2749 Support Windows Build

  • TINKERPOP-2761 Gremlin: use another manifest name for version

  • TINKERPOP-2762 getScopeKeys should respect the order of keys passed in Step

  • TINKERPOP-2764 AWS Neptune returns an inaccessible structured error response

  • TINKERPOP-2772 Add Spark utility to load vertices as RDD

  • TINKERPOP-2776 Add website analytics for TinkerPop apache site

  • TINKERPOP-2779 Floating ConnectedComponent Feature Failures for GitHub Actions on windows

  • TINKERPOP-2785 Inability to Mock Returned Result Types in Gremlin-Go Driver

  • TINKERPOP-2792 Better exception when JavaTranslator finds a method but not the overload

  • TINKERPOP-2794 Allow cancellation of Gremlin.Net async methods

  • TINKERPOP-2798 Add support for mid-traversal E()

  • TINKERPOP-2804 gherkin feature files should be on the classpath

  • TINKERPOP-2806 Provide method for provider plugins to get notified on script/query processing

  • TINKERPOP-2808 Improve Compatibility on ARM machines

  • TINKERPOP-2810 gremlinpython aiohttp dependency requirement too strict

  • TINKERPOP-2813 Improve driver usability for cases where NoHostAvailableException is currently thrown

  • TINKERPOP-2814 Add a SSL handshake timeout configuration to the driver

  • TINKERPOP-2818 exclude mockito-core in gremlin-core [compile scope] (import by jcabi-manifests)

  • TINKERPOP-2824 Properties on Elements (breaking)

  • TINKERPOP-2834 CloneVertexProgram optimization on SparkGraphComputer

  • TINKERPOP-2838 Add UserAgent GLV Tests

  • TINKERPOP-2841 Test and Fix Per Request Settings in Go

  • TINKERPOP-2842 Expand GremlinScriptChecker to include request id overrides

  • TINKERPOP-2844 Test and Fix Per Request Settings in Python

  • TINKERPOP-2850 Modifications to mergeV/E semantics

  • TINKERPOP-2852 Update Maven plugin for docker-images building for M1 compatibility

  • TINKERPOP-2853 Gremlin.Net driver should throw better exception message for unsupported GraphBinary type

  • TINKERPOP-2857 GraphSONRecordReader does not allow configure a GraphFilter during deserialization

  • TINKERPOP-2865 Add has steps injected by PartitionStrategy at the end of the filter

  • TINKERPOP-2873 Allow Union of Traversals

  • TINKERPOP-2890 Avoid exceptions on local scope based steps where possible

  • TINKERPOP-2899 SampleGlobalStep samples inefficiently with TraverserSet running into hash collisions

  • TINKERPOP-2912 Improve error message for addE() when traverser is incorrect

  • TINKERPOP-2919 Improve performance of FilterRankingStrategy for deeply nested traversals

  • TINKERPOP-2924 Refactor PropertyMapStep to be able to overwrite map method

  • TINKERPOP-2929 Introduce new marker interfaces to identify whether a step can perform write or delete or both

  • TINKERPOP-2931 Fix a few minor mergeV/E issues

  • TINKERPOP-2934 Optimize ObjectWritable for displaying content of Java Collection or Map to reduce OOM

  • TINKERPOP-2938 Revisit merge step feature tests

  • TINKERPOP-2939 The Merge onMatch map validation is during execution instead of construction

  • TINKERPOP-2941 DO NOT purge the output location if it has content in SparkGraphComputer

  • TINKERPOP-2947 Provide a plain text serializer for HTTP

  • TINKERPOP-2949 More strict handling of predicates

  • TINKERPOP-2954 Pass Gremlin Version from Maven to Java Without Manifests

  • TINKERPOP-2955 Support SSL in WebSocketClient

  • TINKERPOP-2959 Allow the grammar to support parameters

  • TINKERPOP-2963 Introduce new mimeType to return GraphSon-1.0 in text format

  • TINKERPOP-2967 Add untyped GraphSON 3.0 format

  • TINKERPOP-2975 Native transaction support for Tinkerpop

  • TINKERPOP-2977 Deprecate Neo4j-Gremlin

TinkerPop 3.6.0 (Tinkerheart)

gremlin victorian

TinkerPop 3.6.8 (October 23, 2024)

Please see the archived 3.6.8 changelog.

TinkerPop 3.6.7 (April 8, 2024)

Please see the archived 3.6.7 changelog.

TinkerPop 3.6.6 (November 20, 2023)

Please see the archived 3.6.6 changelog.

TinkerPop 3.6.5 (Release Date: July 31, 2023)

Please see the archived 3.6.5 changelog.

TinkerPop 3.6.4 (Release Date: May 12, 2023)

Please see the archived 3.6.4 changelog.

TinkerPop 3.6.3 (Release Date: May 1, 2023)

Please see the archived 3.6.3 changelog.

TinkerPop 3.6.2 (Release Date: January 16, 2023)

Please see the archived 3.6.2 changelog.

TinkerPop 3.6.1 (Release Date: July 18, 2022)

Please see the archived 3.6.1 changelog.

TinkerPop 3.6.0 (Release Date: April 4, 2022)

Please see the archived 3.6.0 changelog.

TinkerPop 3.5.0 (The Sleeping Gremlin: No. 18 Entr’acte Symphonique)

gremlin sleeping beauty

TinkerPop 3.5.8 (Release Date: November 20, 2023)

Please see the archived 3.5.8 changelog.

TinkerPop 3.5.7 (Release Date: July 31, 2023)

Please see the archived 3.5.7 changelog.

TinkerPop 3.5.6 (Release Date: May 1, 2023)

Please see the archived 3.5.6 changelog.

TinkerPop 3.5.5 (Release Date: January 16, 2023)

Please see the archived 3.5.5 changelog.

TinkerPop 3.5.4 (Release Date: July 18, 2022)

Please see the archived 3.5.4 changelog.

TinkerPop 3.5.3 (Release Date: April 4, 2022)

Please see the archived 3.5.3 changelog.

TinkerPop 3.5.2 (Release Date: January 10, 2022)

Please see the archived 3.5.2 changelog.

TinkerPop 3.5.1 (Release Date: July 19, 2021)

Please see the archived 3.5.1 changelog.

TinkerPop 3.5.0 (Release Date: May 3, 2021)

Please see the archived 3.5.0 changelog.

TinkerPop 3.4.0 (Avant-Gremlin Construction #3 for Theremin and Flowers)

avant gremlin

TinkerPop 3.4.13 (Release Date: January 10, 2022)

Please see the archived 3.4.13 changelog.

TinkerPop 3.4.12 (Release Date: July 19, 2021)

Please see the archived 3.4.12 changelog.

TinkerPop 3.4.11 (Release Date: May 3, 2021)

Please see the archived 3.4.11 changelog.

TinkerPop 3.4.10 (Release Date: January 18, 2021)

Please see the archived 3.4.10 changelog.

TinkerPop 3.4.9 (Release Date: December 7, 2020)

Please see the archived 3.4.9 changelog.

TinkerPop 3.4.8 (Release Date: August 3, 2020)

Please see the archived 3.4.8 changelog.

TinkerPop 3.4.7 (Release Date: June 1, 2020)

Please see the archived 3.4.7 changelog.

TinkerPop 3.4.6 (Release Date: February 20, 2020)

Please see the archived 3.4.6 changelog.

TinkerPop 3.4.5 (Release Date: February 3, 2020)

Please see the archived 3.4.5 changelog.

TinkerPop 3.4.4 (Release Date: October 14, 2019)

Please see the archived 3.4.4 changelog.

TinkerPop 3.4.3 (Release Date: August 5, 2019)

Please see the archived 3.4.3 changelog.

TinkerPop 3.4.2 (Release Date: May 28, 2019)

Please see the archived 3.4.2 changelog.

TinkerPop 3.4.1 (Release Date: March 18, 2019)

Please see the archived 3.4.1 changelog.

TinkerPop 3.4.0 (Release Date: January 2, 2019)

Please see the archived 3.4.0 changelog.

TinkerPop 3.3.0 (Gremlin Symphony #40 in G Minor)

gremlin mozart

TinkerPop 3.3.11 (Release Date: June 1, 2020)

Please see the archived 3.3.11 changelog.

TinkerPop 3.3.10 (Release Date: February 3, 2020)

Please see the archived 3.3.10 changelog.

TinkerPop 3.3.9 (Release Date: October 14, 2019)

Please see the archived 3.3.9 changelog.

TinkerPop 3.3.8 (Release Date: August 5, 2019)

Please see the archived 3.3.8 changelog.

TinkerPop 3.3.7 (Release Date: May 28, 2019)

Please see the archived 3.3.7 changelog.

TinkerPop 3.3.6 (Release Date: March 18, 2019)

Please see the archived 3.3.6 changelog.

TinkerPop 3.3.5 (Release Date: January 2, 2019)

Please see the archived 3.3.5 changelog.

TinkerPop 3.3.4 (Release Date: October 15, 2018)

Please see the archived 3.3.4 changelog.

TinkerPop 3.3.3 (Release Date: May 8, 2018)

Please see the archived 3.3.3 changelog.

TinkerPop 3.3.2 (Release Date: April 2, 2018)

Please see the archived 3.3.2 changelog.

TinkerPop 3.3.1 (Release Date: December 17, 2017)

Please see the archived 3.3.1 changelog.

TinkerPop 3.3.0 (Release Date: August 21, 2017)

Please see the archived 3.3.0 changelog.

TinkerPop 3.2.0 (Nine Inch Gremlins)

nine inch gremlins

TinkerPop 3.2.11 (Release Date: January 2, 2019)

Please see the archived 3.2.11 changelog.

TinkerPop 3.2.10 (Release Date: October 15, 2018)

Please see the archived 3.2.10 changelog.

TinkerPop 3.2.9 (Release Date: May 8, 2018)

Please see the archived 3.2.9 changelog.

TinkerPop 3.2.8 (Release Date: April 2, 2018)

Please see the archived 3.2.8 changelog.

TinkerPop 3.2.7 (Release Date: December 17, 2017)

Please see the archived 3.2.7 changelog.

TinkerPop 3.2.6 (Release Date: August 21, 2017)

Please see the archived 3.2.6 changelog.

TinkerPop 3.2.5 (Release Date: June 12, 2017)

Please see the archived 3.2.5 changelog.

TinkerPop 3.2.4 (Release Date: February 8, 2017)

Please see the archived 3.2.4 changelog.

TinkerPop 3.2.3 (Release Date: October 17, 2016)

Please see the archived 3.2.3 changelog.

TinkerPop 3.2.2 (Release Date: September 6, 2016)

Please see the archived 3.2.2 changelog.

TinkerPop 3.2.1 (Release Date: July 18, 2016)

Please see the archived 3.2.1 changelog.

TinkerPop 3.2.0 (Release Date: April 8, 2016)

Please see the archived 3.2.0 changelog.

TinkerPop 3.1.0 (A 187 On The Undercover Gremlinz)

gremlin gangster

TinkerPop 3.1.8 (Release Date: August 21, 2017)

Please see the archived 3.1.8 changelog.

TinkerPop 3.1.7 (Release Date: June 12, 2017)

Please see the archived 3.1.7 changelog.

TinkerPop 3.1.6 (Release Date: February 3, 2017)

Please see the archived 3.1.6 changelog.

TinkerPop 3.1.5 (Release Date: October 17, 2016)

Please see the archived 3.1.5 changelog.

TinkerPop 3.1.4 (Release Date: September 6, 2016)

Please see the archived 3.1.4 changelog.

TinkerPop 3.1.3 (Release Date: July 18, 2016)

Please see the archived 3.1.3 changelog.

TinkerPop 3.1.2 (Release Date: April 8, 2016)

Please see the archived 3.1.2 changelog.

TinkerPop 3.1.1 (Release Date: February 8, 2016)

Please see the archived 3.1.1 changelog.

TinkerPop 3.1.0 (Release Date: November 16, 2015)

Please see the archived 3.1.0 changelog.

TinkerPop 3.0.0 (A Gremlin Rāga in 7/16 Time)

gremlin hindu

TinkerPop 3.0.2 (Release Date: October 19, 2015)

Please see the archived 3.0.2 changelog.

TinkerPop 3.0.1 (Release Date: September 2, 2015)

Please see the archived 3.0.1 changelog.

TinkerPop 3.0.0 (Release Date: July 9, 2015)

Please see the archived 3.0.0 changelog.

TinkerPop 3.0.0.M9 (Release Date: May 26, 2015)

Please see the archived 3.0.0.M9 changelog.

TinkerPop 3.0.0.M8 (Release Date: April 6, 2015)

Please see the archived 3.0.0.M8 changelog.

TinkerPop 3.0.0.M7 (Release Date: January 19, 2015)

Please see the archived 3.0.0.M7 changelog.

TinkerPop 3.0.0.M6 (Release Date: December 2, 2014)

Please see the archived 3.0.0.M6 changelog.

TinkerPop 3.0.0.M5 (Release Date: November 7, 2014)

Please see the archived 3.0.0.M5 changelog.

TinkerPop 3.0.0.M4 (Release Date: October 21, 2014)

Please see the archived 3.0.0.M4 changelog.

TinkerPop 3.0.0.M3 (Release Date: October 6, 2014)

Please see the archived 3.0.0.M3 changelog.

TinkerPop 3.0.0.M2 (Release Date: September 23, 2014)

Please see the archived 3.0.0.M2 changelog.

TinkerPop 3.0.0.M1 (Release Date: August 12, 2014)

  • First official release of TinkerPop3 and thus, no changes.