<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.
////
TinkerPop3 CHANGEGLOG
=====================

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

image::http://www.tinkerpop.com/docs/current/images/gremlin-hindu.png[width=225]

TinkerPop 3.0.0.GA (NOT OFFICIALLY RELEASED YET)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

<<<<<<< HEAD
<<<<<<< HEAD
<<<<<<< HEAD
<<<<<<< HEAD
<<<<<<< HEAD
* Renamed `Graphs` in Gremlin Server to `GraphManager`.
* Arrow keys for cycling through command history now work in Gremlin Console when being used on Windows.
=======
=======
=======
* Added `not(traversal)` via `TraversalFilterStep(boolean,traversal)` for not'ing a traversal.
>>>>>>> removed P.not(traversal). We now have GraphTraversal.not(traversal) which is simply TraversalFilterStep(boolean,traversal). WhereStep is smart about TraversalParents and propagating WhereStart/EndSteps accordingly.
* Removed `TraversalP`. Traversals and `P`-predicates are completely separate concepts.
* `has(key,traversal)` is now an alias for `filter(__.values(key).traversal)`.
>>>>>>> TraversalP dead. P and Traversal are now completely distinct concepts. HasStep and IsStep just work with P-predicates. has(key,traversal) is now an alias for filter(__.values(key).traversal). has(key) is now filter(values(key)) -- as TraversalFilterStep is much simpler and more efficient than WhereStep. P.getTraversals() no longer exists. ConjuctionP can only conjoin P-predicates, not a hybrid of traversals and P-predicates. Good stuff. Phew.
=======
* Added `NotStep` and `not(traversal)` for not'ing a traversal (integrates like `ConjunctionStep`).
* Removed `TraversalP`. Traversals and `P`-predicates are completely separate concepts.
* `has(key,traversal)` is now an alias for `filter(__.values(key).traversal)` using `TraversalFilterStep`.
>>>>>>> recussive Where-P bindings implemented and tested. WhereStep is nearly 'done done' with all the functionality one would want.
* Simplified `SubgraphStrategy` by using `TraversalFilterStep` instead of the more complex `WhereStep`.
* Added `TraversalMapStep`, `TraversalFlatMapStep`, `TraversalFilterStep`, and `TraversalSideEffectStep` which all leverage an internal traversal.
>>>>>>> greatly reduced the complexity of WhereStep -- learned alot about variable binding from XMatchStep. WhereStep is looking really really good.
=======
* Renamed `Graphs` in Gremlin Server to `GraphManager`.
* Arrow keys for cycling through command history now work in Gremlin Console when being used on Windows.
>>>>>>> old changelog.
* Added `Path.getSingle(pop,label)` and `Path.getList(label)` as default helpers in `Path`.
* Added `Pop.first` and `Pop.last` as enums for getting single items from a collection.
* Changed `GremlinServer.start()` to return a `CompletableFuture` that contains the constructed `ServerGremlinExecutor`.
* Restructured `IoTest` breaking it up into smaller and more logically grouped test cases.
* Gremlin Server `Settings` now has sensible defaults thus allowing the server to be started with no additional configuration.
* Fixed garbled characters in Gremlin Console that notably showed up in `:help`
<<<<<<< HEAD
<<<<<<< HEAD
* `GraphTraversal.and()` (and `or()`) now take `Object...` composed of `P` predicates or `Traversals` to be converted to `TraversalP`.
=======
* `GraphTraversal.and()` (and `or()`) no longer compiles to `WhereStep` but to `AndStep` (and `OrStep`).
>>>>>>> TraversalP dead. P and Traversal are now completely distinct concepts. HasStep and IsStep just work with P-predicates. has(key,traversal) is now an alias for filter(__.values(key).traversal). has(key) is now filter(values(key)) -- as TraversalFilterStep is much simpler and more efficient than WhereStep. P.getTraversals() no longer exists. ConjuctionP can only conjoin P-predicates, not a hybrid of traversals and P-predicates. Good stuff. Phew.
* Replaced dependency on `groovy-all` with individual Groovy dependencies as needed.
* Bumped `org.gperfutils:gbench` to the `0.4.3` and a version explicitly compatible with Groovy 2.4.x.
* Added `ScopeP` which wraps a predicate and is bound by the `Traverser` and `Scoping` step.
<<<<<<< HEAD
* `WhereStep` only operates on `Traversals`. Provided predicates are translated to `__.as('a').is(eq('b'))` or `__.is(eq('a'))`.
* `WhereStep` now uses a `SelectOneStep` for `as('a').out()...` and `IsStep` for `...as('b')` as this ensures `Traverser` (and metadata) propagation.
=======
* `WhereStep` supports arbitrary nesting of `ConjunctionP`-predicates and `ConjunctionStep`-traversals.
>>>>>>> greatly reduced the complexity of WhereStep -- learned alot about variable binding from XMatchStep. WhereStep is looking really really good.
=======
* `GraphTraversal.and()` (and `or()`) now take `Object...` composed of `P` predicates or `Traversals` to be converted to `TraversalP`.
* Replaced dependency on `groovy-all` with individual Groovy dependencies as needed.
* Bumped `org.gperfutils:gbench` to the `0.4.3` and a version explicitly compatible with Groovy 2.4.x.
* Added `ScopeP` which wraps a predicate and is bound by the `Traverser` and `Scoping` step.
* `WhereStep` only operates on `Traversals`. Provided predicates are translated to `__.as('a').is(eq('b'))` or `__.is(eq('a'))`.
* `WhereStep` now uses a `SelectOneStep` for `as('a').out()...` and `IsStep` for `...as('b')` as this ensures `Traverser` (and metadata) propagation.
>>>>>>> old changelog.
* Renamed `KeyStep` to `PropertyKeyStep` to be consistent with `PropertyValueStep`.
* Added `Gremlin-Lib-Paths` to modify paths in plugin `lib` directory.
* Modified the capabilities of `Gremlin-Plugin-Paths` to delete paths that have no value on the right-hand-side of the equals sign.
* The REST API in Gremlin Server now requires parameters to be defined with a "bindings." prefix.
* Modified the REST API in Gremlin Server to accept rebindings.
* Added `rebindings` optional argument to sessionless requests to allow global bindings to be rebound as needed.
* Added `LazyBarrierStrategy` which "stalls" a traversal of a particular form in order to gain a bulking optimization.
* `CollectingBarrierStep` supports `maxBarrierSize` for "lazy barrier," memory conservation.<commit_msg>fixed up 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.
////
TinkerPop3 CHANGEGLOG
=====================

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

image::http://www.tinkerpop.com/docs/current/images/gremlin-hindu.png[width=225]

TinkerPop 3.0.0.GA (NOT OFFICIALLY RELEASED YET)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

* Renamed `Graphs` in Gremlin Server to `GraphManager`.
* Arrow keys for cycling through command history now work in Gremlin Console when being used on Windows.
* Added `NotStep` and `not(traversal)` for not'ing a traversal (integrates like `ConjunctionStep`).
* Removed `TraversalP`. Traversals and `P`-predicates are completely separate concepts.
* `has(key,traversal)` is now an alias for `filter(__.values(key).traversal)` using `TraversalFilterStep`.
* Simplified `SubgraphStrategy` by using `TraversalFilterStep` instead of the more complex `WhereStep`.
* Added `TraversalMapStep`, `TraversalFlatMapStep`, `TraversalFilterStep`, and `TraversalSideEffectStep` which all leverage an internal traversal.
* Added `Path.getSingle(pop,label)` and `Path.getList(label)` as default helpers in `Path`.
* Added `Pop.first` and `Pop.last` as enums for getting single items from a collection.* Changed `GremlinServer.start()` to return a `CompletableFuture` that contains the constructed `ServerGremlinExecutor`.
* Restructured `IoTest` breaking it up into smaller and more logically grouped test cases.
* Gremlin Server `Settings` now has sensible defaults thus allowing the server to be started with no additional configuration.
* Fixed garbled characters in Gremlin Console that notably showed up in `:help`
* `GraphTraversal.and()` (and `or()`) now take `Object...` composed of `P` predicates or `Traversals` to be converted to `TraversalP`.
* Replaced dependency on `groovy-all` with individual Groovy dependencies as needed.
* Bumped `org.gperfutils:gbench` to the `0.4.3` and a version explicitly compatible with Groovy 2.4.x.
* Added `ScopeP` which wraps a predicate and is bound by the `Traverser` and `Scoping` step.
* `WhereStep` only operates on `Traversals`. Provided predicates are translated to `__.as('a').is(eq('b'))` or `__.is(eq('a'))`.
* `WhereStep` now uses a `SelectOneStep` for `as('a').out()...` and `IsStep` for `...as('b')` as this ensures `Traverser` (and metadata) propagation.
* Renamed `KeyStep` to `PropertyKeyStep` to be consistent with `PropertyValueStep`.
* Added `Gremlin-Lib-Paths` to modify paths in plugin `lib` directory.
* Modified the capabilities of `Gremlin-Plugin-Paths` to delete paths that have no value on the right-hand-side of the equals sign.
* The REST API in Gremlin Server now requires parameters to be defined with a "bindings." prefix.
* Modified the REST API in Gremlin Server to accept rebindings.
* Added `rebindings` optional argument to sessionless requests to allow global bindings to be rebound as needed.
* Added `LazyBarrierStrategy` which "stalls" a traversal of a particular form in order to gain a bulking optimization.
* `CollectingBarrierStep` supports `maxBarrierSize` for "lazy barrier," memory conservation.
{'fraction_non_alphanumeric': 0.12475866507309001, 'fraction_numerical': 0.004504918635653213, 'mean_word_length': 5.009944751381216, 'pattern_counts': {'":': 0, '<': 59, '<?xml version=': 0, '>': 59, 'https://': 0, 'lorem ipsum': 0, 'www.': 4, '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': '3172001', 'n_tokens_mistral': 3180, 'n_tokens_neox': 2961, 'n_words': 1301}