////
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements.  See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License.  You may obtain a copy of the License at

  http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
////
== TinkerPop 3.4.0 (Avant-Gremlin Construction #3 for Theremin and Flowers)

image::https://raw.githubusercontent.com/apache/tinkerpop/master/docs/static/images/avant-gremlin.png[width=185]

[[release-3-4-13]]
=== TinkerPop 3.4.13 (Release Date: January 10, 2022)

* Fixed `RangeGlobalStep` which was prematurely closing the iterator.
* Added explicit state to `DefaultTraversal` to track whether or not it was fully iterated and closed to ensure it released resources properly.
* Prevented XML External Entity (XXE) style attacks via `GraphMLReader` by disabling DTD and external entities by default.
* Improved error message for failed serialization for HTTP-based requests.
* Fixed a `NullPointerException` that could occur during a failed `Connection` initialization due to uninstantiated `AtomicInteger`.
* Minor changes to the initialization of Java driver `Cluster` and `Client` such that hosts are marked as available only after successfully initializing connection pools.
* `NoHostAvailableException` now contains a cause for the failure.
* Bumped to Netty 4.1.72.
* Added user-friendly message in Gremlin console for unavailable hosts upon initiation and fixed possible leak in `RemoteCommand.groovy` upon `RemoteException`.

==== Bugs

* TINKERPOP-2569 Reconnect to server if Java driver fails to initialize
* TINKERPOP-2589 XML External Entity (XXE) vulnerability
* TINKERPOP-2597 NullPointerException while initializing connection pool
* TINKERPOP-2603 TinkerGraph sometimes could not query float values.
* TINKERPOP-2609 HTTP returns serialization exceptions for the GraphTraversalSource
* TINKERPOP-2626 RangeGlobalStep closes traversal prematurely

==== Improvements

* TINKERPOP-2504 Intermittently failing server/driver integration tests
* TINKERPOP-2616 Provide better exceptions with SSL related failures *(breaking)*
* TINKERPOP-2630 Clarify that a server cannot support Graphson1.0 over HTTP
* TINKERPOP-2632 Netty 4.1.61 flagged with two high severity security violations
* TINKERPOP-2669 Netty 4.1.61 flagged with medium severity security violations

[[release-3-4-12]]
=== TinkerPop 3.4.12 (Release Date: July 19, 2021)

* Coerced single `set` arguments to `P.within` and `P.without` to `list` in Python which serializes to a more expected form for `P` instances.
* Fixed bug in the `vertexLabelKey` validation for `GraphMLWriter` which was inadvertently validating the `edgeLabelKey`.
* Changed `IndexStep` to make it easier for providers to determine the type of indexer being used.
* Allowed Javascript `Translator` to take `Bytecode` or a `Traversal`.
* Addressed CVE-2021-32640 for gremlin-javascript.
* Allowed construction of `DriverRemoteConnection` in .NET to use host and port specification similar to Java syntax.
* Defaulted `DriverRemoteConnection` to "g" if it the `TraversalSource` binding isn't supplied in Python.
* Initialized metrics in `ProfileStep` even if the step hasn't iterated.

==== Bugs

* TINKERPOP-2358 Potential connection leak on client disposing
* TINKERPOP-2554 Extracting step metrics from ProfileStep throws NPE if the step was not triggered
* TINKERPOP-2565 GraphMLWriter does not check vertexLabelKey conflict
* TINKERPOP-2578 Set arguments to P within/without are wrapped in List
* TINKERPOP-2580 Update the custom DSL documentation

==== Improvements

* TINKERPOP-2548 Add getter for indexer used in IndexStep
* TINKERPOP-2577 Remove unused test coverage dependencies from Gremlin.NET

[[release-3-4-11]]
=== TinkerPop 3.4.11 (Release Date: May 3, 2021)

* Prevented Java driver from sending multiple request messages with the same identifier.
* Improved error message for `property(T,Object)` when mutating graph elements.
* Added method caching for GraphSON 3.0 deserialization of `P` and `TextP` instances.
* Allowed setting `ssl_options` for gremlin-python.
* Fixed bug with global `dedup()` when used in reducing `by()` of `group()`.
* Fixed bug with Javascript Groovy `Translator` when generating Gremlin with multiple embedded traversals.
* Modified Gremlin Server `Settings` to be more extensible allowing for custom options with the YAML parser.
* Fixed `toString()` representation of `P` when string values are present in Javascript.
* Exposed barrier size with getter for `NoOpBarrierStep`.
* Bumped to Netty 4.1.61.
* Added `max_content_length` as a Python driver setting.
* Fixed bug in Java `Client` initialization, reconnect and shutdown where certain thread pool configurations might produce a deadlock.
* Ensured that `barrier()` additions by strategies were controlled solely by `LazyBarrierStrategy`.
* Fixed `NullPointerException` in `ResponseMessage` deserialization for GraphSON.
* Enabled the Gremlin.Net driver to repair its connection pool after the server was temporarily unavailable.
* Added the ability to supply a `HandshakeInterceptor` to a `Cluster` which will provide access to the initial HTTP request that establishes the websocket.
* Fixed a possible leakage of connections in the Gremlin.NET driver that could happen if `Dispose()` was called while the pool was creating connections.

==== Bugs

* TINKERPOP-2512 Duplicate jars in classpath when running gremlin-server.sh
* TINKERPOP-2514 Java client driver requests with same request ids hang
* TINKERPOP-2516 Property folding has trouble with coalesce
* TINKERPOP-2529 Global dedup() in reducing by() of group() detaches elements for OLTP
* TINKERPOP-2531 Gremlin .NET driver ConnectionPool can remain without connections if server is down for 1-2 minutes

==== Improvements

* TINKERPOP-1994 LazyBarrierStrategy fully responsible for barrier() additions
* TINKERPOP-2168 GraphSON: P deserialization should be optimized
* TINKERPOP-2457 Add a max_content_length parameter to DriverRemoteConnection in the Python client
* TINKERPOP-2532 MaxBarrierSize of NoOpBarrierStep should be accessible
* TINKERPOP-2535 Netty 4.1.52 flagged as medium security violation
* TINKERPOP-2547 Provide an option to supply a callback before handshake submission
* TINKERPOP-2550 Deadlock on Client initialization

[[release-3-4-10]]
=== TinkerPop 3.4.10 (Release Date: January 18, 2021)

* Added `GremlinScriptChecker` to provide a way to extract properties of scripts before doing an actual `eval()`.
* Added `none()` step for all language variants.
* Fixed bug in `PythonTranslator` which was improperly translating `Lambda` scripts.
* Fixed bug in `GremlinDslProcessor` where certain return types in `TraversalSource` definitions were not generating code that would compile.
* Changed the default read and write timeout values for the `TornadoTransport` to `None` to disable it.
* Bumped to Groovy 2.5.14.

==== Bugs

* TINKERPOP-2496 GremlinDslProcessor fails when SocialTraversalSourceDsl overrides close
* TINKERPOP-2505 Gremlin Python Client Query Times out at 30 seconds instead of the server timeout

==== Improvements

* TINKERPOP-2447 Improve handling of StackOverflowError for long traversals
* TINKERPOP-2485 Invalid http tests with ?gremlin=1-1
* TINKERPOP-2500 Add none() step for all GLVs

[[release-3-4-9]]
=== TinkerPop 3.4.9 (Release Date: December 7, 2020)

* Modified the text of `profile()` output to hide step instances injected for purpose of collecting metrics.
* Bumped to Jackson 2.11.x.
* Bumped Netty 4.1.52.
* Added lambda support for `gremlin-javascript`.
* Provided a more concise syntax for constructing strategies in Groovy.
* Aligned `CoreImports` with `GroovyTranslator` to generate more succinct syntax.
* Improved `gremlin-groovy` understanding of `withSack()` overloads to avoid forced casts.
* Moved `Translator` instances to `gremlin-core`.
* Prevented barriers from over-reaching their limits by one.
* Added `CheckedGraphManager` to prevent Gremlin Server from starting if there are no graphs configured.
* Fixed bug in bytecode `Bindings` where calling `of()` prior to calling a child traversal in the same parent would cause the initial binding to be lost.
* Established a default read and write timeout for the `TornadoTransport` in Python, allowing it to be configurable.
* Delegated handling of erroneous response to the worker thread pool instead of event loop thread pool in Java Driver.
* Removed `Connection` from `Connection Pool` when server closes a connection with no pending requests in Java Driver.
* Improved initialization time of Java Driver if the default serializer is replaced.
* Deprecated `withGraph()` in favor of `withEmbedded()` on `AnonymousTraversalSource`.
* Added support for per-request level configurations, like timeouts, in .NET, Python and Javascript.
* Fixed bug in Javascript `Translator` that wasn't handling child traversals well.
* Prevented Gremlin Python sugar from being confused by Python magic methods.
* Allowed Gremlin Python sugar calls from anonymous context.
* Implemented `AutoCloseable` on `MultiIterator`.
* Fixed an iterator leak in `HasContainer`.
* Fixed bug in `:bytecode` command preventing translations with whitespace from working properly.
* Added `reset` and `config` options to the `:bytecode` command to allow for greater customization options.
* Added GraphSON extension module and the `TinkerIoRegistry` to the default `GraphSONMapper` configuration used by the `:bytecode` command.
* Added `GremlinASTChecker` to provide a way to extract properties of scripts before doing an actual `eval()`.
* Avoided creating unnecessary detached objects in JVM.
* Added support for `TraversalStrategy` usage in Javascript.
* Added `Traversal.getTraverserSetSupplier()` to allow providers to supply their own `TraverserSet` instances.
* Release server threads waiting on connection if the connection is dead.
* Fixed bug where server closes HTTP connection on request error even if keep alive is set to true.
* Deprecated driver `Channelizer` keep-alive related methods.
* Delegate handling of WebSocket handshake to Netty instead of custom code in Java Driver.
* Delegate detection of idle connection to Netty instead of custom keep alive logic for `WebSocketChannelizer`.
* Added support for WebSocket frame compression extension ( [RFC7692](https://tools.ietf.org/html/rfc7692) ) for `WebSocketChannelizer` in Java/Python driver.
* Added server support for WebSocket compression extension ( [RFC7692](https://tools.ietf.org/html/rfc7692) ).
* Fixed bug with Bytecode serialization when `Bytecode.toString()` is used in Javascript.
* Fixed "toString" for P and TextP to produce valid script representation from bytecode glv steps containing a string predicate in Javascript.
* Fixed a bug which could cause Java driver to hang when using `ResultSet.statusAttributes()`
* Added a listener to javascript's `DriverRemoteConnection` to find note errors from websocket connection setup.
* Fixed bug with `ReservedVerificationStrategy.getConfiguration()` which was omitting the reserved `keys` value.
* Changed all configuration keys on `AbstractWarningVerificationStrategy` implementations to `public`.
* Deprecated `BytecodeUtil` and merged its functionality to the existing `BytecodeHelper`.
* Added configuring implementation in HasStep
* Remove static initialization for `GraphSONMessageSerializerV1d0` and `GraphSONMessageSerializerV1d0` in Java driver.
* Connections to the server in a connection pool are created in parallel instead of serially in Java Driver.
* Connection pools for multiple endpoints are created in parallel instead of serially in Java Driver.
* Introduced new HostNotAvailable exception to represent cases when no server with active connection is available.
* Don't wait for new requests during shutdown of event loop group in Java Driver.

==== Bugs

* TINKERPOP-2364 Injected ProfileStep should not be displayed in child traversals
* TINKERPOP-2369 Connections in ConnectionPool are not replaced in background when underlying channel is closed
* TINKERPOP-2403 Gremlin javascript Translator does not handle child traversals
* TINKERPOP-2405 gremlinpython: traversal hangs when the connection is established but the servers stops responding later
* TINKERPOP-2408 Iterator leak in HasContainer
* TINKERPOP-2409 js: DriverRemoteConnection never times out if server uri not available.
* TINKERPOP-2410 Free up server threads when client is closed
* TINKERPOP-2425 Server closes HTTP connection for keepAlive as true
* TINKERPOP-2432 Generate correct toString() representation of bytecode in Javascript
* TINKERPOP-2433 typo in javadocs match() Type Parameters
* TINKERPOP-2435 Gremlin Python sugar syntax for values() can lead to unexpected problems
* TINKERPOP-2437 gremlin-driver hangs if ResultSet.statusAttributes().get() is called when the request throws
* TINKERPOP-2439 P and TextP toString() is broken
* TINKERPOP-2458 Bytecode Bindings lost when followed by a child traversal
* TINKERPOP-2465 TestHelper.generateTempFileFromResource file handling is invalid on windows
* TINKERPOP-2475 Barrier step touches one more element of next loop
* TINKERPOP-2478 Console byte code translator has issues with "new Date()"

==== Improvements

* TINKERPOP-2001 Support lambdas in Javascript
* TINKERPOP-2054 Support TraversalStrategy specification in gremlin-javascript
* TINKERPOP-2296 Per query timeout not working from Python
* TINKERPOP-2392 Improve module level documentation for GLVs
* TINKERPOP-2396 TraverserSet should be extendable for GraphDB provider
* TINKERPOP-2397 Don't create the default Gyro serializer if the caller specifies a different one
* TINKERPOP-2401 Upgrade Jackson-databind to 2.11.x
* TINKERPOP-2406 Delegate processing from event loop to worker threads
* TINKERPOP-2412 Add missing query tests
* TINKERPOP-2413 Prefer withEmbedded() to withGraph() on AnonymousTraversalSource
* TINKERPOP-2415 Avoid unnecessary detached objects if not required
* TINKERPOP-2416 MultiIterator should implement AutoCloseable
* TINKERPOP-2420 Support per query request options in .NET
* TINKERPOP-2421 Support per query options in javascript
* TINKERPOP-2426 Use Netty's WebSocketClientProtocolHandler
* TINKERPOP-2427 Simplify Netty reference counting
* TINKERPOP-2430 Looping Recipies
* TINKERPOP-2431 Operating on Dropped Elements Recipes
* TINKERPOP-2436 The gremlin server starts even if all graphs instantiation has failed
* TINKERPOP-2438 Provide a way for scripts to respect with() specification of timeout
* TINKERPOP-2440 Simplify driver by delegating keepAlive logic to Netty
* TINKERPOP-2441 Add compression to WebSocket frames sent from client
* TINKERPOP-2442 Make Translators that work in Java part of gremlin-core
* TINKERPOP-2445 Speed up client initialization *(breaking)*
* TINKERPOP-2446 Add Recipe for Optional Looping
* TINKERPOP-2453 Add WebSocket compression to gremlin-python
* TINKERPOP-2461 Align CoreImports with GroovyTranslator
* TINKERPOP-2462 Duplicated BytecodeUtil and BytecodeHelper classes
* TINKERPOP-2466 Improve syntax for Groovy scripts that use withStrategies()
* TINKERPOP-2468 Stabilize shouldProcessSessionRequestsInOrder() test
* TINKERPOP-2469 KrbException - Principal does not exist in test
* TINKERPOP-2474 withSack() Groovy translation output could be simplified
* TINKERPOP-2479 Provide a way to set a custom GraphSONMapper for :bytecode command
* TINKERPOP-2482 Rename wsConnectionTimeout to connectionSetupTimeout

[[release-3-4-8]]
=== TinkerPop 3.4.8 (Release Date: August 3, 2020)

* Fixed bug in `has(T,Traversal)` where results were not being returned.
* Fixed bug in `select(Traversal)` where side-effects were getting lost if accessed from the child traversal.
* Fixed authorization bug when using `WsAndHttpChannelizerHandler` with keep-alive enabled.
* Fixed bug in option-less construction of `DriverRemoteConnection` in Javascript.
* Bumped Jackson to 2.9.10.5.
* Improved sampling distribution for global scope `sample()` operations.

==== Bugs

* TINKERPOP-2288 Get ConnectionPoolBusyException and then ServerUnavailableExceptions
* TINKERPOP-2352 Gremlin Python driver default pool size makes Gremlin keep-alive difficult
* TINKERPOP-2374 SaslAndHttpBasicAuthenticationHandler can't extract authorization
* TINKERPOP-2383 has(T,Traversal) does not return results
* TINKERPOP-2384 Inject and withSideEffect causing different outcomes in order step

==== Improvements

* TINKERPOP-2328 Do not close all connections if just one has became closed
* TINKERPOP-2376 Probability distribution controlled by weight when using sample step

[[release-3-4-7]]
=== TinkerPop 3.4.7 (Release Date: June 1, 2020)

This release also includes changes from <<./changelog-3.3.x.asciidoc#release-3-3-11, 3.3.11>>.

* Gremlin.NET driver: Fixed a `NullReferenceException` and throw clear exception if received message is empty.
* Bumped to Groovy 2.5.11.
* Modified `ImportGremlinPlugin` to allow for field imports.
* Improved error message for `math()` when the selected key in a `Map` is `null` or not a `Number`.
* Added `:cls` command to Gremlin Console to clear the screen.
* Bumped Netty 4.1.49.

==== Bugs

* TINKERPOP-2192 Gremlin.Net.Driver.Connection.Parse throws a NullReferenceException
* TINKERPOP-2345 NullPointerException when Map key is not found for math()
* TINKERPOP-2347 Remove invalid service descriptors from gremlin-shaded
* TINKERPOP-2350 clone() is not deep copying Traversal internals
* TINKERPOP-2351 Local Map ordering of keys can generate cast errors
* TINKERPOP-2353 Error while Shutting Down Gremlin Server
* TINKERPOP-2355 Jackson-databind version in Gremlin shaded dependency needs to be increased  - introduces vulnerability issues
* TINKERPOP-2360 failed to deserializer int32 when gremlin-python submit bytecode with a big int value
* TINKERPOP-2365 LazyBarrierStrategy adds a NoOpBarrierStep when profile() is present
* TINKERPOP-2368 JAVA_OPTIONS are not properly expanded in gremlin-console

==== Improvements

* TINKERPOP-2215 Better exception message for connection problems
* TINKERPOP-2336 Allow close of channel without having to wait for server
* TINKERPOP-2339 Gremlin.Net: Update System.Net.WebSockets.Client dependency
* TINKERPOP-2354 Document recommendation to reuse graph traversal source
* TINKERPOP-2357 Add a command to clear the Gremlin Console screen
* TINKERPOP-2371 Add possibility to import constants with ImportGremlinPlugin

[[release-3-4-6]]
=== TinkerPop 3.4.6 (Release Date: February 20, 2020)

* Fixed bug in `drop()` of properties which was introduced in 3.4.5.

==== Bugs

* TINKERPOP-2338 drop() not removing all edge/meta properties

[[release-3-4-5]]
=== TinkerPop 3.4.5 (Release Date: February 3, 2020)

This release also includes changes from <<./changelog-3.3.x.asciidoc#release-3-3-10, 3.3.10>>.

* Expanded the use of `by(String)` modulator so that it can work on `Map` as well as `Element`.
* Improved error messaging for `by(String)` so that it is more clear as to what the problem is
* Bumped to Netty 4.1.42
* Improved SPARQL query translation to better allow for index optimizations during execution.
* Improved Gremlin Server websocket handling preventing automatic server close of the channel for protocol errors.
* Introduced internal `Buffer` API as a way to wrap Netty's Buffer API and moved `GraphBinaryReader`, `GraphBinaryWriter` and `TypeSerializer<T>` to `gremlin-core`.
* Unified the behavior of property comparison: only compare key&value.
* Supported `hasKey()` and `hasValue()` step for edge property and meta property, like `g.E().properties().hasKey('xx')`.
* Modified driver to send `overrideRequestId` and `userAgent` to server when they are present in `RequestOptions` for bytecode requests.

==== Bugs

* TINKERPOP-2175 Executor thread is not returned on channel close
* TINKERPOP-2266 Keep alive not started at connection creation
* TINKERPOP-2274 Test of TinkerGraph Gremlin fail on Windows and non EN locale
* TINKERPOP-2318 Edge properties dedup() not work with spark-gremlin *(breaking)*
* TINKERPOP-2332 JavaScript GLV: structure element toString() should internally call toString()
* TINKERPOP-2333 JavaScript GLV: GraphSON2/3 Edge deserialization is invalid

==== Improvements

* TINKERPOP-1733 hasKey, hasValues should work on Element and Property
* TINKERPOP-2262 Improve Netty protocol handling
* TINKERPOP-2305 GraphBinary: Wrap Buffer API
* TINKERPOP-2307 Add better error message for badly configured Channelizer
* TINKERPOP-2309 Bump gremlinpython to Tornado 5.x
* TINKERPOP-2314 Employ by(String) for Map when possible and improve errors around incorrect types
* TINKERPOP-2315 Implement some form of clone() or reset() for Traversal in GLVs
* TINKERPOP-2320 [SECURITY] XMLInputFactory initialization in GraphMLReader introduces
* TINKERPOP-2322 Deprecate Jython support
* TINKERPOP-2324 Deprecate the raw NIO support in the Java driver
* TINKERPOP-2325 Generate traversals that will better yield index lookups with SPARQL
* TINKERPOP-2329 JavaScript GLV: Update websocket library dependency
* TINKERPOP-2330 JavaScript GLV should expose GraphSON2Writer and GraphSONReader

[[release-3-4-4]]
=== TinkerPop 3.4.4 (Release Date: October 14, 2019)

This release also includes changes from <<./changelog-3.3.x.asciidoc#release-3-3-9, 3.3.9>>.

* Provided support for DSLs by way of remote connections through `AnonymousTraversalSource`.
* Added `elementMap()` step.
* Added GraphBinary support for Python.
* Allowed for embedded map assertions in GLV tests.
* Added `Direction` deserialization support in GLVs.

==== Bugs

* TINKERPOP-2159 EventStrategy doesn't handle multi-valued properties
* TINKERPOP-2276 No constructor for remote connection in DSL generated traversal source
* TINKERPOP-2283 GraphStep's ids null exception
* TINKERPOP-2285 Error object is unreachable
* TINKERPOP-2289 Use address instead of hostname for connection
* TINKERPOP-2290 Javascript GLV connection refused error handling
* TINKERPOP-2291 TraversalExplanation deserialization in GraphSON
* TINKERPOP-2298 Bytecode.java  flattenArguments throw exception when null
* TINKERPOP-2303 GremlinDsl generate addV instead of addE

==== Improvements

* TINKERPOP-1810 Add Lambda.binaryOperator and Lambda.unaryOperator
* TINKERPOP-1838 Python sample script
* TINKERPOP-2046 Gremlin-Python: Support custom request headers in WebSocket request
* TINKERPOP-2213 Replace scriptEvaluationTimeout in favor of something more suitable to bytecode
* TINKERPOP-2275 Update jackson databind 2.9.9.3+
* TINKERPOP-2277 Python sdk postpone the timing to create transport
* TINKERPOP-2279 GraphBinary support in Python
* TINKERPOP-2280 Prevent use of T values as property key overloads
* TINKERPOP-2284 Make it easier to return more structure of graph elements
* TINKERPOP-2302 Add isOnGraphComputer() field accessor to ElementMapStep

[[release-3-4-3]]
=== TinkerPop 3.4.3 (Release Date: August 5, 2019)

This release also includes changes from <<./changelog-3.3.x.asciidoc#release-3-3-8, 3.3.8>>.

* Improved error messaging on timeouts returned to the console from `:>`.
* Added a `toString()` serializer for GraphBinary.
* Configured the Gremlin Console to use GraphBinary by default.
* Fixed transaction management for empty iterators in Gremlin Server.
* Deprecated `MessageSerializer` implementations for Gryo in Gremlin Server.
* Deprecated `Serializers` enum values of `GRYO_V1D0` and `GRYO_V3D0`.
* Deprecated `SerTokens` values of `MIME_GRYO_V1D0` and `MIME_GRYO_V3D0`.
* Added a Docker command to start Gremlin Server with the standard GLV test configurations.
* Added `aggregate(Scope,String)` and deprecated `store()` in favor of `aggregate(local)`.
* Modified `NumberHelper` to better ignore `Double.NaN` in `min()` and `max()` comparisons.
* Bumped to Netty 4.1.36.
* Bumped to Groovy 2.5.7.
* Added `userAgent` to RequestOptions. Gremlin Console sends `Gremlin Console/<version>` as the `userAgent`.
* Fixed DriverRemoteConnection ignoring `with` `Token` options when multiple were set.
* Added `:set warnings <true|false>` to Gremlin Console.

==== Bugs

* TINKERPOP-1619 TinkerGraphComputer worker count affects OptionalStep query results
* TINKERPOP-2157 SparkStarBarrierInterceptor injects (Byte) 0
* TINKERPOP-2224 Detect and fix resource leak
* TINKERPOP-2230 match() step unexpected behaviours
* TINKERPOP-2232 RemoteStrategy does not call parent class TraversalStrategy __init__
* TINKERPOP-2238 Fix remaining iterator leaks marked by @IgnoreIteratorLeak
* TINKERPOP-2241 Client exception don't match Server exception when server  throw StackOverflowError
* TINKERPOP-2248 Instability of driver for blocked requests
* TINKERPOP-2257 transaction itty  may still be visited after commit
* TINKERPOP-2264 Gremlin Python should deserialize g:Date to UTC

==== Improvements

* TINKERPOP-1084 Branch option tokens should be allowed to be traversals.
* TINKERPOP-1553 Deprecate store() in favor of aggregate(Scope)
* TINKERPOP-1921 Support hasNext terminal step in GLVs
* TINKERPOP-2020 Support withComputer() for javascript
* TINKERPOP-2223 Update jackson databind to 2.9.9
* TINKERPOP-2236 Improve error messaging for TinkerGraph IdManagers that fail on conversions
* TINKERPOP-2237 Prevent error when closing sessions that don't exist *(breaking)*
* TINKERPOP-2242 Bump to netty 4.1.36
* TINKERPOP-2243 Add user-agent to RequestOptions
* TINKERPOP-2246 Consolidate the error propagation to the client
* TINKERPOP-2250 Support toString serialization in GraphBinary
* TINKERPOP-2256 processAllStarts of AggregateStep should only be called when barrier is empty
* TINKERPOP-2260 Update jackson databind 2.9.9.1
* TINKERPOP-2265 Deprecate Traversal.getSideEffects() functionality for remoting purposes
* TINKERPOP-2270 Deprecate multi/metaproperty support in Neo4j
* TINKERPOP-2271 Add console preference to control server-originated warning display
* TINKERPOP-2272 Rename steps and tokens that conflict with standard python functions

[[release-3-4-2]]
=== TinkerPop 3.4.2 (Release Date: May 28, 2019)

This release also includes changes from <<./changelog-3.3.x.asciidoc#release-3-3-7, 3.3.7>>.

* Allow a `Traversal` to know what `TraversalSource` it spawned from.
* Fixed problem with connection pool sizing and retry.
* Added status attribute for warnings to be returned to the client.
* Modified Gremlin Console to report warning status attributes.
* Changed `:>` in Gremlin Console to submit the client-side timeout on each request.
* Provided method to override the request identifier with `RequestOptions`.
* Added option to set per-request settings on a `Traversal` submitted via `Bytecode`.
* Fixed the Gryo registration for `OptionsStrategy` as it was not serializing state properly.

==== Bugs

* TINKERPOP-2090 After running backend for a day or so System.IO.IOException keep throwing
* TINKERPOP-2112 Folding in property() step is not being optimally performed
* TINKERPOP-2180 gremlin.sh doesn't work when directories contain spaces
* TINKERPOP-2183 InterpreterModeASTTransformation needs to be more specific about what it transforms
* TINKERPOP-2189 ConnectedComponent test assumes fixed order of vertices
* TINKERPOP-2194 Enforcing an order on properties in one test method of ChooseTest
* TINKERPOP-2196 PartitionStrategy with includeMetaProperties(true) can't add labeled vertex
* TINKERPOP-2198 Documentation for Store contradicts itself
* TINKERPOP-2199 within step does not work with more than two parameters with python
* TINKERPOP-2200 AddEdgeStartStep used DetachedFactory.detach instead of EventStrategy.detach
* TINKERPOP-2204 Client receives no response on failed request
* TINKERPOP-2206 Certain types in javascript don't appear to serialize with a GraphSON type
* TINKERPOP-2212 Path is not detaching properly under certain conditions
* TINKERPOP-2217 Race condition in Gremlin.net driver connection

==== Improvements

* TINKERPOP-2089 Javascript DSL support
* TINKERPOP-2179 Have o.a.t.g.driver.ser.SerializationException extend IOException
* TINKERPOP-2181 Allow ctrl+c to break out of a long running process in Gremlin Console
* TINKERPOP-2182 Remove gperfutils from Gremlin Console *(breaking)*
* TINKERPOP-2190 Document Gremlin sanitization best practices
* TINKERPOP-2191 Implement EdgeLabelVerificationStrategy
* TINKERPOP-2193 Allow a Traversal to know what TraversalSource it spawned from
* TINKERPOP-2203 Bind the console timeout to the request timeout
* TINKERPOP-2208 Include inject() in DSLs generated with Java annotation processor
* TINKERPOP-2211 Provide API to add per request option for a bytecode
* TINKERPOP-2216 Consider adding conventional status attribute key for warnings
* TINKERPOP-2219 Upgrade Netty version

[[release-3-4-1]]
=== TinkerPop 3.4.1 (Release Date: March 18, 2019)

This release also includes changes from <<./changelog-3.3.x.asciidoc#release-3-3-6, 3.3.6>>.

* Gremlin.NET driver: Fixed removal of closed connections and added round-robin scheduling.
* Added GraphBinary serializer for TraversalMetrics
* Added registration for `SparqlStrategy` for GraphSON.
* Fixed up `SparqlStrategy` so that it could be used properly with `RemoteStrategy`.
* Fixed `ByteBuffer` serialization for GraphBinary.
* Fixed `Path.toString()` in `gremlin-javascript` which was referencing an invalid object.
* Fixed potential for an infinite loop in connection creation for `gremlin-dotnet`.
* Added fallback resolver to `TypeSerializerRegistry` for GraphBinary.
* Added easier to understand exceptions for connection problems in the Gremlin.Net driver.
* Support configuring the type registry builder for GraphBinary.
* Bumped to Groovy 2.5.6.
* Release working buffers in case of failure for GraphBinary.
* GraphBinary: Use the same `ByteBuf` instance to write during serialization. Changed signature of write methods in type serializers.
* Remove unused parameter in GraphBinary's `ResponseMessageSerializer`.
* Changed `SparqlTraversalSource` so as to enable Gremlin steps to be used to process results from the `sparql()` step.
* GraphBinary: Cache expression to obtain the method in `PSerializer`.

==== Bugs

* TINKERPOP-1992 count has negative time in profile
* TINKERPOP-2126 toString() methods not thread-safe
* TINKERPOP-2135 Gremlin.Net ConnectionPool doesn't handle closed idle connections properly
* TINKERPOP-2139 Errors during request serialization in WebSocketGremlinRequestEncoder/NioGremlinRequestEncoder are not reported to the client
* TINKERPOP-2141 ByteBufferSerializer modifies buffer's position
* TINKERPOP-2148 "no connection available!" is being thrown despite lots of free connections
* TINKERPOP-2152 Path toString fails in Gremlin JavaScript
* TINKERPOP-2153 Remove unused parameter from ResponseMessageSerializer *(breaking)*
* TINKERPOP-2154 GraphBinary: Serializers should release resources in case of failures
* TINKERPOP-2155 Situation can occur that causes infinite amount of connection to be opened, causing System.Net.WebSockets.WebSocketException
* TINKERPOP-2161 GraphBinary: Write serialization performance issue
* TINKERPOP-2169 Responses exceeding maxContentLength cause subsequent queries to hang
* TINKERPOP-2172 PartitionStrategy doesn't apply to AddEdgeStartStep
* TINKERPOP-2173 Incorrect reset of log level in integration test
* TINKERPOP-2177 Streaming response immediately after authentication stops after first partial response

==== Improvements

* TINKERPOP-1435 Support for extended GraphSON in gremlin-python
* TINKERPOP-1882 Apply range and limit steps as early as possible
* TINKERPOP-1998 IoGraphTest use different schemas for standard and readGraph configurations
* TINKERPOP-2088 Enable SourceLink for Gremlin.Net
* TINKERPOP-2098 Improve gremlin-server.sh help output
* TINKERPOP-2122 Expose status codes from server errors
* TINKERPOP-2124 InlineFilterStrategy produces wrong result
* TINKERPOP-2125 Extend release validation script
* TINKERPOP-2127 Add g:TraversalMetrics and g:Metrics deserializers for gremlinpython
* TINKERPOP-2129 Mask security secret or password in logs
* TINKERPOP-2130 Cannot instantiate DriverRemoteConnection without passing an options object
* TINKERPOP-2131 NoConnectionAvailableException doesn't reveal the reason
* TINKERPOP-2134 Bump to Groovy 2.5.6
* TINKERPOP-2136 Inside lower bound inclusion (documentation)
* TINKERPOP-2138 Provide a configuration to disable the global closure cache
* TINKERPOP-2140 Test build with Docker automatically
* TINKERPOP-2144 Better handle Authenticator instance failures
* TINKERPOP-2147 Add GraphBinary serializer for TraversalMetrics
* TINKERPOP-2149 GraphBinary: Make type serializer resolution pluggable
* TINKERPOP-2150 GraphBinary: Support configuring the TypeSerializerRegistry builder class in config
* TINKERPOP-2163 JavaTranslator performance enhancements
* TINKERPOP-2164 Bytecode's hashCode impl (and its inner classes) can produce hash collisions
* TINKERPOP-2165 Prefer commons-lang3 to commons-lang
* TINKERPOP-2166 GraphBinary: P deserialization should be optimized
* TINKERPOP-2167 Gremlin Javascript Traversal as async iterable
* TINKERPOP-2171 Allow SPARQL to be extended with Gremlin steps
* TINKERPOP-2174 Improve Docker Image Security

[[release-3-4-0]]
=== TinkerPop 3.4.0 (Release Date: January 2, 2019)

This release also includes changes from <<./changelog-3.3.x.asciidoc#release-3-3-4, 3.3.4>> and <<./changelog-3.3.x.asciidoc#release-3-3-5, 3.3.5>>.

* Changed Python "bindings" to use an actual `Bindings` object rather than a 2-tuple.
* Improved the Gremlin.NET driver: It now uses request pipelining and its `ConnectionPool` has a fixed size.
* Implemented `IndexStep` which allows to transform local collections into indexed collections or maps.
* Made `valueMap()` aware of `by` and `with` modulators and deprecated `valueMap(boolean)` overloads.
* Use `Compare.eq` in `Contains` predicates to ensure the same filter behavior for numeric values.
* Added `OptionsStrategy` to allow traversals to take arbitrary traversal-wide configurations.
* Added text predicates.
* Added `BulkSet` as a GraphSON type with support in all language variants.
* Added `ReferenceElementStrategy` to auto-detach elements to "reference" from a traversal.
* Added initial release of the GraphBinary serialization format with Java support.
* Allowed `ImportCustomizer` to accept fields.
* Removed groovy-sql dependency.
* Modified `Mutating` steps so that they are no longer marked as `final`.
* Rewrote `ConnectiveStrategy` to support an arbitrary number of infix notations in a single traversal.
* GraphSON `MessageSerializer` s will automatically register the GremlinServerModule to a provided GraphSONMapper.
* Removed support for `-i` option in Gremlin Server which was previously deprecated.
* Implemented `ShortestPathVertexProgram` and the `shortestPath()` step.
* `AbstractGraphProvider` uses `g.io()` for loading test data.
* Added the `io()` start step and `read()` and `write()` termination steps to the Gremlin language.
* Added `GraphFeatures.supportsIoRead()` and `GraphFeatures.supportsIoWrite()`.
* Deprecated `Graph.io()` and related infrastructure.
* `GraphMLReader` better handles edge and vertex properties with the same name.
* Maintained order of annotations in metrics returned from `profile()`-step.
* Refactored `TypeTranslator` to be directly extensible for `ScriptTranslator` functions.
* Bumped to Netty 4.1.25.
* Bumped to Spark 2.4.0.
* Bumped to Groovy 2.5.4.
* Modified Gremlin Server to return a "host" status attribute on responses.
* Added ability to the Java, .NET, Python and JavaScript drivers to retrieve status attributes returned from the server.
* Modified Java and Gremlin.Net `ResponseException` to include status code and status attributes.
* Modified Python `GremlinServerError` to include status attributes.
* Modified the return type for `IGremlinClient.SubmitAsync()` to be a `ResultSet` rather than an `IReadOnlyCollection`.
* Deprecated two `submit()`-related methods on the Java driver `Client` class.
* Added `Client.submit()` overloads that accept per-request `RequestOptions`.
* Added sparql-gremlin.
* Fixed a bug in dynamic Gryo registration where registrations that did not have serializers would fail.
* Moved `Parameterizing` interface to the `org.apache.tinkerpop.gremlin.process.traversal.step` package with other marker interfaces of its type.
* Replaced `Parameterizing.addPropertyMutations()` with `Configuring.configure()`.
* Changed interface hierarchy for `Parameterizing` and `Mutating` interfaces as they are tightly related.
* Introduced the `with(k,v)` and `with(k)` step modulators which can supply configuration options to `Configuring` steps.
* Added `OptionsStrategy` to allow traversals to take arbitrary traversal-wide configurations.
* Introduced the `with(k,v)` and `with(k)` traveral source configuration options which can supply configuration options to the traversal.
* Added `connectedComponent()` step and related `VertexProgram`.
* Added `supportsUpsert()` option to `VertexFeatures` and `EdgeFeatures`.
* `min()` and `max()` now support all types implementing `Comparable`.
* Change the `toString()` of `Path` to be standardized as other graph elements are.
* `hadoop-gremlin` no longer generates a test artifact.
* Allowed `GraphProvider` to expose a cached `Graph.Feature` object so that the test suite could re-use them to speed test runs.
* Fixed a bug in `ReducingBarrierStep`, that returned the provided seed value despite no elements being available.
* Changed the order of `select()` scopes. The order is now: maps, side-effects, paths.
* Moved `TraversalEngine` to `gremlin-test` as it has long been only used in testing infrastructure.
* Nested loop support added allowing `repeat()` steps to be nested.
* Events from `EventStrategy` raised from "new" mutations will now return a `KeyedVertexProperty` or `KeyedProperty` as is appropriate.
* `MutationListener#vertexPropertyChanged(Vertex, VertexProperty, Object, Object...)` no longer has a default implementation.
* Deprecated `GraphSONMessageSerializerV2d0` as it is now analogous to `GraphSONMessageSerializerGremlinV2d0`.
* Moved previously deprecated `RemoteGraph` to `gremlin-test` as it is now just a testing component.
* Removed previously deprecated `RemoteStrategy.instance()` and the strategy no longer has any connection to `RemoteGraph`.
* Removed previously deprecated methods in `SubgraphStrategy` and `PartitionStrategy` builders.
* Removed previously deprecated Credentials DSL infrastructure.
* Removed previously deprecated `RemoteConnection#submit(Traversal)` and `RemoteConnection#submit(Bytecode)` methods.
* Removed previously deprecated `MutationListener#vertexPropertyChanged(Vertex, Property, Object, Object...)`.
* Removed previously deprecated `OpSelectorHandler` constructor.
* Removed previously deprecated `close()` from `GremlinGroovyScriptEngine` which no longer implements `AutoCloseable`.
* Removed previously deprecated `getGraphInputFormat()` and `getGraphOutputFormat()` from `HadoopConfiguration`.
* Removed previously deprecated `AbstractOpProcessor#makeFrame()` method.
* Removed previously deprecated `AuthenticationSettings.className` configuration option in Gremlin Server.
* Removed previously deprecated `GraphManager` methods `getGraphs()` and `getTraversalSources()`.
* Removed previously deprecated Gremlin Server setting for `serializedResponseTimeout`.
* Removed previously deprecated Structure API exceptions related to "element not found" situations.
* Removed previously deprecated `rebindings` options from the Java driver API.
* Removed previously deprecated `LambdaCollectingBarrierStep.Consumers` enum.
* Removed previously deprecated `HasContainer#makeHasContainers(String, P)`
* Removed support for Giraph.
* Removed previously deprecated JavaScript Driver property `traversers` of the `ResultSet`.
* gremlin-python: use explicit Bindings object for python instead of a 2-tuple

==== Bugs

* TINKERPOP-1777 Gremlin .max step returns -2147483648 for empty result sets *(breaking)*
* TINKERPOP-1869 Profile step and iterate do not play nicely with each other
* TINKERPOP-1898 Issue with bindings in strategies and lambdas
* TINKERPOP-1927 Gherkin scenario expects list with duplicates, but receives g:Set
* TINKERPOP-1933 gremlin-python maximum recursion depth exceeded on large responses
* TINKERPOP-1947 Path history isn't preserved for keys in mutations
* TINKERPOP-1949 Formatting error on website
* TINKERPOP-1958 TinkerGraphCountStrategy can return wrong counts
* TINKERPOP-1961 Duplicate copies of images directory in docs
* TINKERPOP-1962 GroovyTranslator doesn't handle empty maps
* TINKERPOP-1963 Use of reducing step in choose()
* TINKERPOP-1972 inject() tests are throwing exceptions in .NET GLV tests
* TINKERPOP-1978 Check for Websocket connection state when retrieved from Connection Pool missing
* TINKERPOP-1979 Several OLAP issues in MathStep
* TINKERPOP-1988 minor error in documentation
* TINKERPOP-1999 [Java][gremlin-driver] Query to a remote server via the websocket client hangs indefinitely if the server becomes unavailable
* TINKERPOP-2005 Intermittent NullPointerException in response handling
* TINKERPOP-2006 GraphML serialization invalid if a vertex and edge have similar named property
* TINKERPOP-2009 Pick.any and Pick.none should be exposed in Gremlin-JavaScript
* TINKERPOP-2021 Prevent maximum recursion depth failure
* TINKERPOP-2028 AbstractGraphSONMessageSerializerV2d0 should register GremlinServerModule when mapper is provided
* TINKERPOP-2029 ConcurrentModificationException for InlineFilterStrategy
* TINKERPOP-2030 KeepAlive task executed for every Connection.write call
* TINKERPOP-2032 Update jython-standalone
* TINKERPOP-2044 Cannot reconnect to Azure cosmos host that becomes available again
* TINKERPOP-2058 Contains predicates should rely on Compare predicates *(breaking)*
* TINKERPOP-2081 PersistedOutputRDD materialises rdd lazily with Spark 2.x
* TINKERPOP-2091 Wrong/Missing feature requirements in StructureStandardTestSuite
* TINKERPOP-2094 Gremlin Driver Cluster Builder serializer method does not use mimeType as suggested
* TINKERPOP-2095 GroupStep looks for irrelevant barrier steps
* TINKERPOP-2096 gremlinpython: AttributeError when connection is closed before result is received
* TINKERPOP-2100 coalesce() creating unexpected results when used with order()
* TINKERPOP-2113 P.Within() doesn't work when given a List argument

==== Improvements

* TINKERPOP-550 Gremlin IO needs to support both OLTP and OLAP naturally.
* TINKERPOP-967 Support nested-repeat() structures
* TINKERPOP-1113 GraphComputer subclasses should support native methods
* TINKERPOP-1143 Remove deprecated TraversalSource.Builder and TraversalEngine. *(breaking)*
* TINKERPOP-1296 Remove deprecated serializedResponseTimeout from Gremlin Server *(breaking)*
* TINKERPOP-1342 Allow setting scriptEvaluationTimeout in driver
* TINKERPOP-1365 Log the seed used to initialize Random in tests
* TINKERPOP-1410 mvn install -Dmaven.test.skip=true doesn't work on a clean machine *(breaking)*
* TINKERPOP-1446 Add a StringFactory for Path which prefixes with type.
* TINKERPOP-1447 Add some JavaScript intelligence to the documentation so that comments and output are not copied in a copy paste
* TINKERPOP-1494 Means of exposing execution information from a result produced by RemoteConnection
* TINKERPOP-1518 Provide a way for providers to expose static Graph.Features to tests
* TINKERPOP-1522 Order of select() scopes *(breaking)*
* TINKERPOP-1595 Go through TraversalVertexProgram with a profile and optimize.
* TINKERPOP-1628 Implement TraversalSelectStep
* TINKERPOP-1685 Introduce optional feature to allow for upserts without read-before-write
* TINKERPOP-1705 Remove deprecated rebindings option *(breaking)*
* TINKERPOP-1707 Remove deprecated AuthenticationSettings.className option *(breaking)*
* TINKERPOP-1755 No docs for ReferenceElements
* TINKERPOP-1769 Python graph[empty] string representation is confusing
* TINKERPOP-1774 Gremlin .NET: Support min and max sizes in Connection pool
* TINKERPOP-1775 Gremlin .NET: Implement a Connection write queue to support request pipelining
* TINKERPOP-1778 Do not promote timedInterrupt option for Gremlin Server script processing
* TINKERPOP-1780 Add authentication tests for gremlin-python
* TINKERPOP-1831 Refactor EventStrategy  *(breaking)*
* TINKERPOP-1836 .NET sample project
* TINKERPOP-1841 Include Python GLV tests on TravisCI
* TINKERPOP-1849 Provide a way to fold() with an index
* TINKERPOP-1864 Gremlin Python tests for GraphSON 2.0 and 3.0
* TINKERPOP-1878 Sparql to Gremlin Compiler
* TINKERPOP-1888 Extend max and min to all Comparable properties, not just Numbers *(breaking)*
* TINKERPOP-1889 JavaScript GLV: Use heartbeat to prevent connection timeout
* TINKERPOP-1897 Provide Docker images of Gremlin Server and Console
* TINKERPOP-1906 Make ResponseException explorable
* TINKERPOP-1912 Remove MD5 checksums
* TINKERPOP-1913 Expose metadata from Gremlin Server to Clients
* TINKERPOP-1930 Drop support for Giraph *(breaking)*
* TINKERPOP-1934 Bump to latest version of httpclient
* TINKERPOP-1936 Performance enhancement to Bytecode deserialization
* TINKERPOP-1941 Remove deprecated Structure API exception methods *(breaking)*
* TINKERPOP-1942 Binary serialization format
* TINKERPOP-1945 Add support for extended GraphSon types to Gremlin.net
* TINKERPOP-1946 Remove the deprecated Credentials DSL infrastructure *(breaking)*
* TINKERPOP-1950 Traversal construction performance enhancements
* TINKERPOP-1951 gremlin-server.bat doesn't support paths containing spaces
* TINKERPOP-1953 Bump to Groovy 2.4.15
* TINKERPOP-1954 Remove deprecated GraphManager methods *(breaking)*
* TINKERPOP-1959 Provide a way to submit scripts to the server in gremlin-javascript
* TINKERPOP-1967 Add a connectedComponent() step
* TINKERPOP-1968 Refactor elements of Gremlin Server testing
* TINKERPOP-1975 Introduce with() step modulator *(breaking)*
* TINKERPOP-1976 Include Computer tests for GLVs
* TINKERPOP-1977 Gremlin-JavaScript: Support SASL authentication
* TINKERPOP-1984 Allow support for multiple serializer versions in Gremlin Server HTTP *(breaking)*
* TINKERPOP-1985 Update position on bulk loading
* TINKERPOP-1986 Remove deprecation from PartitionStrategy, SubgraphStrategy and GremlinScriptEngine *(breaking)*
* TINKERPOP-1987 Bump to Netty 4.1.x
* TINKERPOP-1989 Preserve order that plugins are applied in Gremlin Console
* TINKERPOP-1990 Add a shortestPath() step
* TINKERPOP-1993 Bump to Spark 2.3.1
* TINKERPOP-1995 DriverRemoteConnection close() method returns undefined
* TINKERPOP-1996 Introduce read() and write() steps
* TINKERPOP-2002 Create a blog post explaining the value of using TinkerPop
* TINKERPOP-2010 Generate jsdoc for gremlin-javascript
* TINKERPOP-2011 Use NumberHelper on choose()
* TINKERPOP-2012 Target .NET Standard 2.0 for Gremlin.Net
* TINKERPOP-2013 Process tests that are auto-ignored stink
* TINKERPOP-2015 Allow users to configure the WebSocket connections
* TINKERPOP-2016 Upgrade Jackson FasterXML to 2.9.5 or later to fix security vulnerability
* TINKERPOP-2017 Check for Column in by()
* TINKERPOP-2018 Generate API docs for Gremlin.Net
* TINKERPOP-2022 Cluster SSL should trust default ca certs by default
* TINKERPOP-2023 Gremlin Server should not create self-signed certs *(breaking)*
* TINKERPOP-2024 Gremlin Server Application archetype should connect via withRemote
* TINKERPOP-2025 Change to SHA-256/512 and drop SHA-1 for releases
* TINKERPOP-2026 Gremlin.Net.Driver should check ClientWebSocket.State before closing
* TINKERPOP-2031 Remove support for -i in gremlin-server.sh *(breaking)*
* TINKERPOP-2033 Maintain order of profile() annotations
* TINKERPOP-2034 Register synchronizedMap() with Gryo
* TINKERPOP-2037 Remove unused groovy-sql dependency
* TINKERPOP-2038 Make groovy script cache size configurable
* TINKERPOP-2039 Bump to Groovy 2.5.2 *(breaking)*
* TINKERPOP-2040 Improve flexibility of GroovyTranslator to handle custom types
* TINKERPOP-2041 Text Predicates
* TINKERPOP-2045 Remove non-indy groovy dependencies
* TINKERPOP-2049 Single argument with() overload
* TINKERPOP-2050 Add a :bytecode command to Gremlin Console
* TINKERPOP-2053 Provider OptionsStrategy for traversal configurations
* TINKERPOP-2055 Provide support for special number cases like Infinity in GraphSON
* TINKERPOP-2056 Use NumberHelper in Compare
* TINKERPOP-2059 Modulation of valueMap() *(breaking)*
* TINKERPOP-2060 Make Mutating steps non-final
* TINKERPOP-2061 Add with() configuration as global to a traversal
* TINKERPOP-2062 Add Traversal class to CoreImports
* TINKERPOP-2064 Add status attributes to results for gremlin-javascript
* TINKERPOP-2065 Optimize iterate() for remote traversals
* TINKERPOP-2066 Bump to Groovy 2.5.3
* TINKERPOP-2067 Allow getting raw data from Gremlin.Net.Driver.IGremlinClient
* TINKERPOP-2068 Bump Jackson Databind 2.9.7
* TINKERPOP-2069 Document configuration of Gremlin.Net
* TINKERPOP-2070 gremlin-javascript: Introduce Connection representation
* TINKERPOP-2071 gremlin-python: the graphson deserializer for g:Set should return a python set
* TINKERPOP-2072 Refactor custom type translation for ScriptTranslators *(breaking)*
* TINKERPOP-2073 Generate tabs for static code blocks
* TINKERPOP-2074 Ensure that only NuGet packages for the current version are pushed
* TINKERPOP-2075 Introduce ReferenceElementStrategy
* TINKERPOP-2077 VertexProgram.Builder should have a default create() method with no Graph
* TINKERPOP-2078 Hide use of EmptyGraph or RemoteGraph behind a more unified method for TraversalSource construction
* TINKERPOP-2079 Move RemoteGraph to test package *(breaking)*
* TINKERPOP-2084 For remote requests in console display the remote stack trace
* TINKERPOP-2092 Deprecate default GraphSON serializer fields
* TINKERPOP-2093 Bump to Groovy 2.5.4
* TINKERPOP-2097 Create a DriverRemoteConnection with an initialized Client
* TINKERPOP-2101 Support Spark 2.4
* TINKERPOP-2103 Remove deprecated submit() options on RemoteConnection *(breaking)*
* TINKERPOP-2104 Allow ImportCustomizer to handle fields
* TINKERPOP-2106 When gremlin executes timeout, throw TimeoutException instead of TraversalInterruptedException/InterruptedIOException
* TINKERPOP-2110 Allow Connection on Different Path (from /gremlin)
* TINKERPOP-2111 Add BulkSet as a GraphSON type *(breaking)*
* TINKERPOP-2114 Document common Gremlin anti-patterns
* TINKERPOP-2116 Explicit Bindings object for Python *(breaking)*
* TINKERPOP-2117 gremlin-python: Provide a better data structure for a Binding
* TINKERPOP-2119 Validate C# code samples in docs
* TINKERPOP-2121 Bump Jackson Databind 2.9.8