-
Added Gremlator, a single page web application, that translates Gremlin into various programming languages like Javascript and Python.
-
Removed
uuiddependency fromgremlin-javascriptin favor of the built-inglobalThis.crypto.randomUUID().
-
Improved number type handling in
gremlin-javascript: smart GremlinLang type suffixes,bigintas BigInteger, and Long deserialization now returnsbigintfor values beyond safe integer range. -
Removed
neo4j-gremlinmodule which was deprecated in 3.7.0. -
Added grammar-based
Translatorforgremlin-javascriptsupporting translation to JavaScript, Python, Go, .NET, Java, Groovy, canonical, and anonymized output. -
Added
translate_gremlin_querytool togremlin-mcpthat translates Gremlin queries to a target language variant, with optional LLM-assisted normalization via MCP sampling for non-canonical input. -
Modified
gremlin-mcpto support offline mode where utility tools (translate, format) remain available without a configuredGREMLIN_MCP_ENDPOINT. -
Added
containsandkeys()toElementingremlin-python. -
Added
subgraph()support forgremlin-pythonso that results are stored in a detachedGraphobject. -
Added support for remote transactions to the
gremlin-serverthroughTransactionManagerandUnmanagedTransaction. -
Added support for transactions to
gremlin-driverusing the newHttpRemoteTransaction. -
Modified grammar to make
discard()usage more consistent as a filter step where it can now be used to chain additional traversal steps and be used anonymously. -
Removed
Metafield fromResponseResultstruct ingremlin-go. -
Removed deprecated elements of the Java-based process testing suite:
ProcessStandardSuite,ProcessComputerSuite,ProcessLimitedSuiteand associated tests. -
Removed redundant Gremlin Server integration testing:
org.apache.tinkerpop.gremlin.process.*and related infrastructure. -
Removed obsolete
gremlin-groovytranslation testing:ParameterizedGroovyTranslatorProviderand related infrastructure. -
Removed deprecated
Graph.traversal()method in JS in favor of the anonymoustraversal()function. -
Replace
BytecodewithGremlinLang& update serialization to GraphBinary 4 forgremlin-go. -
Added
RequestInterceptortogremlin-gowithauthreference implementations to replaceauthInfo. -
Refactored GraphBinary serializers in
gremlin-goto useio.Writerandio.Readerinstead of*bytes.Bufferfor streaming capacities. -
Refactored
httpProtocolandhttpTransportingremlin-gointo singleconnection.gothat handles HTTP request and response. -
Reordered interceptor chain in
gremlin-goso interceptors access raw request before serialization. -
Exported
requestingremlin-goasRequestMessagewith publicGremlin/Fieldsfor clarity, access and consistency. -
Refactored result handling in
gremlin-driverby mergingResultQueueintoResultSet. -
Replace
BytecodewithGremlinLangingremlin-dotnet. -
Replace
WebSocketwithHTTP(non-streaming) ingremlin-dotnet. -
Added
MimeTypetoIMessageSerializerand split client option to allow separate request and response serialization ingremlin-dotnet. -
Added
RequestInterceptortogremlin-dotnetwithauthreference implementations. -
Bumped minimum Node.js version for
gremlin-javascriptfrom 20 to 22. -
Removed
mimeTypeconnection option ingremlin-javascriptin favor of direct use ofreaderandwriteroptions. -
Bumped ANTLR to 4.13.2
-
Bumped SLF4j to 2.0.16.
-
Bumped GMavenPlus to 4.1.1.
-
Bumped Guice to 6.0.0.
-
Bumped Caffeine to 3.2.3.
-
Added support for deserialization of
Setforgremlin-javascript. -
Added grammar-based
Translatorfor all languages including explicit ones for Java and anonymization. -
Removed old
Translatorinfrastructure. -
Removed grammar support for enums to be used as variables.
-
Changed
valueMapin grammar to disallow thebooleanargument as a variable to avoid ambiguous step calls. -
Added integer overflow checks for
sum(). -
Modified Gremlin Server to only support instantiation of
authentication.authenticationHandlerwith three-arg constructor. -
Removed previously deprecated two-arg constructors for
authentication.authenticationHandlerimplementations. -
Removed previously deprecated one-arg constructor for
AbstractAuthenticationHandler. -
Renamed the traversal discarding
none()step todiscard(). -
Added new list filtering step
none(). -
Replaced
gremlin-groovywithgremlin-langas the default language ingremlin-server. -
Changed
sum()to retain the type common to the stream rather than always promoting tolonggiven the need for it to multiple by thelongbulk value for the traverser. -
Added support for
Setin GraphSON and GraphBinary serialization forgremlin-javascript, where it previously just converted to array. -
Added
Setsyntax ingremlin-language. -
Modified RequestInterceptor to be a
UnaryOperator<HttpRequest>to abstract the underlying implementation. -
Removed the
gremlin-archetypemodule in favor of newer sample applications in each GLV’sexamplesfolder. -
Bumped to
commons-collection4. -
Switched to HTTP protocol in
gremlin-pythonand 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
Bytecodefor Gremlin Server and Java GLV, script engines andGremlinExecutorwill not be able to handleBytecode. -
Removed
Bytecodebased authorization. -
Added
GremlinLangwhich allows to generate gremlin-lang compatible string based on Traversal. -
Removed serialization support for
BindingsandBytecode. -
Changed
EmbeddedRemoteConnectionto prefer the grammar-based translator. -
Removed
Client.submit(Traversal)as a mechanism for submitting traversal, preferDriverRemoteConnectioninstead. -
Removed usage of
Bytecodefromgremlin-python. -
Added
authmodule ingremlin-pythonfor pluggable authentication. -
Fixed
GremlinLangScriptEnginehandling for some strategies. -
Updated Docker test suite set-up in
gremlin-pythonto work with HTTP driver/server. -
Updated
DateTimeserializers for Java and Python according to GraphBinaryV4. -
Defined GraphBinaryV4 specification.
-
Defined GraphSONV4 specification.
-
Update serializers for
labelof anElementas a singleton list of string for GraphBinaryV4. -
Added
bulkedbyte toResponse Messageserialization for GraphBinaryV4. -
Added a
bulkedheader set by cluster setting, as well as a withbulkedrequest option to turn on the bulking of result data. -
Updated
ListandBulkSetserializers to implementbulkvalue flag forList. -
Renamed
maxContentLengthsetting for Gremlin Driver tomaxResponseContentLengthand blocked incoming responses that are too large based on total response size. -
Renamed
maxContentLengthsetting for Gremlin Server tomaxRequestContentLength. -
Added missing strategies to the
TraversalStrategiesglobal cache as well asCoreImportsingremlin-groovy. -
Added missing strategies to
strategies.pyingremlin-python. -
Updated
OptionsStrategyingremlin-pythonto take options directly as keyword arguments. -
Added static
instance()method toElementIdStrategyto an instance with the default configuration. -
Updated
ElementIdStrategy.getConfiguration()to help with serialization. -
Updated
TraversalStrategyProxyto utilize strategy names instead of strategy classes -
Established mechanism for using customer strategies in remote context by using
TraversalStrategyProxyin Java, orTraversalStrategyin GLVs. -
Removed
minSizesetting for Gremlin Driver connection pool since connections are now short-lived HTTP connections -
Added
idleConnectionTimeoutsetting for Gremlin Driver and automatic closing of idle connections -
Enabled TCP Keep-Alive in GremlinServer.
-
Updated Python GLV examples to use HTTP and to run as part of the integration tests.
-
Fixed
gremlin-pythonto()andfrom_()methods to wrap Vertex objects with__.V()for proper edge creation.
This release also includes changes from prior 3.7.x releases.
This release also includes changes from 3.7.6.
-
Deprecated
Translator.LANGUAGEand preferredTranslator.CANONICAL. -
Preserved
BulkSetwhen given to 'P'. -
Fixed bug in Gremlin orderability semantics for
OffsetDateTime. -
Fixed bug in Javascript translation for UUID.
-
Fixed bug in pre-repeat()
emit()/until()whereemit()anduntil()traversers weren’t added to the results. -
Fixed bug in
GremlinValueComparatorthat prevented collections of differing sizes from being comparable. -
Expose serialization functions for alternative transport protocols in gremlin-go
-
Improved Gremlint formatting to keep the first argument for a step on the same line if line breaks were required to meet max line length.
-
Improved Gremlint formatting to do greedy argument packing when possible so that more arguments can appear on a single line.
-
Add custom type writer and serializer to gremlin-go
-
TINKERPOP-3214 TinkerGraph VertexProperty Id duplication
-
TINKERPOP-3218 Emit before repeat with barrier doesn’t emit
-
TINKERPOP-3222 ReservedKeysVerificationStrategy verification fails when the invalid AddPropertyStep has an explicit cardinality set
-
TINKERPOP-3223 Argument to SubgraphStrategy.Builder.edges changes semantics when used along vertices
-
TINKERPOP-3230 GraphSON3 deserializer doesn’t check for required meta field
-
TINKERPOP-3235 mergeE argument validation for onCreate overrides
-
TINKERPOP-2992 Gherkin suite missing orderability on set, uuid, date
-
TINKERPOP-3178 Clarify choose() with consistent semantics (breaking)
-
TINKERPOP-3210 cap() has strange interactions with barriers and side effects in OLAP
-
TINKERPOP-3213 Re-use connections for sessions
-
TINKERPOP-3217 Add mechanism to close session without closing connection on server
-
TINKERPOP-3219 Add public serialization API in gremlin-go for alternative transport protocols
-
TINKERPOP-3227 Add upgrade documentation for transaction connection reuse
-
TINKERPOP-3231 Optimize P.setValue() and P.getValue()
-
TINKERPOP-3232 Support deserialization of a set that has a non hashable element
-
TINKERPOP-3236 Limit use of FloatLiteral as step arguments in grammar
-
TINKERPOP-3237 Add Custom Type Writer/Serializer API for gremlin-go
This release also includes changes from 3.7.5.
-
Added a Gremlin MCP server.
-
Added the Air Routes 1.0 dataset to the set of available samples packaged with distributions.
-
Added a minimal distribution for
tinkergraph-gremlinusing theminclassifier that doesn’t include the sample datasets. -
Removed
AggregateLocalStepandaggregate(Scope, String), and renamedAggregateGlobalSteptoAggregateStep. -
Removed
store()in favor of usinglocal(aggregate()). -
Removed Vertex/ReferenceVertex from grammar. Use vertex id in traversals now instead.
-
Removed
has(key, traversal)andhas(T, traversal)options forhas()step. -
Fixed bug where
InlineFilterStrategycould add an emptyhas(). -
Normalized dotnet
Element.propertiesto lists. -
Normalized python and javascript
Element.propertiesto lists. -
Renamed
none()step todiscard(). -
Repurposed
none()step as a list filtering step with the signaturenone(P). -
Modified mathematical operators to prevent overflows in steps such as
sum()and 'sack()' to prefer promotion to the next highest number type. -
Modified
local()to be "object-local" rather than "traverser-local". -
Added
DateTimeontop of the existing 'datetime' grammar. -
Added
UUID()andUUID(value)to grammar. -
Deprecated the
UnifiedChannelizer. -
Fixed bug that caused incorrect results when
tail()used insiderepeat(). -
Modified
TraversalStrategyconstruction in Javascript where configurations are now supplied as aMapof options. -
Fixed bug in GraphSON v2 and v3 where full round trip of
TraversalStrategyimplementations was failing. -
Added missing strategies to the
TraversalStrategiesglobal cache as well asCoreImportsingremlin-groovy. -
Modified the
TraversalStrategyformat for GraphSON v2 and v3 so that it could work withBytecodebased requests. -
Added a
Classserializer to GraphBinary in Javascript and modified theTraversalStrategyserializer to use it so that specification was properly satisfied. -
Added missing strategies to
strategies.pyingremlin-python. -
Fixed fully qualified class names for
TraversalStrategynames ingremlin-dotnet. -
Updated
OptionsStrategyingremlin-pythonto take options directly as keyword arguments. -
Fixed
statics.BigDecimalimplementation ingremlin-pythonto properly calculatescaleandunscaled_value, and addedvalueattribute to return adecimal.Decimalrepresentation. -
Updated
GraphSONingremlin-pythonto returnstatics.BigDecimalinstead ofdecimal.Decimalfor consistency withGraphBinary. -
Added static
instance()method toElementIdStrategyto an instance with the default configuration. -
Updated
ElementIdStrategy.getConfiguration()to help with serialization. -
Added grammar-based
Translatorfor all languages including explicit ones for Java and anonymization. -
Deprecated
withEmbedded()andwithRemote()options onAnonymousTraversalSource. -
Added
with()onAnonymousTraversalSourceto cover both embedded and remote creation options. -
Added support for
Setin GraphSON and GraphBinary serialization forgremlin-javascript, where it previously just converted to array. -
Added
Setsyntax ingremlin-language. -
Changed
sum()to retain the type common to the stream rather than always promoting tolonggiven the need for it to multiple by thelongbulk value for the traverser. -
Removed the deprecated
withGraph()option fromAnonymousTraversalSource. -
Modified the
split()step to split a string into a list of its characters if the given separator is an empty string. -
Changed
GremlinLangScriptEngineviaGenericLiteralVisitorto treat floating-point literals asDoubleby default instead ofBigDecimalfor better alignment with common programming language conventions. -
Modified the Gremlin grammar to to treat
InfinityandNaNas floating-points. -
Made
mergeE()andmergeV()consistent in their use as a start step and as mid-traversal by always promoting the currently created or matchedElementto theonCreateoronMatchchild 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
TraversalStrategiescache sets. -
Made
newkeyword optional in the Gremlin grammar. -
Allowed keywords to be used as
Mapkeys when defined using the shorthand without quotes. -
Added
prettyPrint()method toTreeto produce a formatted string representation of the tree structure. -
Added integer overflow checks.
-
Added missing strategies to the
TraversalStrategiesglobal cache as well asCoreImportsingremlin-groovy. -
Added missing strategies to
strategies.pyingremlin-python. -
Preferred use of
TokenTraversalwhen usingTwithchooseinstead ofLambdaMapTraversalwhich treatsTmore abstractly as aFunction. -
Preferred use of
is()when usingPwithchooseinstead of aPredicateTraverserwhich allowsPto be used more concretely rather than as aFunction. -
Changed
chooseto only use the firstoptionmatched. -
Added
Pick.unproductiveto allow for matches on unproductive predicates. -
Changed
chooseto pass through traversers of unproductive predicates and unmatched choices. -
Disallowed
Traversalas aPicktoken foroptioninchoose. -
Updated
OptionsStrategyingremlin-pythonto take options directly as keyword arguments. -
Added static
instance()method toElementIdStrategyto an instance with the default configuration. -
Updated
ElementIdStrategy.getConfiguration()to help with serialization. -
Fixed issue in
gremlin-gowhereNext()didn’t return the error from the server. -
Changed type for
ReservedKeysVerificationStrategy.keysin .NET to take aSet<string>rather thanList<string>. -
Changed
StandardVerificationStrategyto prevent the use ofSupplyingBarriersandinject()insiderepeat(). -
Fixed bug in
group()value traversal of the secondby()where aCollectingBarrierStepcould produce an unexpected filtering effect whenReducingBarrierSteporSupplyingBarrierStepinstances were not taken into account. -
Changed
DetachedFactoryto special case the handling ofComputerAdjacentVertexwhich doesn’t carry properties but still needs to be detachable for OLAP cases. -
Deprecated
ProfilingAware.prepareForProfilingmethod preferring to simplyresetBarrierFromValueTraversalfrom theGroupinginterface after strategy application. -
Deprecated
Datein favor ofOffsetDateTimeas the default date type in core,Dateis still supported as input to date steps for compatibility. -
Added and made
OffsetDateTimeserializers the default for existing date types in Python, Go, JavaScript, and .NET.Dateis only used to deserialize from server. -
Added missing strategies in
gremlin-go, updated certain strategies to take varargs and updatedGoTranslatorVisitorfor corresponding translations. -
Fixed
BigIntandBigDecimalparsing ingremlin-gocucumber test suite, fixedUnscaledValuetype inBigDecimalstruct and addedParseBigDecimalmethod. -
Added boolean parsing step
asBool(). -
Added validation to
valueMap(),propertyMap(),groupCount(),sack(),dedup(),sample(), andaggregate()to prevent the invalid usage of multipleby()modulators. -
Deprecated
ProcessLimitedStandardSuiteandProcessLimitedComputerSuitein favor ofProcessEmbeddedStandardSuiteandProcessEmbeddedComputerSuiterespectively. -
Deprecated
ProcessStandardSuiteand theProcessComputerSuitein favor of Gherkin testing and theProcessEmbeddedStandardSuiteandProcessEmbeddedComputerSuitefor testing JVM-specific Gremlin behaviors. -
Removed lambda oriented Gremlin testing from Gherkin test suite.
-
Implemented
P.typeOf()predicate. -
Added
GTypeenum to denote types. -
Removed
P.getOriginalValue()in favor ofP.getValue(). -
Simplified comparability semantics from ternary boolean logic to binary logic.
-
Introduced
NotPclass for negation ofP. -
Add barriers to
group(String),groupCount(String),tree(String)andsubgraph(String)steps. -
Increase minimum Java version from 1.8 to 11 for building and running.
-
Add support for Node 22 and 24 alongside Node 20.
-
Moved all lambda oriented Gremlin tests to
LambdaStepTestin the Java test suite. -
Removed the
@RemoteOnlytesting tag in Gherkin as lambda tests have all been moved to the Java test suite. -
Updated gremlin-javascript to use GraphBinary as default instead of GraphSONv3.
-
Added the
asNumber()step to perform number conversion. -
Modified
asNumber()to handleOffsetDateTimeandDate -
Modified
dateDiff()to return milliseconds instead of seconds -
Changed
repeat()to makerepeatTraversalglobal rather than a mix of local and global. -
Renamed many types in the grammar for consistent use of terms "Literal", "Argument", and "Varargs".
-
Changed
gremlin-netso that System.Text.Json is only listed as an explicit dependency when it is not available from the framework. -
Fixed translation of numeric literals for Go losing type definitions.
-
Added
ParseBigInt()ingremlin-gofor parsing string intobig.Int. -
Expanded gherkin syntax to directly configure traversal side effects in feature tests.
-
Made
Mutatinginterface independent fromConfiguring. -
Removed undocumented
with()modulation fromaddV(),addE(),mergeV()andmergeE(). -
Updated which steps are able to accept arguments in grammar.
-
Introduced
GValueto represent parameterized values in aGraphTraversal. -
Added optional traversal cache to
GremlinLangScriptEngine. -
Introduced
StepContractinterfaces for all parameterizable steps. -
Decoupled management of id, label, and properties from
Configuringinterface inaddV(),addE()andproperty(). -
Switched
gremlin-netbyte serializers to signed bytes (sbyte) to be consistent with IO doc. -
Removed auto-unfold of singleton collections from
range(),limit(), andtail()local scope steps to improve consistency of output. -
Updated
asString()step to throwIllegalArgumentExceptionwithnullinputs for casting step consistency. -
Renamed
MergeElementSteptoMergeElementStepas it is a base class tomergeV()andmergeE(). -
Renamed
MergeStepofmerge()toMergeElementStepfor consistency. -
Fixed referenced log file name for
gremlin-archetype-server. -
Changed some feature tests using
order()to use specificby()modulators for better result predictability. -
Upgraded Go to version 1.25.
-
Upgraded Python to version 3.10.
-
Modified
RepeatUnrollStrategyto use a more conservative approach, only unrolling repeat loops containing safe navigation and filtering steps. -
Modified
limit(),skip(), range()` inrepeat()to track per-iteration counters. -
Moved
Traverserloop logic into new interfaceNL_SL_Traverserand changed loop-supporting `Traverser`s to extend the common interface. -
Fixed
sample()inrepeat()computer algorithm to retain the configured sample size per loop -
Fixed
JavaTranslatorto handle scenarios where the last argument tohas()is null which previously could cause an exception.
-
TINKERPOP-2971 having order() before fold() omits an empty list in GroupStep’s value traversal
-
TINKERPOP-3047 Grammar does not parse keywords into Map keys
-
TINKERPOP-3067 gremlin-shaded incomplete shading due to Jackson multi-release classes
-
TINKERPOP-3100 Traversal.Admin.lock() has excessive recursion
-
TINKERPOP-3135 Gremlin Console complains about missing plugins field
-
TINKERPOP-3181 Allow Client initialization to succeed even if minPoolSize is not met
-
TINKERPOP-3201 Fix tail inside repeat
-
TINKERPOP-3211 Server does not start when using gremlin-server-secure.yaml sample config
-
TINKERPOP-3175 Add boolean conversion step asBool()
-
TINKERPOP-2491 Improve consistency of the output of range() oriented steps (breaking)
-
TINKERPOP-2821 Examine use of Tokens.ARGS_HOST as part of a RequestMessage
-
TINKERPOP-2940 Strategy Dependent Behavior of Ternary Boolean Logic (breaking)
-
TINKERPOP-2974
valueMapstep returns properties in random order -
TINKERPOP-3017 Simplify TraversalSource creation from AnonymousTraversalSource (breaking)
-
TINKERPOP-3046 Make new keyword optional in Gremlin grammar
-
TINKERPOP-3055 withoutStrategies() mechanism in programming languages for providers
-
TINKERPOP-3083 The split() step should provide a way to split an entire string (breaking)
-
TINKERPOP-3115 Better handle overflows with sum() (breaking)
-
TINKERPOP-3121 Multiple by() modulators lead to unexpected behavior (breaking)
-
TINKERPOP-3143 gremlin-javascript should default to GraphBinary
-
TINKERPOP-3147 Prevent aggregate step from having multiple by modulators (breaking)
-
TINKERPOP-3148 Prevent dedup step from having multiple by modulators (breaking)
-
TINKERPOP-3149 Prevent sack step from having multiple by modulators (breaking)
-
TINKERPOP-3150 Prevent sample step from having multiple by modulators (breaking)
-
TINKERPOP-3161 Switched to signed bytes in .net (breaking)
-
TINKERPOP-3168 Deprecate UnifiedChannelizer and related infrastructure
-
TINKERPOP-3172 Raise Java Language Version to 11 (breaking)
-
TINKERPOP-3173 Simplify Comparability Semantics (breaking)
-
TINKERPOP-3186 Inconsistency of properties data type on Element (breaking)
-
TINKERPOP-3192 RepeatUnrollStrategy can modify traversal semantics (breaking)
-
TINKERPOP-3193 Decouple non with()-related configs from Configuring/Parameterizing interfaces (breaking)
-
TINKERPOP-3195 Disallow SupplyingBarriers inside RepeatStep (breaking)
-
TINKERPOP-3196 Implement proposal 5 regarding changes to local (breaking)
-
TINKERPOP-3198 Add tests to ensure behavior of traversers in flatmaps
-
TINKERPOP-3200 Make repeat traversals completely global (breaking)
-
TINKERPOP-3202 Limit and range semantics change when used inside repeat (breaking)
-
TINKERPOP-3207 Add Barriers to GroupSideEffect, GroupCountSideEffect, TreeSideEffect, and Subgraph Steps (breaking)
-
TINKERPOP-3212 Date step consistency (breaking)
-
Fixed conjoin has incorrect null handling.
-
Integrated Python driver examples into automated build process to ensure examples remain functional.
-
Fixed bug in
IdManagerforVertexPropertyid creation to better ensure identifier uniqueness. -
Fixed bug in
SubgraphStrategywhere specifyingedgesandverticesfilters that hadmap-type steps could generate an error. -
Fixed bug in
ReservedKeysVerificationStrategywhereAddPropertyStepwas not triggering proper validations. -
Fixed bug in
mergeEwhereonCreatevalidation of invalid static argument overrides did not trigger until traversal runtime. -
Expand grammar argument types for
coinandpageranksteps tonumericArgumentfromfloatArgument. -
Added
closeSessionPostGraphOpto the Gremlin Server settings to indicate that theSessionshould be closed on either a successful commit or rollback. -
Added
SessionedChildClientthat borrows connections from a differentClientfor use withSessions. -
Added
reuseConnectionsForSessionsto Java GLV settings to decide whether to useSessionedChildClientfor remote transactions. -
Added support for Node 22 and 24 alongside Node 20.
-
Deserialize
setintolistwhen it contains non-hashable elements ingremlin-python -
Fixed
cap()step throwing an error when used mid-traversal in OLAP. -
Upgraded
gremlin-goto Go 1.25.
-
TINKERPOP-3214 TinkerGraph VertexProperty Id duplication
-
TINKERPOP-3222 ReservedKeysVerificationStrategy verification fails when the invalid AddPropertyStep has an explicit cardinality set
-
TINKERPOP-3223 Argument to SubgraphStrategy.Builder.edges changes semantics when used along vertices
-
TINKERPOP-3230 GraphSON3 deserializer doesn’t check for required meta field
-
TINKERPOP-3235 mergeE argument validation for onCreate overrides
-
TINKERPOP-3210 cap() has strange interactions with barriers and side effects in OLAP
-
TINKERPOP-3213 Re-use connections for sessions
-
TINKERPOP-3217 Add mechanism to close session without closing connection on server
-
TINKERPOP-3232 Support deserialization of a set that has a non hashable element
-
TINKERPOP-3236 Limit use of FloatLiteral as step arguments in grammar
-
Improved Java driver host availability on connection pool initialization.
-
Added getter for
parameterItemsandvalueTraversalonDifferenceStep. -
Added properties to
Elementobjects found in aPathfor GraphSON v2 and v3 and GraphBinary. -
Fixed edge properties for GraphBinary which were not deserializing properly.
-
Deprecated
has(key, traversal)andhas(T, traversal)options forhas()step. -
Improved GLV examples reliability and documentation with step-by-step instructions.
-
Added root-level GLV examples in
gremlin-examples/directory that use published driver versions for easy out-of-the-box usage, separate from module-level examples that use local development code. -
Bump netty to 4.1.125.Final
-
Fixed
empty-sample-secure.groovyto work withCompilation.COMPILE_STATIC
-
Fixed bug in server
Settingswhere it was referencing a property that was back in 3.3.0 and generating a warning log. -
Improved performance of
Traversal.lock()which was being called excessively. -
Added log entry in
WsAndHttpChannelizerHandlerto catch general errors that escape the handlers. -
Improved invalid plugin error message in Gremlin Console.
-
Added a
MessageSizeEstimatorimplementation to coverFrameallowing Gremlin Server to better estimate message sizes for the direct buffer. -
Fixed bug in Gremlin Console for field accessor issue with JDK17.
-
Improved logging around triggers of the
writeBufferHighWaterMarkso that they occur more than once but do not excessively fill the logs. -
Added server metrics to help better detect and diagnose write pauses due to the
writeBufferHighWaterMark:channels.paused,channels.total, andchannels.write-pauses. -
Changed
IdentityRemovalStrategyto omitIdentityStepif only withRepeatEndStepunderRepeatStep. -
Changed Gremlin grammar to make use of
gto spawn child traversals a syntax error. -
Fixed bug where the
HosttoConnectionPoolmapping on theClientingremlin-drivercan have no entries and therefore lead to aNullPointerExceptionwhen borrowing a connection. -
Added
unexpected-responsehandler towsforgremlin-javascript -
Fixed bug in
TinkerTransactionGraphwhere a read-only transaction may leave elements trapped in a "zombie transaction". -
Fixed bug in
gremlin.shwhere it couldn’t accept a directory name containing spaces. -
Fixed issue in
gremlin-consolewhere it couldn’t accept plugin files that included empty lines or invalid plugin names. -
Modified grammar to make
none()usage more consistent as a filter step where it can now be used to chain additional traversal steps and be used anonymously. -
Added missing anonymous support for
disjunct()in Python and Javascript. -
Fixed bug in 'gremlin-server.sh' to account for spaces in directory names.
-
Deprecated
gremlin_python.process..has_key_in favor ofgremlin_python.process..has_key. -
Added
gremlin.spark.outputRepartitionconfiguration to customize the partitioning of HDFS files fromOutputRDD. -
Added
ClientSettings.Sessionconfiguration ingremlin-goto configure a sessioned client. -
Allowed
mergeV()andmergeE()to supplynullinMapvalues. -
Fixed limitation in multi-line detection preventing
:remote consolescripts from being sent to the server. -
Changed signature of
hasId(P<Object>)andhasValue(P<Object>)tohasId(P<?>)andhasValue(P<?>). -
Improved error message for when
emit()is used withoutrepeat(). -
Fixed incomplete shading of Jackson multi-release.
-
Changed
PythonTranslatorto generate snake case step naming instead of camel case. -
Changed
gremlin-goClientReadBufferSizeandWriteBufferSizedefaults to 1048576 (1MB) to align with DriverRemoteConnection. -
Fixed bug in
IndexStepwhich prevented Java serialization due to non-serializable lambda usage by creating serializable function classes. -
Fixed bug in
CallStepwhich prevented Java serialization due to non-serializableServiceCallContextandServiceusage. -
Fixed bug in
Operatorwhich was caused only a single method parameter to be Collection type checked instead of all parameters. -
Addded support for hot reloading of SSL certificates in Gremlin Server.
-
Fixed default
enableCompressionsetting to befalseinstead ofundefinedingremlin-javascript -
Increased default
max_content_length/max_msg_sizeingremlin-pythonfrom 4MB to 10MB. -
Added the
PopContaininginterface designed to get label andPopcombinations held in aPopInstructionobject. -
Fixed bug preventing a vertex from being dropped and then re-added in the same
TinkerTransaction -
Fixed bug which could cause a 'Conflict: element modified in another transaction' when a transaction is attempting to add/drop/update a vertex or edge while another transaction is reading the same vertex or edge.
-
Upgraded Node version from 18 to 20
-
Upgraded Go to version 1.24
-
Fixed broken image links in published documentation
-
TINKERPOP-3146 Support SSL Certificates Reloading
-
TINKERPOP-2966 Change PythonTranslator to generate underscore based step naming
-
TINKERPOP-3015 Use wildcard instead of Object for hasId predicates
-
TINKERPOP-3070 Cannot run console if working directory contains spaces
-
TINKERPOP-3111 Update documentation in gremlin-python driver section
-
TINKERPOP-3130 Better consistency for none()/discard() usage
-
TINKERPOP-3133 Customize the file count by repartition the OutputRDD in Spark to reduce HDFS small files
-
TINKERPOP-3137 Allow null to be used as Map value to mergeV and mergeE
-
TINKERPOP-3177 Sessioned Client in Go
-
TINKERPOP-2489 Server doesn’t start if folder has spaces
-
TINKERPOP-2647 :uninstall without first disabling a plugin will lead to error on startup
-
TINKERPOP-2886 Inconsistent results when executing equivalent queries
-
TINKERPOP-3038 Console plugins file can’t accept empty lines
-
TINKERPOP-3040 Remote Console won’t send queries that cause exceptions locally
-
TINKERPOP-3067 gremlin-shaded incomplete shading due to Jackson multi-release classes
-
TINKERPOP-3100 Traversal.Admin.lock() has excessive recursion
-
TINKERPOP-3120 Closing a session with an Authorizer enabled throws an Exception
-
TINKERPOP-3123 TinkerGraphParameterizedWorld # useParametersLteraly() removes overried identifier
-
TINKERPOP-3124 MessageSizeEstimator is not sizing Frame instances properly
-
TINKERPOP-3135 Gremlin Console complains about missing plugins field
-
TINKERPOP-3138 JS gremlin library "enableCompression" option cause Connection the be closed
-
TINKERPOP-3139 IndexStep serialization
-
TINKERPOP-3140 emit() without repeat() throws an NPE
-
TINKERPOP-3141 TinkerTransactionGraph doesn’t allow deleting and adding element back in same transaction
-
TINKERPOP-3142 TinkerTransactionGraph doesn’t remove deleted elements in threaded scenario
-
TINKERPOP-3144 Traversal not closed after interruption
-
TINKERPOP-3155 Operator.addAll checks for instanceof on the wrong parameter
-
TINKERPOP-3160 Node.js 22+: Gremlin Fails with network error and HTTP 101 Status Due to WebSocket Limitation in undici
-
TINKERPOP-3162 Gryo writes illegal reflective access operations for AtomicLong in JDK17
-
TINKERPOP-3163 CallStep serialization
-
TINKERPOP-3167 Possible NullPointerException when borrowing a connection
-
TINKERPOP-3174 Site images linked to github are broken
This release also includes changes from 3.6.8.
-
Refactored mutation events registration by moving reusable code from relevant steps to
EventUtil -
Opened
NoOpBarrierStepfor extensibility (removedfinalkeyword). -
Deprecated public constructor for
SeedStrategyin favor of builder pattern to be consistent with other strategies. -
Allowed specification of a customized Spark app name.
-
Added getter method to
CoinStepfor its probability field. -
Prevented decimal values from being parsed by
asDate(). -
Prevented specification of
Cardinalitytooption()when not used in conjunction withmergeV(). -
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-gremlinis used. -
Fixed so that
TrimGlobalStepandTrimLocalStephave the same character control handling asLtrimandRtrim -
Fixed a bug in
MaxLocalStep,MinLocalStep,MeanLocalStepandSumLocalStepthat it throwsNoSuchElementExceptionwhen 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,SplitGlobalStepandSplitLocalStepfor their private fields. -
Fixed older driver GraphBinary compatibility problems where using
ReferenceElementStrategy, properties on elements returned asnullinstead of emptyList. -
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
Operatoras a reducer inwithSideEffectwhen 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
-
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#shouldAllowUserManipulationOfGlobalCacheis 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
-
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.
This release also includes changes from 3.6.7.
-
Deprecated
ltrim()andrTrim()in favor ofl_trim()andr_trimin Python. -
Fixed bug in
onCreateformergeV()where use of theCardinalityfunctions was not properly handled. -
Fixed multiple concurrent initially requests caused authentication to fail.
-
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
-
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
-
Added the
asString(),length(),toLower(), andtoUpper()steps to performStringmanipulations. -
Added Gherkin parsing support for specific string results using
str[]. -
Added the
trim(),lTrim(),rTrim(), andreverse()steps to performStringmanipulations. -
Added
replace(),split()andsubstring()steps to performStringmanipulations. -
Added
ScopetoasString(),length(),toLower(),toUpper(),trim(),lTrim(),rTrim(), replace(), `split()andsubstring()to allowStringmanipulation inside incoming lists. -
Update
concat()to acceptTraversalvarargs. -
Corrected
concat()signatures ingremlin-dotnet,Concat()is now used instead ofConcat<object>(). (breaking) -
Update
concat()to not special treatinjectin arguments and useTraversalUtil.applyon it as with any other child traversals. (breaking) -
Added
format()step to performStringmanipulations. -
Checked graph features for meta-property support before trying to serialize them in
VertexPropertySerializerfor GraphBinary. -
Fixed multiline query bug in console caused by upgrade to Groovy 4.
-
Added date manipulation steps
asDate,dateAddanddateDiff. -
Added new data type
DTto represent periods of time. -
Added Gherkin support for Date.
-
Extended
datetime()function to produce a current server date. -
Added list filtering functions
allandany. -
Added list/set functions
conjoin,combine,difference,disjunct,intersect,merge, andproduct. -
Added getter for
isStartonUnionStep. -
Added
NullVariableResolverthat will quietly produce anullfor each variable found when parsing with the grammar. -
Changed the
@MultiMetaPropertiestesting tag for Gherkin feature tests to instead be separate@MetaPropertiesand@MultiProperties. -
Added
agentparameter toDriverRemoteConnectionoptions to allow a user-providedhttp.Agentimplementation. -
Fixed deserialization of element properties for GraphBinary.
-
Fixed bug in
union()as a start step where thePathwas including the starting dummy traverser. -
Moved some TinkerGraph specific transaction tests from
TransactionMultiThreadedTesttoTinkerTransactionGraphTest -
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
Elementcomparison by comparing hashCode() prior to doing more expensive checks.
-
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.
-
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)
-
Allowed
mergeV()andproperty(Map)to more easily defineCardinalityvalues for properties foronMatchandonCreateoptions. -
Removed
connectOnStartupconfiguration option from gremlin-javascript. -
Added marker interface
PBiPredicatefor predefined predicates. -
Changed
Gremlin.version()to read from the more specifically namedtinkerpop-versionattribute. -
Added warning on vertex property cardinality mismatch when reading GraphML.
-
Added a
union()start step. -
Added the
concat()step to performStringconcatenations. -
Added
TinkerTransactionGraph, a reference implementation of transactionalTinkerGraph -
Replaced instances of Neo4j transaction graph with
TinkerTransactionGraphfor server, driver, and GLV integration tests -
Bumped to
ws8.x forgremlin-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-driverto a newgremlin-utilmodule. -
Moved
SimpleSocketServerand its initializers to a newgremlin-tools/gremlin-socket-servermodule. -
Configured
gremlin-socket-serverto build a docker image which can be used for testing GLV’s. (Can be skipped with -DskipImageBuild) -
Reduced dependency from
gremlin-serverontogremlin-driverto a test scope only. -
Added
RequestOptionsandRequestOptionsBuildertypes to Go GLV to encapsulate per-request settings and bindings. -
Added
SubmitWithOptions()methods toClientandDriverRemoteConnectionin Go GLV to passRequestOptionsto 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
ConcurentModificationExceptionwhen removing all labels from aStep. -
Added
materializePropertiesrequest 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
GremlinScriptCheckerto extract thematerializePropertiesrequest option. -
Neo4jVertexPropertyno longer throw Exception forproperties(), but return emptyIterable. -
Modified the grammar to allow for parameters to be specified in Gremlin.
-
Modified
GremlinLangScriptEngineto take bindings. -
Removed deprecated
getInstance()method for grammarVisitorimplementations. -
Renamed all
MessageSerializerimplementations that used the "d0" suffix to drop that convention. -
Removed deprecated
GraphSONMessageSerializerGremlinV1d0as this is nowGraphSONMessageSerializerV1to be consistent with other naming. -
Added
GraphSONUntypedMessageSerializerV1which was formerlyGraphSONMessageSerializerV1d0to be consistent with other naming. -
Added
GraphSONUntypedMessageSerializerV3which essentially matches the format of GraphSON 1.0 in its untyped form. -
Removed
gremlin-io-testand moved that IO type of testing togremlin-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
-
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
-
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
Please see the archived 3.6.8 changelog.
Please see the archived 3.6.7 changelog.
Please see the archived 3.6.6 changelog.
Please see the archived 3.6.5 changelog.
Please see the archived 3.6.4 changelog.
Please see the archived 3.6.3 changelog.
Please see the archived 3.6.2 changelog.
Please see the archived 3.6.1 changelog.
Please see the archived 3.6.0 changelog.
Please see the archived 3.5.8 changelog.
Please see the archived 3.5.7 changelog.
Please see the archived 3.5.6 changelog.
Please see the archived 3.5.5 changelog.
Please see the archived 3.5.4 changelog.
Please see the archived 3.5.3 changelog.
Please see the archived 3.5.2 changelog.
Please see the archived 3.5.1 changelog.
Please see the archived 3.5.0 changelog.
Please see the archived 3.4.13 changelog.
Please see the archived 3.4.12 changelog.
Please see the archived 3.4.11 changelog.
Please see the archived 3.4.10 changelog.
Please see the archived 3.4.9 changelog.
Please see the archived 3.4.8 changelog.
Please see the archived 3.4.7 changelog.
Please see the archived 3.4.6 changelog.
Please see the archived 3.4.5 changelog.
Please see the archived 3.4.4 changelog.
Please see the archived 3.4.3 changelog.
Please see the archived 3.4.2 changelog.
Please see the archived 3.4.1 changelog.
Please see the archived 3.4.0 changelog.
Please see the archived 3.3.11 changelog.
Please see the archived 3.3.10 changelog.
Please see the archived 3.3.9 changelog.
Please see the archived 3.3.8 changelog.
Please see the archived 3.3.7 changelog.
Please see the archived 3.3.6 changelog.
Please see the archived 3.3.5 changelog.
Please see the archived 3.3.4 changelog.
Please see the archived 3.3.3 changelog.
Please see the archived 3.3.2 changelog.
Please see the archived 3.3.1 changelog.
Please see the archived 3.3.0 changelog.
Please see the archived 3.2.11 changelog.
Please see the archived 3.2.10 changelog.
Please see the archived 3.2.9 changelog.
Please see the archived 3.2.8 changelog.
Please see the archived 3.2.7 changelog.
Please see the archived 3.2.6 changelog.
Please see the archived 3.2.5 changelog.
Please see the archived 3.2.4 changelog.
Please see the archived 3.2.3 changelog.
Please see the archived 3.2.2 changelog.
Please see the archived 3.2.1 changelog.
Please see the archived 3.2.0 changelog.
Please see the archived 3.1.8 changelog.
Please see the archived 3.1.7 changelog.
Please see the archived 3.1.6 changelog.
Please see the archived 3.1.5 changelog.
Please see the archived 3.1.4 changelog.
Please see the archived 3.1.3 changelog.
Please see the archived 3.1.2 changelog.
Please see the archived 3.1.1 changelog.
Please see the archived 3.1.0 changelog.
Please see the archived 3.0.2 changelog.
Please see the archived 3.0.1 changelog.
Please see the archived 3.0.0 changelog.
Please see the archived 3.0.0.M9 changelog.
Please see the archived 3.0.0.M8 changelog.
Please see the archived 3.0.0.M7 changelog.
Please see the archived 3.0.0.M6 changelog.
Please see the archived 3.0.0.M5 changelog.
Please see the archived 3.0.0.M4 changelog.
Please see the archived 3.0.0.M3 changelog.
Please see the archived 3.0.0.M2 changelog.









