<commit_before>////
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.2.0
===============

image::https://raw.githubusercontent.com/apache/tinkerpop/master/docs/static/images/nine-inch-gremlins.png[width=225]

*Nine Inch Gremlins*

TinkerPop 3.2.7
---------------

*Release Date: NOT OFFICIALLY RELEASED YET*

Upgrading for Users
~~~~~~~~~~~~~~~~~~~

Please see the link:https://github.com/apache/tinkerpop/blob/3.2.7/CHANGELOG.asciidoc#release-3-2-7[changelog] for a complete list of all the modifications that are part of this release.

Embedded Remote Connection
~~~~~~~~~~~~~~~~~~~~~~~~~~

As Gremlin Language Variants (GLVs) expand their usage and use of `withRemote()` becomes more common, the need to mock
the "remote" in unit tests increases. To simplify mocking in Java, the new `EmbeddedRemoteConnection` provides a
simple way to provide a "remote" that is actually local to the same JVM.

See: link:https://issues.apache.org/jira/browse/TINKERPOP-1756[TINKERPOP-1756]


Remote Traversal Timeout
^^^^^^^^^^^^^^^^^^^^^^^^

There was limited support for "timeouts" with remote traversals (i.e. those traversals executed using the `withRemote()`
option) prior to 3.2.7. Remote traversals will now interrupt on the server using the `scriptEvaluationTimeout`
setting in the same way that normal script evaluations would. As a reminder, interruptions for traversals are always
considered "attempts to interrupt" and may not always succeed (a graph database implementation might not respect the
interruption, for example).

See: link:https://issues.apache.org/jira/browse/TINKERPOP-1770[TINKERPOP-1770]

Modifications to match()
^^^^^^^^^^^^^^^^^^^^^^^^

The `match()`-step has been generalized to support the local scoping of all barrier steps, not just reducing barrier steps.
Previously, the `order().limit()` clause would have worked globally yielding:

[source,groovy]
----
gremlin> g.V().match(
......1>   __.as('a').outE('created').order().by('weight',decr).limit(1).inV().as('b'),
......2>   __.as('b').has('lang','java')
......3> ).select('a','b').by('name')
==>[a:marko,b:lop]
----

However, now, `order()` (and all other barriers) are treated as local computations to the pattern and thus, the result set is:

[source,groovy]
----
gremlin> g.V().match(
......1>   __.as('a').outE('created').order().by('weight',decr).limit(1).inV().as('b'),
......2>   __.as('b').has('lang','java')
......3> ).select('a','b').by('name')
==>[a:marko,b:lop]
==>[a:josh,b:ripple]
==>[a:peter,b:lop]
----

Note that this is not that intense of a breaking change as all of the reducing barriers behaved in this manner previously.
This includes steps like `count()`, `min()`, `max()`, `sum()`, `group()`, `groupCount()`, etc. This update has now
generalized this behavior to all barriers and thus, adds `aggregate()`, `dedup()`, `range()`, `limit()`, `tail()`, and `order()`
to the list of locally computed clauses.

See: link:https://issues.apache.org/jira/browse/TINKERPOP-1764[TINKERPOP-1764]

Clone a graph
^^^^^^^^^^^^^
If you want to quickly clone a graph (e.g. because you have set it up in a test and your traversals manipulate the graph) you can now use `GraphHelper.cloneElements(Graph original, Graph clone)`. 


TinkerPop 3.2.6
---------------

*Release Date: August 21, 2017*

Upgrading for Users
~~~~~~~~~~~~~~~~~~~

Please see the link:https://github.com/apache/tinkerpop/blob/3.2.6/CHANGELOG.asciidoc#release-3-2-6[changelog] for a complete list of all the modifications that are part of this release.

Deprecated useMapperFromGraph
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

The `userMapperFromGraph` configuration option for the Gremlin Server serializers has been deprecated. Change
configuration files to use the `ioRegistries` option instead. The `ioRegistries` option is not a new feature, but
it has not been promoted as the primary way to add `IoRegistry` instances to serializers.

See: link:https://issues.apache.org/jira/browse/TINKERPOP-1694[TINKERPOP-1694]

WsAndHttpChannelizer
^^^^^^^^^^^^^^^^^^^^<commit_msg>minor fixes to changelog<commit_after>////
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.2.0
===============

image::https://raw.githubusercontent.com/apache/tinkerpop/master/docs/static/images/nine-inch-gremlins.png[width=225]

*Nine Inch Gremlins*

TinkerPop 3.2.7
---------------

*Release Date: NOT OFFICIALLY RELEASED YET*

Upgrading for Users
~~~~~~~~~~~~~~~~~~~

Please see the link:https://github.com/apache/tinkerpop/blob/3.2.7/CHANGELOG.asciidoc#release-3-2-7[changelog] for a complete list of all the modifications that are part of this release.

Embedded Remote Connection
~~~~~~~~~~~~~~~~~~~~~~~~~~

As Gremlin Language Variants (GLVs) expand their usage and use of `withRemote()` becomes more common, the need to mock
the "remote" in unit tests increases. To simplify mocking in Java, the new `EmbeddedRemoteConnection` provides a
simple way to provide a "remote" that is actually local to the same JVM.

See: link:https://issues.apache.org/jira/browse/TINKERPOP-1756[TINKERPOP-1756]


Remote Traversal Timeout
^^^^^^^^^^^^^^^^^^^^^^^^

There was limited support for "timeouts" with remote traversals (i.e. those traversals executed using the `withRemote()`
option) prior to 3.2.7. Remote traversals will now interrupt on the server using the `scriptEvaluationTimeout`
setting in the same way that normal script evaluations would. As a reminder, interruptions for traversals are always
considered "attempts to interrupt" and may not always succeed (a graph database implementation might not respect the
interruption, for example).

See: link:https://issues.apache.org/jira/browse/TINKERPOP-1770[TINKERPOP-1770]

Modifications to match()
^^^^^^^^^^^^^^^^^^^^^^^^

The `match()`-step has been generalized to support the local scoping of all barrier steps, not just reducing barrier steps.
Previously, the `order().limit()` clause would have worked globally yielding:

[source,groovy]
----
gremlin> g.V().match(
......1>   __.as('a').outE('created').order().by('weight',decr).limit(1).inV().as('b'),
......2>   __.as('b').has('lang','java')
......3> ).select('a','b').by('name')
==>[a:marko,b:lop]
----

However, now, `order()` (and all other barriers) are treated as local computations to the pattern and thus, the result set is:

[source,groovy]
----
gremlin> g.V().match(
......1>   __.as('a').outE('created').order().by('weight',decr).limit(1).inV().as('b'),
......2>   __.as('b').has('lang','java')
......3> ).select('a','b').by('name')
==>[a:marko,b:lop]
==>[a:josh,b:ripple]
==>[a:peter,b:lop]
----

Note that this is not that intense of a breaking change as all of the reducing barriers behaved in this manner previously.
This includes steps like `count()`, `min()`, `max()`, `sum()`, `group()`, `groupCount()`, etc. This update has now
generalized this behavior to all barriers and thus, adds `aggregate()`, `dedup()`, `range()`, `limit()`, `tail()`, and `order()`
to the list of locally computed clauses.

See: link:https://issues.apache.org/jira/browse/TINKERPOP-1764[TINKERPOP-1764]

Clone a graph
^^^^^^^^^^^^^
If you want to quickly clone a graph (e.g. because you have set it up in a test and your traversals manipulate the graph) you can now use `GraphHelper.cloneElements(Graph original, Graph clone)` which is part of the gremlin-test module. 

TinkerPop 3.2.6
---------------

*Release Date: August 21, 2017*

Upgrading for Users
~~~~~~~~~~~~~~~~~~~

Please see the link:https://github.com/apache/tinkerpop/blob/3.2.6/CHANGELOG.asciidoc#release-3-2-6[changelog] for a complete list of all the modifications that are part of this release.

Deprecated useMapperFromGraph
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

The `userMapperFromGraph` configuration option for the Gremlin Server serializers has been deprecated. Change
configuration files to use the `ioRegistries` option instead. The `ioRegistries` option is not a new feature, but
it has not been promoted as the primary way to add `IoRegistry` instances to serializers.

See: link:https://issues.apache.org/jira/browse/TINKERPOP-1694[TINKERPOP-1694]

WsAndHttpChannelizer
^^^^^^^^^^^^^^^^^^^^
{'fraction_non_alphanumeric': 0.16084356310985207, 'fraction_numerical': 0.016157800860350437, 'mean_word_length': 4.745629897528632, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 27, 'https://': 14, 'lorem ipsum': 0, 'www.': 2, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '1556497', 'n_tokens_mistral': 3003, 'n_tokens_neox': 2792, 'n_words': 1060}