reformated asciidoc headers
Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/cff12774 Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/cff12774 Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/cff12774 Branch: refs/heads/TINKERPOP-1782 Commit: cff12774a74ca4744aa0924af7d79bf6ffbb9dd4 Parents: a13f922 Author: Daniel Kuppitz <[email protected]> Authored: Tue Sep 26 05:59:24 2017 -0700 Committer: Daniel Kuppitz <[email protected]> Committed: Tue Sep 26 05:59:24 2017 -0700 ---------------------------------------------------------------------- CHANGELOG.asciidoc | 198 ++++------ CONTRIBUTING.asciidoc | 5 +- README.asciidoc | 12 +- docs/src/dev/developer/administration.asciidoc | 12 +- docs/src/dev/developer/contributing.asciidoc | 30 +- .../developer/development-environment.asciidoc | 27 +- docs/src/dev/developer/for-committers.asciidoc | 57 +-- docs/src/dev/developer/index.asciidoc | 6 +- docs/src/dev/developer/meetings.asciidoc | 11 +- docs/src/dev/developer/release.asciidoc | 33 +- docs/src/dev/io/graphml.asciidoc | 5 +- docs/src/dev/io/graphson.asciidoc | 312 +++++---------- docs/src/dev/io/gryo.asciidoc | 5 +- docs/src/dev/io/index.asciidoc | 5 +- docs/src/dev/provider/index.asciidoc | 75 ++-- docs/src/index.asciidoc | 14 +- docs/src/recipes/appendix.asciidoc | 3 +- docs/src/recipes/between-vertices.asciidoc | 5 +- docs/src/recipes/centrality.asciidoc | 15 +- docs/src/recipes/connected-components.asciidoc | 5 +- docs/src/recipes/cycle-detection.asciidoc | 5 +- docs/src/recipes/duplicate-edge.asciidoc | 5 +- docs/src/recipes/duplicate-vertex.asciidoc | 3 +- .../src/recipes/if-then-based-grouping.asciidoc | 5 +- docs/src/recipes/index.asciidoc | 14 +- docs/src/recipes/pagination.asciidoc | 5 +- docs/src/recipes/recommendation.asciidoc | 5 +- docs/src/recipes/shortest-path.asciidoc | 3 +- docs/src/recipes/style-guide.asciidoc | 6 +- .../recipes/traversal-component-reuse.asciidoc | 5 +- .../recipes/traversal-induced-values.asciidoc | 5 +- docs/src/recipes/tree.asciidoc | 14 +- docs/src/reference/acknowledgements.asciidoc | 3 +- docs/src/reference/conclusion.asciidoc | 3 +- .../src/reference/gremlin-applications.asciidoc | 168 +++------ docs/src/reference/gremlin-variants.asciidoc | 56 +-- .../reference/implementations-giraph.asciidoc | 8 +- .../implementations-hadoop-end.asciidoc | 32 +- .../implementations-hadoop-start.asciidoc | 17 +- .../reference/implementations-intro.asciidoc | 5 +- .../reference/implementations-neo4j.asciidoc | 21 +- .../reference/implementations-spark.asciidoc | 20 +- .../implementations-tinkergraph.asciidoc | 6 +- docs/src/reference/intro.asciidoc | 21 +- docs/src/reference/preface.asciidoc | 15 +- docs/src/reference/the-graph.asciidoc | 48 +-- docs/src/reference/the-graphcomputer.asciidoc | 33 +- docs/src/reference/the-traversal.asciidoc | 267 +++++-------- .../tutorials/getting-started/index.asciidoc | 33 +- .../gremlin-language-variants/index.asciidoc | 30 +- .../the-gremlin-console/index.asciidoc | 17 +- docs/src/upgrade/index.asciidoc | 5 +- .../upgrade/release-3.0.x-incubating.asciidoc | 60 +-- .../upgrade/release-3.1.x-incubating.asciidoc | 288 +++++--------- .../upgrade/release-3.2.x-incubating.asciidoc | 375 +++++++------------ .../archetype-resources/README.asciidoc | 11 +- .../archetype-resources/README.asciidoc | 11 +- .../archetype-resources/README.asciidoc | 11 +- gremlin-server/src/test/scripts/README.asciidoc | 2 +- 59 files changed, 835 insertions(+), 1641 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/cff12774/CHANGELOG.asciidoc ---------------------------------------------------------------------- diff --git a/CHANGELOG.asciidoc b/CHANGELOG.asciidoc index b3a92e2..09f3543 100644 --- a/CHANGELOG.asciidoc +++ b/CHANGELOG.asciidoc @@ -14,17 +14,14 @@ 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 CHANGELOG -==================== += TinkerPop3 CHANGELOG -TinkerPop 3.2.0 (Nine Inch Gremlins) ------------------------------------- +== TinkerPop 3.2.0 (Nine Inch Gremlins) image::https://raw.githubusercontent.com/apache/tinkerpop/master/docs/static/images/nine-inch-gremlins.png[width=185] [[release-3-2-7]] -TinkerPop 3.2.7 (Release Date: NOT OFFICIALLY RELEASED YET) -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +=== TinkerPop 3.2.7 (Release Date: NOT OFFICIALLY RELEASED YET) * Added `GraphHelper.cloneElements(Graph original, Graph clone)` to the `gremlin-test` module to quickly clone a graph. * Bump to GMavenPlus 1.6. @@ -42,8 +39,7 @@ TinkerPop 3.2.7 (Release Date: NOT OFFICIALLY RELEASED YET) * Fixed a bug that prevented Gremlin from ordering lists and streams made of mixed number types. [[release-3-2-6]] -TinkerPop 3.2.6 (Release Date: August 21, 2017) -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +=== TinkerPop 3.2.6 (Release Date: August 21, 2017) This release also includes changes from <<release-3-1-8, 3.1.8>>. @@ -73,8 +69,7 @@ This release also includes changes from <<release-3-1-8, 3.1.8>>. * Added WsAndHttpChannelizer and SaslAndHttpBasicAuthenticationHandler to be allow for servicing Http and Websocket requests to the same server * Added deep copy of `Bytecode` to `DefaultTraversal.clone()`. -Bugs -^^^^ +==== Bugs * TINKERPOP-1385 Refactor Profiling test cases * TINKERPOP-1679 Detached side-effects aren't attached when remoted @@ -86,8 +81,7 @@ Bugs * TINKERPOP-1743 LambdaRestrictionStrategy does not catch lambdas passed to sack() * TINKERPOP-1744 Gremlin .NET: Exception from sync execution gets wrapped in AggregateException -Improvements -^^^^^^^^^^^^ +==== Improvements * TINKERPOP-741 Remove Options For Transaction Retry * TINKERPOP-915 Gremlin Server supports REST and Websockets simultanteously @@ -108,8 +102,7 @@ Improvements * TINKERPOP-1749 Bump to Netty 4.0.50 [[release-3-2-5]] -TinkerPop 3.2.5 (Release Date: June 12, 2017) -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +=== TinkerPop 3.2.5 (Release Date: June 12, 2017) This release also includes changes from <<release-3-1-7, 3.1.7>>. @@ -179,8 +172,7 @@ This release also includes changes from <<release-3-1-7, 3.1.7>>. * Deprecated `GraphManager.getTraversalSources()` and added `GraphManager.getTraversalSourceNames()`. * Fixed a bug so now users can supply a YAML with an empty `staticVariableTypes` to be used by the `FileSandboxExtension` -Bugs -^^^^ +==== Bugs * TINKERPOP-1258 HasTest.g_V_hasId_compilationEquality makes GraphStep assumptions * TINKERPOP-1528 CountByIsRangeStrategy fails for a particular query @@ -196,8 +188,7 @@ Bugs * TINKERPOP-1675 RemoteStep#processNextStart() throws CompletionException instead of underlying exception * TINKERPOP-1681 Multiple hasId's are or'd into GraphStep -Improvements -^^^^^^^^^^^^ +==== Improvements * TINKERPOP-761 Some basic mathematical functions / steps * TINKERPOP-786 Patterns for DSL Development @@ -227,8 +218,7 @@ Improvements * TINKERPOP-1680 Add string performance options to StarGraph [[release-3-2-4]] -TinkerPop 3.2.4 (Release Date: February 8, 2017) -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +=== TinkerPop 3.2.4 (Release Date: February 8, 2017) This release also includes changes from <<release-3-1-6, 3.1.6>>. @@ -311,8 +301,7 @@ This release also includes changes from <<release-3-1-6, 3.1.6>>. * Added a short sleep to prevent traversal from finishing before it can be interrupted during `TraversalInterruptionComputerTest`. * Added support for SSL client authentication -Bugs -^^^^ +==== Bugs * TINKERPOP-1380 dedup() doesn't dedup in rare cases * TINKERPOP-1384 Description of filter function in traversal documentation @@ -335,8 +324,7 @@ Bugs * TINKERPOP-1594 LazyBarrierStrategy does not activate with ProfileStep * TINKERPOP-1605 gremlin-console 3.2.3 -e can no longer take paths relative to current working directory -Improvements -^^^^^^^^^^^^ +==== Improvements * TINKERPOP-887 FastNoSuchElementException hides stack trace in client code * TINKERPOP-919 Features needs to specify whether 2 vertex properties with same key/value is allowed. @@ -372,8 +360,7 @@ Improvements * TINKERPOP-1617 Create a SingleIterationStrategy which will do its best to rewrite OLAP traversals to not message pass. [[release-3-2-3]] -TinkerPop 3.2.3 (Release Date: October 17, 2016) -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +=== TinkerPop 3.2.3 (Release Date: October 17, 2016) This release also includes changes from <<release-3-1-5, 3.1.5>>. @@ -446,8 +433,7 @@ This release also includes changes from <<release-3-1-5, 3.1.5>>. * Gremlin Server `TraversalOpProcessor` now returns confirmation upon `Op` `close`. * Added `close` method Java driver and Python driver `DriverRemoteTraversalSideEffects`. -Bugs -^^^^ +==== Bugs * TINKERPOP-1423 IncidentToAdjacentStrategy should be disabled for tree steps * TINKERPOP-1440 g:Path needs a GraphSON deserializer in Gremlin-Python @@ -460,8 +446,7 @@ Bugs * TINKERPOP-1500 and/or infix and choose() do not work correctly. * TINKERPOP-1511 Remote client addV, V() -Improvements -^^^^^^^^^^^^ +==== Improvements * TINKERPOP-790 Implement AutoCloseable on TraversalSource * TINKERPOP-944 Deprecate Graph.Exceptions.elementNotFound @@ -496,8 +481,7 @@ Improvements * TINKERPOP-1511 Remote client addV, V() [[release-3-2-2]] -TinkerPop 3.2.2 (Release Date: September 6, 2016) -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +=== TinkerPop 3.2.2 (Release Date: September 6, 2016) This release also includes changes from <<release-3-1-4, 3.1.4>>. @@ -535,8 +519,7 @@ This release also includes changes from <<release-3-1-4, 3.1.4>>. * Added input, result prompt preferences * Added multi-line indicator in Gremlin Console -Bugs -^^^^ +==== Bugs * TINKERPOP-810 store not visible * TINKERPOP-1151 slf4j-log4j12 / log4j is only required for testing *(breaking)* @@ -545,8 +528,7 @@ Bugs * TINKERPOP-1400 SubgraphStrategy introduces infinite recursion if filter has Vertex/Edge steps. * TINKERPOP-1405 profile() doesn't like withPath() -Improvements -^^^^^^^^^^^^ +==== Improvements * TINKERPOP-1037 Gremlin shell output coloring * TINKERPOP-1226 Gremlin Console should :clear automagically after "Display stack trace." @@ -566,8 +548,7 @@ Improvements * TINKERPOP-1425 Use trailing underscores in gremlin-python [[release-3-2-1]] -TinkerPop 3.2.1 (Release Date: July 18, 2016) -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +=== TinkerPop 3.2.1 (Release Date: July 18, 2016) This release also includes changes from <<release-3-1-3, 3.1.3>>. @@ -625,8 +606,7 @@ This release also includes changes from <<release-3-1-3, 3.1.3>>. * `Traversal` now allows cancellation with `Thread.interrupt()`. * Added a Gremlin language variant tutorial teaching people how to embed Gremlin in a host programming language. -Bugs -^^^^ +==== Bugs * TINKERPOP-1281 Memory.HALTED_TRAVERSER transience is not sound. * TINKERPOP-1305 HALTED_TRAVERSERS hold wrong information @@ -635,8 +615,7 @@ Bugs * TINKERPOP-1341 UnshadedKryoAdapter fails to deserialize StarGraph when SparkConf sets spark.rdd.compress=true whereas GryoSerializer works * TINKERPOP-1348 TraversalInterruptionTest success dependent on iteration order -Improvements -^^^^^^^^^^^^ +==== Improvements * TINKERPOP-818 Consider a P.type() * TINKERPOP-946 Traversal respecting Thread.interrupt() @@ -675,8 +654,7 @@ Improvements * TINKERPOP-1355 Design HasContainer for extension [[release-3-2-0-incubating]] -TinkerPop 3.2.0 (Release Date: April 8, 2016) -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +=== TinkerPop 3.2.0 (Release Date: April 8, 2016) This release also includes changes from <<release-3-1-2-incubating, 3.1.2-incubating>>. @@ -790,8 +768,7 @@ This release also includes changes from <<release-3-1-2-incubating, 3.1.2-incuba * `GryoReader` does not materialize edges that will be filtered out and this greatly reduces GC and load times. * Created custom `Serializers` for `SparkGraphComputer` message-passing classes which reduce graph sizes significantly. -Bugs -^^^^ +==== Bugs * TINKERPOP-951 Barrier steps provide unexpected results in Gremlin OLAP * TINKERPOP-1057 GroupSideEffectStep doesn't use provided maps @@ -802,8 +779,7 @@ Bugs * TINKERPOP-1194 explain() seems broken * TINKERPOP-1217 Repeated Logging of "The HadoopPools has not been initialized, using the default pool" -Improvements -^^^^^^^^^^^^ +==== Improvements * TINKERPOP-570 [Proposal] Provide support for OLAP to OLTP to OLAP to OLTP * TINKERPOP-575 Implement RemoteGraph @@ -848,29 +824,25 @@ Improvements * TINKERPOP-1237 ProjectMap: For the Love of Die Faterland * TINKERPOP-1238 Re-use Client instances in RemoteGraph tests -TinkerPop 3.1.0 (A 187 On The Undercover Gremlinz) --------------------------------------------------- +== TinkerPop 3.1.0 (A 187 On The Undercover Gremlinz) image::https://raw.githubusercontent.com/apache/tinkerpop/master/docs/static/images/gremlin-gangster.png[width=185] [[release-3-1-8]] -TinkerPop 3.1.8 (Release Date: August 21, 2017) -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +=== TinkerPop 3.1.8 (Release Date: August 21, 2017) * Fixed a `MessageScope` bug in `TinkerGraphComputer`. * Fixed a bug in `BigDecimal` divisions in `NumberHelper` that potentially threw an `ArithmeticException`. * Non-deserializable exceptions no longer added to ScriptRecordReader IOExceptions. -Bugs -^^^^ +==== Bugs * TINKERPOP-1519 TinkerGraphComputer doesn't handle multiple MessageScopes in single iteration * TINKERPOP-1736 Sack step evaluated by Groovy interprets numbers in an unexpected way * TINKERPOP-1754 Spark can not deserialise some ScriptRecordReader parse exceptions [[release-3-1-7]] -TinkerPop 3.1.7 (Release Date: June 12, 2017) -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +=== TinkerPop 3.1.7 (Release Date: June 12, 2017) * Configured Modern and The Crew graphs to work with a integer `IdManager` when `TinkerFactory.createXXX()` is called. * Added XSLT transform option to convert TinkerPop 2.x GraphML to 3.x GraphML. @@ -880,8 +852,7 @@ TinkerPop 3.1.7 (Release Date: June 12, 2017) * Drop use of jitpack for the jbcrypt artifact - using the official one in Maven Central. * Bumped to Groovy 2.4.11. -Improvements -^^^^^^^^^^^^ +==== Improvements * TINKERPOP-1504 MutationListener doesn't provide property key on property additions * TINKERPOP-1608 TP2-to-TP3 GraphML XSLT @@ -892,8 +863,7 @@ Improvements * TINKERPOP-1664 StarVertexProperty#property should throw an NPE if the value is null [[release-3-1-6]] -TinkerPop 3.1.6 (Release Date: February 3, 2017) -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +=== TinkerPop 3.1.6 (Release Date: February 3, 2017) * Fixed bug in `IncidentToAdjacentStrategy`, it was missing some invalidating steps. * Returned a confirmation on session close from Gremlin Server. @@ -903,14 +873,12 @@ TinkerPop 3.1.6 (Release Date: February 3, 2017) * Minor fixes to various test feature requirements in `gremlin-test`. * Allow developers to pass options to `docker run` with TINKERPOP_DOCKER_OPTS environment variable -Bugs -^^^^ +==== Bugs * TINKERPOP-1493 Groovy project doesn't build on Windows * TINKERPOP-1545 IncidentToAdjacentStrategy is buggy -Improvements -^^^^^^^^^^^^ +==== Improvements * TINKERPOP-1538 Gremlin Server spawned by test suites should use a different port * TINKERPOP-1544 Return a confirmation of session close @@ -919,8 +887,7 @@ Improvements * TINKERPOP-1598 Bump to Grovy 2.4.8 [[release-3-1-5]] -TinkerPop 3.1.5 (Release Date: October 17, 2016) -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +=== TinkerPop 3.1.5 (Release Date: October 17, 2016) * Improved handling of `Cluster.close()` and `Client.close()` to prevent the methods from hanging. * Fixed a bug in `NotStep` where child requirements were not being analyzed. @@ -931,8 +898,7 @@ TinkerPop 3.1.5 (Release Date: October 17, 2016) * Fixed TinkerGraph which was not saving on `close()` if the path only consisted of the file name. * Fixed a bug in `RangeByIsCountStrategy` which didn't use the `NotStep` properly. -Bugs -^^^^ +==== Bugs * TINKERPOP-1158 gremlin.sh -v emits log4j initialization errors * TINKERPOP-1391 issue with where filter @@ -942,16 +908,14 @@ Bugs * TINKERPOP-1478 Propogate ScriptEngine fixes from groovy to GremlinGroovyScriptEngine * TINKERPOP-1512 gremlin-server-classic.yaml is broken -Improvements -^^^^^^^^^^^^ +==== Improvements * TINKERPOP-927 bin/publish-docs.sh should only upload diffs. * TINKERPOP-1264 Improve BLVP docs * TINKERPOP-1477 Make DependencyGrabberTest an integration test [[release-3-1-4]] -TinkerPop 3.1.4 (Release Date: September 6, 2016) -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +=== TinkerPop 3.1.4 (Release Date: September 6, 2016) * Improved the error provided by a client-side session if no hosts were available. * Fixed a bug in `PropertiesTest` which assumed long id values. @@ -961,8 +925,7 @@ TinkerPop 3.1.4 (Release Date: September 6, 2016) * Fixed a problem (previously thought resolved on 3.1.3) causing Gremlin Server to lock up when parallel requests were submitted on the same session if those parallel requests included a script that blocked indefinitely. * Fixed bug in `TailGlobalStep` where excess bulk was not accounted for correctly. -Bugs -^^^^ +==== Bugs * TINKERPOP-1350 Server locks when submitting parallel requests on session * TINKERPOP-1375 Possible ByteBuf leak for certain transactional scenarios @@ -971,8 +934,7 @@ Bugs * TINKERPOP-1397 StarVertex self edge has buggy interaction with graph filters * TINKERPOP-1419 Wrong exception when a SessionedClient is initialized with no available host -Improvements -^^^^^^^^^^^^ +==== Improvements * TINKERPOP-989 Default documentation should be reference/index.html * TINKERPOP-1376 Rename TinkerPop artifacts @@ -981,8 +943,7 @@ Improvements * TINKERPOP-1418 CoreTraversalTests depend on missing functionality [[release-3-1-3]] -TinkerPop 3.1.3 (Release Date: July 18, 2016) -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +=== TinkerPop 3.1.3 (Release Date: July 18, 2016) * Fixed bug in `SubgraphStep` where features were not being checked properly prior to reading meta-properties. * Ensured calls to `Result.hasNext()` were idempotent. @@ -1024,8 +985,7 @@ TinkerPop 3.1.3 (Release Date: July 18, 2016) * Improved dryRun functionality for the docs processor. It's now possible to dry run (or full run) only specific files. * Added precompile of `ScriptInputFormat` scripts to `ScriptRecordReader` to improve performance. -Bugs -^^^^ +==== Bugs * TINKERPOP-906 Install plugin always fails after first unresolved dependency * TINKERPOP-1088 Preserve Cardinality in Subgraph @@ -1050,8 +1010,7 @@ Bugs * TINKERPOP-1359 Exception thrown when calling subgraph() on Neo4jGraph * TINKERPOP-1360 intermittent error in spark-gremlin integration test -Improvements -^^^^^^^^^^^^ +==== Improvements * TINKERPOP-939 Neo4jGraph should support HighAvailability (Neo4jHA). * TINKERPOP-1003 Setting up latest/current links for bins and docs. @@ -1070,8 +1029,7 @@ Improvements * TINKERPOP-1354 Include all static enum imports in request validation for bindings *(breaking)* [[release-3-1-2-incubating]] -TinkerPop 3.1.2 (Release Date: April 8, 2016) -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +=== TinkerPop 3.1.2 (Release Date: April 8, 2016) * Fixed two `NullPointerException`-potential situations in `ObjectWritable`. * Provided Docker script that allows the execution of several build tasks within a Docker container. @@ -1123,8 +1081,7 @@ TinkerPop 3.1.2 (Release Date: April 8, 2016) * Greatly reduced the amount of objects required in OLAP for the `ReducingBarrierStep` steps. * Improved messages for the different distinct "timeouts" that a user can encounter with Gremlin Server. -Bugs -^^^^ +==== Bugs * TINKERPOP-1041 StructureStandardTestSuite has file I/O issues on Windows * TINKERPOP-1105 SparkGraphComputer / Null Pointer Exceptions for properties traversals @@ -1146,8 +1103,7 @@ Bugs * TINKERPOP-1251 NPE in ObjectWritable.toString * TINKERPOP-1252 Failed Neo4j transaction can leave Neo4jTransaction in inconsistent state -Improvements -^^^^^^^^^^^^ +==== Improvements * TINKERPOP-732 gremlin-server GraphSON serializer issue with tree() * TINKERPOP-916 Develop a better "simple" driver for testing and example purposes @@ -1176,8 +1132,7 @@ Improvements * TINKERPOP-1218 Usage of toLocalIterator Produces large amount of Spark Jobs [[release-3-1-1-incubating]] -TinkerPop 3.1.1 (Release Date: February 8, 2016) -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +=== TinkerPop 3.1.1 (Release Date: February 8, 2016) * Made `GryoRecordReader` more robust to 0 byte record splits. * Fixed a constructor/serialization bug in `LP_O_OB_S_SE_SL_Traverser`. @@ -1244,8 +1199,7 @@ TinkerPop 3.1.1 (Release Date: February 8, 2016) * Made a number of changes to improve traversal startup and execution performance. * Added support for 'gremlin.tinkergraph.graphLocation' to accept a fully qualified class name that implements `Io.Builder` interface. -Bugs -^^^^ +==== Bugs * TINKERPOP-763 IsStep broken when profiling is enabled. * TINKERPOP-972 Cluster::close does not shut down its executor @@ -1273,8 +1227,7 @@ Bugs * TINKERPOP-1089 Order.shuffle implementation is too fragile * TINKERPOP-1119 LP_O_OB_S_SE_SL_Traverser doesn't have a protected constructor(). -Improvements -^^^^^^^^^^^^ +==== Improvements * TINKERPOP-320 BulkDumperVertexProgram * TINKERPOP-379 MessageScope.Local.setStaticMessage(M msg) @@ -1334,8 +1287,7 @@ Improvements * TINKERPOP-1117 InputFormatRDD.readGraphRDD requires a valid gremlin.hadoop.inputLocation, breaking InputFormats (Cassandra, HBase) that don't need one [[release-3-1-0-incubating]] -TinkerPop 3.1.0 (Release Date: November 16, 2015) -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +=== TinkerPop 3.1.0 (Release Date: November 16, 2015) This release also includes changes from <<release-3-0-1-incubating, 3.0.1-incubating>> and <<release-3-0-2-incubating, 3.0.2-incubating>>. @@ -1404,8 +1356,7 @@ This release also includes changes from <<release-3-0-1-incubating, 3.0.1-incuba * Made `Path` iterable, so that it can be `unfold()`'ed and used by local steps like `min(local)`, `max(local)`, etc. * `WhereTraversalStep` and `WherePredicateStep` are now the only "special" `Scoping` steps after `MatchStartStep` in `match()`. -Bugs -^^^^ +==== Bugs * TINKERPOP-774 order / dedup issues * TINKERPOP-799 [Proposal] with()-modulator for stream level variable binding. @@ -1423,8 +1374,7 @@ Bugs * TINKERPOP-953 Artifact equality is not evaluating properly * TINKERPOP-955 HashMap$Node not serializable -Improvements -^^^^^^^^^^^^ +==== Improvements * TINKERPOP-297 Ensure Consistent Behavior Over Deleted Elements *(breaking)* * TINKERPOP-333 Support VertexProperty in PartitionStrategy @@ -1486,14 +1436,12 @@ Improvements * TINKERPOP-933 Improve release process to get files named properly * TINKERPOP-935 Add missing "close" operation to the session opProcessor docs -TinkerPop 3.0.0 (A Gremlin RÄga in 7/16 Time) ---------------------------------------------- +== TinkerPop 3.0.0 (A Gremlin RÄga in 7/16 Time) image::https://raw.githubusercontent.com/apache/tinkerpop/master/docs/static/images/gremlin-hindu.png[width=225] [[release-3-0-2-incubating]] -TinkerPop 3.0.2 (Release Date: October 19, 2015) -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +=== TinkerPop 3.0.2 (Release Date: October 19, 2015) * Cleaned up `ext/` directory when plugin installation fails for `gremlin-server` and `gremlin-console`. * Fixed issues in `gremlin-server` when configured for HTTP basic authentication. @@ -1512,8 +1460,7 @@ TinkerPop 3.0.2 (Release Date: October 19, 2015) * Fixed id parameter used in tests for `GroovyStoreTest` and `GroovyRepeatTest` to not be treated as an embedded string. * `GraphStep` will convert any `Vertex` or `Edge` ids to their id `Object` prior to submission to `GraphComputer` (OLAP). -Bugs -^^^^ +==== Bugs * TINKERPOP-814 ConnectionPool can fill with dead Connections * TINKERPOP-816 Gryo deserialization of error response with null message causes NPE and protocol desync @@ -1526,8 +1473,7 @@ Bugs * TINKERPOP-870 Rebound client requires a connection to occur on the underlying client. * TINKERPOP-877 Driver hangs if SSL enabled on server but not on client -Improvements -^^^^^^^^^^^^ +==== Improvements * TINKERPOP-828 TinkerGraph can supportPersistence(), should we allow it. * TINKERPOP-830 process-docs.sh introduces extra white space dependent on console width @@ -1537,8 +1483,7 @@ Improvements * TINKERPOP-858 Cleanup after failed :install [[release-3-0-1-incubating]] -TinkerPop 3.0.1 (Release Date: September 2, 2015) -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +=== TinkerPop 3.0.1 (Release Date: September 2, 2015) * `Compare` now uses `BigDecimal` internally to ensure that precision is not lost on standard number comparisons. * Renamed `ComputerVerificationStrategy` to `VerificationStrategy` so all the verification strategies can use it. @@ -1566,8 +1511,7 @@ TinkerPop 3.0.1 (Release Date: September 2, 2015) * Removed `SecurityCustomizerProvider` class and the "sandbox" configuration on the `ScriptEngines` class - this was an experimental feature and not meant for public use. * Removed dependency on `groovy-sandbox` from the `gremlin-groovy` module. -Bugs -^^^^ +==== Bugs * TINKERPOP-770 Exception while AddPropertyStep tries to detach vertex property * TINKERPOP-780 Use of fold() in repeat() @@ -1578,8 +1522,7 @@ Bugs * TINKERPOP-804 Failed installing neo4j-gremlin extension on Windows 7 * TINKERPOP-822 Neo4j GraphStep with element arguments ignores has *(breaking)* -Improvements -^^^^^^^^^^^^ +==== Improvements * TINKERPOP-576 Gremlin Server Authentication * TINKERPOP-582 Remove Groovy Sandbox Dependency @@ -1596,8 +1539,7 @@ Improvements * TINKERPOP-797 order() seems to only like List? *(breaking)* * TINKERPOP-808 TraversalComparator.comparator needs a getter -TinkerPop 3.0.0 (Release Date: July 9, 2015) -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +=== TinkerPop 3.0.0 (Release Date: July 9, 2015) * Modified the `GremlinExecutor` to catch `Throwable` as opposed to `Exception` so as to properly handle `Error` based exceptions. * Modified the `GremlinGroovyScriptEngine` compilation configuration to prevent inappropriate script evaluation timeouts on standalone functions. @@ -1667,8 +1609,7 @@ TinkerPop 3.0.0 (Release Date: July 9, 2015) * SparkGraphComputer now supports `InputRDD` and `OutputRDD` to allow vendors/users to use a `SparkContext` to read/write the graph adjacency list. * Added `Scoping.getScopeValue()` method so all "selecting" steps use the same pattern for map, path, and sideEffect data retrieval. -TinkerPop 3.0.0.M9 (Release Date: May 26, 2015) -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +=== TinkerPop 3.0.0.M9 (Release Date: May 26, 2015) * Removed `GraphComputer.isolation()` as all implementations use standard BSP. * Added a Gremlin Server `LifeCycleHook` to ensure that certain scripts execute once at startup and once at shutdown. @@ -1759,8 +1700,7 @@ TinkerPop 3.0.0.M9 (Release Date: May 26, 2015) * `TraverserSet` uses a `FastNoSuchElementException` on `remove()` for increased performance. * Add `Profiling` interface to enable vendors to receive a `Step's MutableMetrics`. -TinkerPop 3.0.0.M8 (Release Date: April 6, 2015) -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +=== TinkerPop 3.0.0.M8 (Release Date: April 6, 2015) * Removed Neo4j-Gremlin from this distribution due to GPL licensing. Working with Neo4j team to reintroduce by M9. * Altered structure of plugin directories for Gremlin Server and Gremlin Console to allow for the full `lib` directory with all dependencies and the lighter `plugin` directory which contains filtered dependencies given the path. @@ -1869,8 +1809,7 @@ TinkerPop 3.0.0.M8 (Release Date: April 6, 2015) * Fixed a bug in `DedupStep` that made itself apparent in `DedupOptimizerStrategy`. * Added `RepeatStep.RepeatEndStep` in order to reduce the complexity of the code on OLAP when the predicates are not at the start of `RepeatStep`. -TinkerPop 3.0.0.M7 (Release Date: January 19, 2015) -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +=== TinkerPop 3.0.0.M7 (Release Date: January 19, 2015) * Added `SideEffectRegistrar` interface and `SideEffectRegistrationStrategy` for allowing steps to register sideEffects at strategy application time. * Renamed `Traverser.Admin.setFuture()` and `Traverser.Admin.getFuture()` to `setStepId()` and `getStepId()`, respectively. @@ -1968,8 +1907,7 @@ TinkerPop 3.0.0.M7 (Release Date: January 19, 2015) * Enabled SessionOps to be extended. Added eval handler hook. * Setting a property with an unsupported data type throw `IllegalArgumentException` instead of `UnsupportedOperationException` as the operation is supported, but the argument is not. -TinkerPop 3.0.0.M6 (Release Date: December 2, 2014) -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +=== TinkerPop 3.0.0.M6 (Release Date: December 2, 2014) * `javatuples.Pair` avoided on `MapReduce` API in favor of a new `KeyValue` class. * Renamed `Gremlin-Plugin` manifest entry for plugins to `Gremlin-Plugin-Paths`. @@ -2012,8 +1950,7 @@ TinkerPop 3.0.0.M6 (Release Date: December 2, 2014) * Prevented error in the Console when `:submit` is called but no remotes were configured. * Provided a way to clean the `grapes` directory as part of a standard build with `mvn clean install`. -TinkerPop 3.0.0.M5 (Release Date: November 7, 2014) -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +=== TinkerPop 3.0.0.M5 (Release Date: November 7, 2014) * Removed `PropertyFilterIterator` as using Java8 streams was just as efficient for the use case. * Renamed `KryoWritable` to `GremlinWritable` as it is not necessarily Kryo that is the serialization mechanism. @@ -2084,8 +2021,7 @@ TinkerPop 3.0.0.M5 (Release Date: November 7, 2014) * Updated `Traversal.SideEffects` to use "registered suppliers" and it now works accordingly in both OLTP and OLAP environments. * Increased the speed of `FlatMapStep` by approximately 1.5x. -TinkerPop 3.0.0.M4 (Release Date: October 21, 2014) -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +=== TinkerPop 3.0.0.M4 (Release Date: October 21, 2014) * Added features for `VertexProperty` user supplied ids and related data types. * Removed `SideEffectCap` marker interface as there is only one `SideEffectCapStep` and thus, `instanceof` is sufficient. @@ -2154,8 +2090,7 @@ TinkerPop 3.0.0.M4 (Release Date: October 21, 2014) * `ShuffleStep` now extends `BarrierStep` which enables semantically correct step-sideEffects. * Leveraged `Traverser.getBulk()` consistently throughout all steps. -TinkerPop 3.0.0.M3 (Release Date: October 6, 2014) -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +=== TinkerPop 3.0.0.M3 (Release Date: October 6, 2014) * All `Step` fields are now `private`/`protected` with respective getters as currently needed and will be added to as needed. * Gremlin Server no longer has the `traverse` operation as lambdas aren't really serialized. @@ -2191,8 +2126,7 @@ TinkerPop 3.0.0.M3 (Release Date: October 6, 2014) * Fixed compilation bug in `UntilStep` that is realized when used in multi-machine OLAP. * Simplified `Enumerator` and implementations for `MatchStep`. -TinkerPop 3.0.0.M2 (Release Date: September 23, 2014) -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +=== TinkerPop 3.0.0.M2 (Release Date: September 23, 2014) * Added an exhaust `InnerJoinEnumerator` fix in `MatchStep` to get all solutions correctly. * `Neo4jGraph` can be configured to allow or disallow meta- and multi-properties. http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/cff12774/CONTRIBUTING.asciidoc ---------------------------------------------------------------------- diff --git a/CONTRIBUTING.asciidoc b/CONTRIBUTING.asciidoc index 0739c73..4711689 100644 --- a/CONTRIBUTING.asciidoc +++ b/CONTRIBUTING.asciidoc @@ -14,8 +14,7 @@ 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. //// -Contributing to Apache TinkerPop --------------------------------- +== Contributing to Apache TinkerPop Contributions via GitHub pull requests are gladly accepted from their original author. By submitting any copyrighted material via pull request, email, or other means @@ -23,4 +22,4 @@ you agree to license the material under the project's open source license and warrant that you have the legal authority to do so. Please see the "Developer Documentation" for more information on -link:http://tinkerpop.apache.org/docs/current/dev/developer/#_contributing[contributing] to TinkerPop. \ No newline at end of file +link:http://tinkerpop.apache.org/docs/current/dev/developer/#_contributing[contributing] to TinkerPop. http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/cff12774/README.asciidoc ---------------------------------------------------------------------- diff --git a/README.asciidoc b/README.asciidoc index 8d9e35f..64e47b8 100644 --- a/README.asciidoc +++ b/README.asciidoc @@ -14,13 +14,11 @@ 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 ----------- +== TinkerPop3 image:https://raw.githubusercontent.com/apache/tinkerpop/master/docs/static/images/tinkerpop3-splash.png[TinkerPop3, link="http://tinkerpop.apache.org"] -Documentation -~~~~~~~~~~~~~ +=== Documentation TinkerPop3 provides graph computing capabilities for both graph databases (OLTP) and graph analytic systems (OLAP). @@ -29,8 +27,7 @@ TinkerPop3 provides graph computing capabilities for both graph databases (OLTP) * link:http://tinkerpop.apache.org/javadocs/current/core/[core javadoc] * link:http://tinkerpop.apache.org/javadocs/current/full/[full javadoc] -Building and Testing -~~~~~~~~~~~~~~~~~~~~ +=== Building and Testing TinkerPop uses link:https://maven.apache.org/[Maven] and requires `Java 1.8.0_40+` for proper building and proper operations. To build, execute unit tests and package Gremlin Console/Server run: @@ -44,8 +41,7 @@ The zip distributions can be found in the following directories: Please see the link:http://tinkerpop.apache.org/docs/current/dev/developer/#_contributing[CONTRIBUTING.asciidoc] file for more detailed information and options for building, test running and developing TinkerPop. -Get Started -~~~~~~~~~~~ +=== Get Started [source,bash] ---- http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/cff12774/docs/src/dev/developer/administration.asciidoc ---------------------------------------------------------------------- diff --git a/docs/src/dev/developer/administration.asciidoc b/docs/src/dev/developer/administration.asciidoc index eef199b..f99f36b 100644 --- a/docs/src/dev/developer/administration.asciidoc +++ b/docs/src/dev/developer/administration.asciidoc @@ -14,11 +14,9 @@ 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. //// -Administration -============== += Administration -New Committers --------------- +== New Committers When a candidate is identified by a PMC member as someone who might be a good official committer to TinkerPop, the PMC member should open a DISCUSS thread on the private TinkerPop mailing list. The thread should provide some @@ -106,8 +104,7 @@ Finally, new committers should be sent an email that covers some of the administ * link:http://tinkerpop.apache.org/docs/current/dev/developer/[TinkerPop Developer Documentation] ** Bring specific attention to the "committer" section which describes our general policies. -New PMC Members ---------------- +== New PMC Members The process for bringing on new PMC members is not so different from the one for new committers. The process begins with a DISCUSS thread to the private mailing list for building consensus followed by a VOTE thread to confirm. @@ -132,8 +129,7 @@ elapsed, the invite may be sent to the new PMC member. If they accept, then the link:http://www.apache.org/dev/pmc.html#newpmc[How to Add a New PMC Member] section in the Apache docs for how to complete the process. Use link:https://whimsy.apache.org/roster/committee/[Whimsy] to update PMC membership. -Board Reports -------------- +== Board Reports The PMC Chair is responsible for submitting a link:http://www.apache.org/foundation/board/reporting[report to the board] on a quarterly basis. TinkerPop reports on the following months: January, April, July, October. The report has the http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/cff12774/docs/src/dev/developer/contributing.asciidoc ---------------------------------------------------------------------- diff --git a/docs/src/dev/developer/contributing.asciidoc b/docs/src/dev/developer/contributing.asciidoc index c82651e..a29b7c3 100644 --- a/docs/src/dev/developer/contributing.asciidoc +++ b/docs/src/dev/developer/contributing.asciidoc @@ -14,15 +14,13 @@ 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. //// -Contributing -============ += Contributing Contributions via GitHub pull requests are gladly accepted from their original author. By submitting any copyrighted material via pull request, email, or other means you agree to license the material under the project's open source license and warrant that you have the legal authority to do so. -Ways to Contribute ------------------- +== Ways to Contribute image:gremlin-apache.png[width=250,float=left] While the concept of an open source contribution can refer to doing development work on the code base, there are many other ways outside of coding to contribute to Apache TinkerPop. @@ -34,8 +32,7 @@ involved in the TinkerPop community. NOTE: As a quick acknowledgement, this section was influenced by Apache Spark's well organized link:https://cwiki.apache.org/confluence/display/SPARK/Contributing+to+Spark["Contributing to Spark"] document. -Mailing List Participation -~~~~~~~~~~~~~~~~~~~~~~~~~~ +=== Mailing List Participation TinkerPop has two mailing lists: link:https://groups.google.com/forum/#!forum/gremlin-users[gremlin-users] and pass:[<a href="https://lists.apache.org/[email protected]">dev</a>]. Subscribing to and @@ -48,16 +45,14 @@ discussions and other similar communication takes place. Having insight into the lot of information about the day-to-day course of TinkerPop and many of the other ways contributors can be involved require a subscription to this list. -Testing Releases -~~~~~~~~~~~~~~~~ +=== Testing Releases Proposed TinkerPop releases are not official until after they are evaluated by the community. The process of evaluation occurs on the [email protected] mailing list where the community is invited to review release artifacts and vote if they should be released or not. Anyone is free to comment and provide a vote (+1/+0/-1) on a release. Note that votes of non-PMC members are considered non-binding, but are certainly considered in the review process. -Reviewing Changes -~~~~~~~~~~~~~~~~~ +=== Reviewing Changes Virtually all changes to TinkerPop's source code are performed via GitHub link:https://github.com/apache/tinkerpop/pulls[pull requests]. When a pull request is issue it undergoes a @@ -65,8 +60,7 @@ link:https://github.com/apache/tinkerpop/pulls[pull requests]. When a pull reque on a pull request. Note that votes of non-committers are considered non-binding, but are certainly considered in the review process. -Writing Documentation -~~~~~~~~~~~~~~~~~~~~~ +=== Writing Documentation Proposing a documentation change is quite similar to providing a source code change, which is described below in more detail. Note that there is a difference between project documentation and the TinkerPop web site. The project @@ -93,8 +87,7 @@ consensus (wait time is 72 hours as usual). At that point, pull requests or dire Again, see the <<documentation-environment,Documentation Environment>> section for more information on how to generate the site locally. -Reporting Bugs -~~~~~~~~~~~~~~ +=== Reporting Bugs Well formed bug reports (especially when accompanied by a pull request that fixes the problem) are welcome contributions that ultimately help improve the quality of TinkerPop. Of course, a bug report is only as good as its @@ -102,8 +95,7 @@ reproduction steps and the surrounding details of the issue. When a bug is encou link:https://issues.apache.org/jira/browse/TINKERPOP[JIRA], where it will likely trigger some discussion and ultimately a resolution. -TinkerPop Libraries -~~~~~~~~~~~~~~~~~~~ +=== TinkerPop Libraries TinkerPop is more than just the core source code repository. It is a rich ecosystem of libraries developed by link:http://tinkerpop.apache.org/providers.html[providers], who look to use or extend upon the TinkerPop interfaces. @@ -115,8 +107,7 @@ TinkerPop web site and promoted there. Please see the current listing of such li link:http://tinkerpop.apache.org/#graph-systems[home page] to get an idea as to what kinds of libraries are available from the community. -Considering Code Changes ------------------------- +== Considering Code Changes Code changes can take a fair bit of effort from both the contributor doing the work, as well as the people who will be reviewing and testing that work. It is beneficial to all involved that some basic considerations be made by @@ -166,8 +157,7 @@ promoted in link:http://tinkerpop.apache.org/#graph-systems[provider listings] * Adds a large amount of code * Makes lots of modifications in one "big bang" change -Contributing Code Changes -------------------------- +== Contributing Code Changes Generally, TinkerPop uses link:https://issues.apache.org/jira/browse/TINKERPOP[JIRA] to track logical issues, including bugs and improvements, and uses GitHub pull requests to manage the review and merge of specific code http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/cff12774/docs/src/dev/developer/development-environment.asciidoc ---------------------------------------------------------------------- diff --git a/docs/src/dev/developer/development-environment.asciidoc b/docs/src/dev/developer/development-environment.asciidoc index 870af44..c619e19 100644 --- a/docs/src/dev/developer/development-environment.asciidoc +++ b/docs/src/dev/developer/development-environment.asciidoc @@ -15,16 +15,14 @@ See the License for the specific language governing permissions and limitations under the License. //// [[development-environment]] -Development Environment -======================= += Development Environment TinkerPop is fairly large body of code spread across many modules and covering multiple programming languages. Despite this complexity, it remains relatively straightforward a project to build. This following subsections explain how to configure a development environment for TinkerPop. [[system-configuration]] -System Configuration --------------------- +== System Configuration At a minimum, development of TinkerPop requires link:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html[Java 1.8.0_40+] and link:https://maven.apache.org/download.cgi[Maven 3.0.5+]. Maven is used as the common build system, which even @@ -44,8 +42,7 @@ NOTE: For those using Windows, efforts have been made to keep the build OS indep that TinkerPop's build system will only allow for a minimum build at best. [[documentation-environment]] -Documentation Environment -~~~~~~~~~~~~~~~~~~~~~~~~~ +=== Documentation Environment The documentation generation process is not Maven-based and uses shell scripts to process the project's asciidoc. The scripts should work on Mac and Linux. @@ -75,8 +72,7 @@ bin/generate-home.sh The site will be generated to the `target/site/home` directory. [[python-environment]] -Python Environment -~~~~~~~~~~~~~~~~~~ +=== Python Environment As of TinkerPop 3.2.2, the build optionally requires link:https://www.python.org/[Python 2.x] to work with the `gremlin-python` module. If Python is not installed, TinkerPop will still build with Maven, but native Python tests and @@ -102,8 +98,7 @@ integration tests and therefore must be actively switched on with `-DskipIntegra mvn clean install -pl gremlin-console -DskipIntegrationTests=false [[dotnet-environment]] -DotNet Environment -~~~~~~~~~~~~~~~~~~ +=== DotNet Environment The build optionally requires link:https://www.microsoft.com/net/core[.NET Core SDK] (>=1.1.0) to work with the `gremlin-dotnet` module. If .NET Core SDK is not installed, TinkerPop will still build with Maven, but .NET projects @@ -137,8 +132,7 @@ This should update `~/.config/NuGet/NuGet.Config` a file with an entry containin See release documentation for more information on configuration for release. [[release-environment]] -Release Environment -~~~~~~~~~~~~~~~~~~~ +=== Release Environment This section is only useful to TinkerPop release managers and describes prerequisites related to deploying an official release of TinkerPop. All Apache releases must be signed. Please see link:http://www.apache.org/dev/release-signing.html[this guide] @@ -173,8 +167,7 @@ The release manager shall use the project's pypi credentials, which are availabl The `password` should be left blank so the deployment process in Maven will prompt for it at deployment time. [[building-testing]] -Building and Testing --------------------- +== Building and Testing The following commands are a mix of Maven flags and shell scripts that handle different build operations @@ -209,8 +202,7 @@ mvn -Dmaven.javadoc.skip=true --projects tinkergraph-gremlin test * Benchmarks: `mvn verify -DskipBenchmarks=false` [[docker-integration]] -Docker Integration ------------------- +== Docker Integration TinkerPop provides a shell script, that can start several build tasks within a Docker container. The required Docker images will be built automatically if they don't exist yet. Thus the first invocation @@ -251,8 +243,7 @@ is used to host the HTML docs. After finishing all tasks, the script will immediately destroy the container. -IDE Setup with Intellij ------------------------ +== IDE Setup with Intellij This section refers specifically to setup within Intellij. TinkerPop has a module called `gremlin-shaded` which contains shaded dependencies for some libraries that are widely used and tend to introduce conflicts. To ensure http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/cff12774/docs/src/dev/developer/for-committers.asciidoc ---------------------------------------------------------------------- diff --git a/docs/src/dev/developer/for-committers.asciidoc b/docs/src/dev/developer/for-committers.asciidoc index b812a01..c62f1da 100644 --- a/docs/src/dev/developer/for-committers.asciidoc +++ b/docs/src/dev/developer/for-committers.asciidoc @@ -14,15 +14,13 @@ 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. //// -For Committers -============== += For Committers image::business-gremlin.png[width=400] The guidelines that follow apply to those with commit access to the main repository: -Communication -------------- +== Communication TinkerPop has a link:http://groups.google.com/group/gremlin-users[user mailing list] and a link:https://lists.apache.org/[email protected][developer mailing list]. As a committer, @@ -38,8 +36,7 @@ On the day of the meeting, the meeting organizer will create a Google Hangout (o post to the TinkerPop room in HipChat. At that point, all who are interested can attend. Meeting minutes should be taken and added to the <<meetings,Meetings>> section of this document using the pattern already established. -Release Notes -------------- +== Release Notes There is a two-pronged approach to maintaining the change log and preparing the release notes. @@ -61,8 +58,7 @@ Changes that break the public APIs should be marked with a "breaking" label and distinguished from other changes in the release notes. [[branches]] -Branches --------- +== Branches TinkerPop has several release branches: @@ -83,14 +79,12 @@ a branch name prefix. This provides a unique namespace, and also a way to accou Developers should remove their own branches when they are no longer needed. -Tags ----- +== Tags Tags are used for milestones, release candidates, and approved releases. Please refrain from creating arbitrary tags, as they produce permanent clutter. -Issue Tracker Conventions -------------------------- +== Issue Tracker Conventions TinkerPop uses Apache JIRA as its link:https://issues.apache.org/jira/browse/TINKERPOP[issue tracker]. JIRA is a very robust piece of software with many options and configurations. To simplify usage and ensure consistency across @@ -118,23 +112,20 @@ which that particular issue will completed. This is a field usually only set by tasks that are "easy" for a potential new contributor to jump into and do not have significant impact to urgently required improvements. -Code Style ----------- +== Code Style Contributors should examine the current code base to determine what the code style patterns are and should match their style to what is already present. Of specific note however, TinkerPop does not use "import wildcards" - IDEs should be adjusted accordingly to not auto-wildcard the imports. -Build Server ------------- +== Build Server TinkerPop uses link:https://travis-ci.com/[Travis] for link:https://en.wikipedia.org/wiki/Continuous_integration[CI] services. The build status can be found link:https://travis-ci.org/apache/tinkerpop[here]. Note that the CI process does not run integration tests or include Neo4j-related tests as those tests would likely exceed the allowable times for builds on these servers. -Deprecation ------------ +== Deprecation When possible, committers should avoid direct "breaking" change (e.g. removing a method from a class) and favor deprecation. Deprecation should come with sufficient documentation and notice especially when the change involves @@ -155,8 +146,7 @@ call out this fact. The JIRA issues that track removal of deprecated methods should be periodically evaluated to determine if it is prudent to schedule them into a release. -Developing Tests ----------------- +== Developing Tests TinkerPop has a wide variety of test types that help validate its internal code as well as external provider code. There are "unit tests" and "integration tests". Unit tests execute on standard runs of `mvn clean install`. These @@ -182,8 +172,7 @@ environments without a `GraphProvider` being initialized by a suite. These types `Check` instead. Please see link:https://github.com/apache/tinkerpop/blob/e32a4187e4f25e290aabe14007f9087c48a06521/neo4j-gremlin/src/test/java/org/apache/tinkerpop/gremlin/neo4j/structure/NativeNeo4jStructureCheck.java[NativeNeo4jStructureCheck] for an example. -Gremlin Language Test Cases -~~~~~~~~~~~~~~~~~~~~~~~~~~~ +=== Gremlin Language Test Cases When writing a test case for a Gremlin step, be sure to use the following conventions. @@ -200,8 +189,7 @@ When writing a test case for a Gremlin step, be sure to use the following conven ** `checkResults(Arrays.asList("marko","josh"), traversal)` ** `checkMap(new HashMap<String,Long>() {{ put("marko",1l); }}, traversal.next())` -Developing Benchmarks ---------------------- +== Developing Benchmarks Benchmarks are a useful tool to track performance between TinkerPop versions and also as tools to aid development decision making. TinkerPop uses link:http://openjdk.java.net/projects/code-tools/jmh/[OpenJDK JMH] for benchmark development. @@ -231,8 +219,7 @@ that may be used as building blocks for your benchmarks; `AbstractBenchmarkBase` * `AbstractGraphMutateBenchmark` - extend when you are benchmarking graph mutation operations eg. `g.addV()`, `graph.addVertex()` [[rtc]] -Review then Commit ------------------- +== Review then Commit Code modifications must go through a link:http://www.apache.org/foundation/glossary.html#ReviewThenCommit[review-then-committ] (RTC) process before being merged into a release branch. All committers should follow the pattern below, where "you" refers @@ -272,8 +259,7 @@ that CTR was invoked and the reason for doing so. For example, "Invoking CTR as adjustments to text formatting." [[pull-requests]] -Pull Requests -~~~~~~~~~~~~~ +=== Pull Requests When submitting a pull request to one of the <<branches, release branches>>, be sure it uses the following style: @@ -348,8 +334,7 @@ to the work that was done and that no extraneous commits are present that cannot only contains the expected commits is the responsibility of the committer as well as the reviewer. [[dependencies]] -Dependencies ------------- +== Dependencies There are many dependencies on other open source libraries in TinkerPop modules. When adding dependencies or altering the version of a dependency, developers must consider the implications that may apply to the TinkerPop @@ -379,8 +364,7 @@ link:https://github.com/apache/tinkerpop/blob/master/LICENSE[LICENSE] / link:htt ** Gremlin Server link:https://github.com/apache/tinkerpop/blob/master/gremlin-server/src/main/static/LICENSE[LICENSE] / link:https://github.com/apache/tinkerpop/blob/master/gremlin-server/src/main/static/NOTICE[NOTICE] -Source LICENSE and NOTICE -~~~~~~~~~~~~~~~~~~~~~~~~~ +=== Source LICENSE and NOTICE As dependencies are not typically added to the source distribution (i.e. the source zip distribution), there is typically no need to edit source LICENSE/NOTICE when editing a TinkerPop `pom.xml`. These files only need to be edited @@ -391,8 +375,7 @@ likely come from the addition of a source file from another library. * If the file being bundled is under a different approved license, then add an entry to LICENSE and include a copy of that LICENSE in the root `/licenses` directory of the code repository. -Binary LICENSE and NOTICE -~~~~~~~~~~~~~~~~~~~~~~~~~ +=== Binary LICENSE and NOTICE The binary LICENSE/NOTICE is perhaps most impacted by changes to the various `pom.xml` files. After altering the `pom.xml` file of any module, build both Gremlin Console and Gremlin Server and examine the contents of both binary @@ -421,8 +404,7 @@ Please refer to the link:http://www.apache.org/dev/licensing-howto.html#mod-noti of the Apache "Licensing How-to" for more information. [[documentation]] -Documentation -------------- +== Documentation The documentation for TinkerPop is stored in the git repository in `docs/src/` and are then split into several subdirectories, each representing a "book" (or its own publishable body of work). If a new AsciiDoc file is added to @@ -441,8 +423,7 @@ Please see the <<building-testing,Building and Testing>> section for more inform documentation. [[logging]] -Logging -------- +== Logging TinkerPop uses SLF4j for logging and typically leans back on Log4j as the implementation. Configuring log outputs for debugging purposes within tests can be altered by editing the `log4j-test.properties` file in each module's test http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/cff12774/docs/src/dev/developer/index.asciidoc ---------------------------------------------------------------------- diff --git a/docs/src/dev/developer/index.asciidoc b/docs/src/dev/developer/index.asciidoc index 1edca5e..2b53ed2 100644 --- a/docs/src/dev/developer/index.asciidoc +++ b/docs/src/dev/developer/index.asciidoc @@ -20,8 +20,7 @@ image::apache-tinkerpop-logo.png[width=500,link="http://tinkerpop.apache.org"] :toc-position: left -Developer Documentation -======================= += Developer Documentation This document contains information for TinkerPop developers, contributors, and community members. It focuses on technical information and other internal processes related to the project. @@ -32,8 +31,7 @@ include::development-environment.asciidoc[] include::for-committers.asciidoc[] -For Providers -============= += For Providers Graph Providers are those who develop third-party systems and libraries on top of the various TinkerPop APIs and protocols. They manage their projects independently of TinkerPop in separate repositories. Additional details for http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/cff12774/docs/src/dev/developer/meetings.asciidoc ---------------------------------------------------------------------- diff --git a/docs/src/dev/developer/meetings.asciidoc b/docs/src/dev/developer/meetings.asciidoc index c5085ab..0b3aad3 100644 --- a/docs/src/dev/developer/meetings.asciidoc +++ b/docs/src/dev/developer/meetings.asciidoc @@ -15,11 +15,9 @@ See the License for the specific language governing permissions and limitations under the License. //// [[meetings]] -Meetings -======== += Meetings -November 23, 2015 ------------------ +== November 23, 2015 The meeting was scheduled for 12:00pm EST, started at 12:05pm when sufficient attendance to constitute a quorum was reached and was held via Google Hangout hosted by Marko Rodriguez. Meeting adjourned at 2:35pm EST. @@ -157,8 +155,7 @@ issues themselves: |TINKERPOP-936 |Check feature requirements before opening graph during tests |Improvement |========================================================= -October 29, 2015 ----------------- +== October 29, 2015 The meeting was scheduled for 1:00pm EST, started on time and was held via Google Hangout hosted by Stephen Mallette. Meeting adjourned at 1:45pm EST. @@ -201,4 +198,4 @@ roadmap: |TINKERPOP-620 |Commutative Step Marker interface |Awaiting step library definition in 3.2.0-incubating |TINKERPOP-550 |Gremlin IO needs to support both OLTP and OLAP naturally. |Not clearly defined given time limitations. |TINKERPOP-479 |Consider Providing "getOrCreate" Functionality |Not clearly defined given time limitations. -|========================================================= \ No newline at end of file +|========================================================= http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/cff12774/docs/src/dev/developer/release.asciidoc ---------------------------------------------------------------------- diff --git a/docs/src/dev/developer/release.asciidoc b/docs/src/dev/developer/release.asciidoc index 22d1e2b..dac28b3 100644 --- a/docs/src/dev/developer/release.asciidoc +++ b/docs/src/dev/developer/release.asciidoc @@ -14,8 +14,7 @@ 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. //// -Release Process -=============== += Release Process This document describes the steps required to release a version of TinkerPop. The release is handled by a "release manager" (a committer fulfills this role), who ensures that the steps in this document are executed. The process is @@ -37,8 +36,7 @@ IMPORTANT: The following instructions assume that the release manager's <<develo properly for release and includes a `.glv` file in `gremlin-python` as described in the <<python-environment,Python Environment>> section, so that the `gremlin-python` module builds in full. -Development Versions -~~~~~~~~~~~~~~~~~~~~ +=== Development Versions A "development version" or snapshot (in Java parlance) is not an "official" release. Artifacts produced for a snapshot are solely for the convenience of providers and other developers who want to use the latest releases of @@ -82,8 +80,7 @@ version number when "-SNAPSHOT" is in the `pom.xml`. Use the `staging.nuget.org` IMPORTANT: These commands will dynamically edit the `gremlin-dotnet-source/Gremlin.Net.csproj`. Take care to commit or not commit changes related to that as necessary. -Release Manager Requirements ----------------------------- +== Release Manager Requirements If this is your first time as release manager, you will need to setup keys for signing purposes per the Apache release process. Generally speaking, this will mean that you will need to generate a key-pair and then upload your @@ -104,8 +101,7 @@ echo -n " * PGP signature ... " echo "OK" ---- -Pre-flight Check ----------------- +== Pre-flight Check The "pre-flight check" is a list of things performed by the release manager during the weeks leading up to a scheduled day to release. These checks will help to ensure that that release day goes smoothly by identifying problems up early @@ -135,8 +131,7 @@ Resolution may have been assigned). of the docs and thus validate that there are no issues with the documentation generation process. Request review of the published documentation on the dev mailing list. -Release Candidate ------------------ +== Release Candidate A release candidate is an unofficial release that is represented by a tagged version in the Git repository. It is offered in cases where there is significant change in a particular version and the potential for upgrades and problems @@ -158,8 +153,7 @@ might be high. . Announce the release candidate to `dev` mailing list and await feedback . Repeat as required or proceed to the next phase -PMC Vote --------- +== PMC Vote This section describes the process that process that prepares a release for VOTE by the community. If there are multiple releases (as there usually are) being prepared, it may be best for downstream releases to wait for upstream releases @@ -228,8 +222,7 @@ for generating javadoc and without that the binary distributions won't contain t . Submit for `[VOTE]` at `[email protected]` (see email template below) . *Wait for vote acceptance* (72 hours) -Release & Promote ------------------ +== Release & Promote . Login to link:https://repository.apache.org/[Apache Nexus] and release the previously closed repository. . Deploy to link:https://pypi.python.org/pypi[pypi] @@ -256,11 +249,9 @@ if `3.2.0` is present and `3.2.1` is released then remove `3.2.0`. However, if code is still under potential development, it may stay. . Announce release on `dev@`/`gremlin-users@` mailing lists and tweet from `@apachetinkerpop` -Email Templates ---------------- +== Email Templates -Release VOTE -~~~~~~~~~~~~ +=== Release VOTE [source,text] ---- @@ -303,8 +294,7 @@ Thank you very much, <TinkerPop Committer Name> ---- -Dev Release RESULT VOTE -~~~~~~~~~~~~~~~~~~~~~~~ +=== Dev Release RESULT VOTE [source,text] ---- @@ -328,8 +318,7 @@ Thank you very much, <TinkerPop Committer Name> ---- -General Release Announcement -~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +=== General Release Announcement The template below refers to the "name of release line" and the "release line logo". Every release line has a name and logo. For example, 3.1.x had the name, "A 187 On The Undercover Gremlinz" and the logo shown http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/cff12774/docs/src/dev/io/graphml.asciidoc ---------------------------------------------------------------------- diff --git a/docs/src/dev/io/graphml.asciidoc b/docs/src/dev/io/graphml.asciidoc index 89eb0da..9368f20 100644 --- a/docs/src/dev/io/graphml.asciidoc +++ b/docs/src/dev/io/graphml.asciidoc @@ -15,8 +15,7 @@ See the License for the specific language governing permissions and limitations under the License. //// [[graphml]] -GraphML -======= += GraphML image:gremlin-graphml.png[width=350,float=left] The link:http://graphml.graphdrawing.org/[GraphML] file format is a common XML-based representation of a graph. It uses an edge list format where vertices and their properties are listed @@ -116,4 +115,4 @@ tag as that is the nature of the type of graph that TinkerPop supports. supports user-supplied identifiers (i.e. TinkerGraph). * By default the labels for vertex and edges are referred to as "labelV" and "labelE" respectively. It is possible to change these defaults on the `Builder` for the `GraphReader`. If no label is supplied, the reader will default to -"vertex" and "edge" respectively as is the general expectation in TinkerPop when those values are omitted. \ No newline at end of file +"vertex" and "edge" respectively as is the general expectation in TinkerPop when those values are omitted. http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/cff12774/docs/src/dev/io/graphson.asciidoc ---------------------------------------------------------------------- diff --git a/docs/src/dev/io/graphson.asciidoc b/docs/src/dev/io/graphson.asciidoc index e4c671d..efbaf9f 100644 --- a/docs/src/dev/io/graphson.asciidoc +++ b/docs/src/dev/io/graphson.asciidoc @@ -236,8 +236,7 @@ mapper = GraphSONMapper.build(). //// [[graphson]] -GraphSON -======== += GraphSON image:gremlin-graphson.png[width=350,float=left] GraphSON is a JSON-based format that is designed for human readable output that is easily supported in any programming language through the wide-array of JSON parsing libraries that @@ -311,8 +310,7 @@ in the output. Without embedded types, the type system is restricted to standard Number, Boolean and that will lead to "lossyness" in the format (i.e. a float will be interpreted as double). [[graphson-1d0]] -Version 1.0 ------------ +== Version 1.0 Version 1.0 of GraphSON was released with TinkerPop 3.0.0. When types are embedded, GraphSON uses the standard link:https://github.com/FasterXML/jackson-databind[Jackson] type embedding approach that writes the full Java class @@ -323,11 +321,9 @@ This section focuses on non-embedded types and their formats as there was little object serialization use cases. The format was simply too cumbersome to parse of non-Jackson enabled libraries and the use cases for it were limited. <<graphson-2d0,GraphSON Version 2.0>> attempts to improve upon this limitation. -Graph Structure -~~~~~~~~~~~~~~~ +=== Graph Structure -Edge -^^^^ +==== Edge [source,json] ---- @@ -345,8 +341,7 @@ Edge } ---- -Path -^^^^ +==== Path [source,json] ---- @@ -414,8 +409,7 @@ Path } ---- -Property -^^^^^^^^ +==== Property [source,json] ---- @@ -425,8 +419,7 @@ Property } ---- -StarGraph -^^^^^^^^^ +==== StarGraph [source,json] ---- @@ -498,8 +491,7 @@ StarGraph } ---- -TinkerGraph -^^^^^^^^^^^ +==== TinkerGraph `TinkerGraph` has a custom serializer that is registered as part of the `TinkerIoRegistry`. @@ -820,8 +812,7 @@ TinkerGraph } ---- -Tree -^^^^ +==== Tree [source,json] ---- @@ -1103,8 +1094,7 @@ Tree } ---- -Vertex -^^^^^^ +==== Vertex [source,json] ---- @@ -1149,8 +1139,7 @@ Vertex } ---- -VertexProperty -^^^^^^^^^^^^^^ +==== VertexProperty [source,json] ---- @@ -1162,11 +1151,9 @@ VertexProperty ---- -RequestMessage -~~~~~~~~~~~~~~ +=== RequestMessage -Authentication Response -^^^^^^^^^^^^^^^^^^^^^^^ +==== Authentication Response The following `RequestMessage` is an example of the response that should be made to a SASL-based authentication challenge. @@ -1183,8 +1170,7 @@ The following `RequestMessage` is an example of the response that should be made } ---- -Session Eval -^^^^^^^^^^^^ +==== Session Eval The following `RequestMessage` is an example of a simple session request for a script evaluation with parameters. @@ -1205,8 +1191,7 @@ The following `RequestMessage` is an example of a simple session request for a s } ---- -Session Eval -^^^^^^^^^^^^ +==== Session Eval The following `RequestMessage` is an example of a session request for a script evaluation with an alias that binds the `TraversalSource` of "g" to "social". @@ -1230,8 +1215,7 @@ The following `RequestMessage` is an example of a session request for a script e } ---- -Session Close -^^^^^^^^^^^^^ +==== Session Close The following `RequestMessage` is an example of a request to close a session. @@ -1247,8 +1231,7 @@ The following `RequestMessage` is an example of a request to close a session. } ---- -Sessionless Eval -^^^^^^^^^^^^^^^^ +==== Sessionless Eval The following `RequestMessage` is an example of a simple sessionless request for a script evaluation with parameters. @@ -1268,8 +1251,7 @@ The following `RequestMessage` is an example of a simple sessionless request for } ---- -Sessionless Eval -^^^^^^^^^^^^^^^^ +==== Sessionless Eval The following `RequestMessage` is an example of a sessionless request for a script evaluation with an alias that binds the `TraversalSource` of "g" to "social". @@ -1293,11 +1275,9 @@ The following `RequestMessage` is an example of a sessionless request for a scri ---- -ResponseMessage -~~~~~~~~~~~~~~~ +=== ResponseMessage -Authentication Challenge -^^^^^^^^^^^^^^^^^^^^^^^^ +==== Authentication Challenge When authentication is enabled, an initial request to the server will result in an authentication challenge. The typical response message will appear as follows, but handling it could be different dependending on the SASL implementation (e.g. multiple challenges maybe requested in some cases, but not in the default provided by Gremlin Server). @@ -1317,8 +1297,7 @@ When authentication is enabled, an initial request to the server will result in } ---- -Standard Result -^^^^^^^^^^^^^^^ +==== Standard Result The following `ResponseMessage` is a typical example of the typical successful response Gremlin Server will return when returning results from a script. @@ -1377,11 +1356,9 @@ The following `ResponseMessage` is a typical example of the typical successful r ---- -Time -~~~~ +=== Time -Duration -^^^^^^^^ +==== Duration The following example is a `Duration` of five days. @@ -1390,64 +1367,56 @@ The following example is a `Duration` of five days. "PT120H" ---- -Instant -^^^^^^^ +==== Instant [source,json] ---- "2016-10-04T12:17:19.571Z" ---- -LocalDate -^^^^^^^^^ +==== LocalDate [source,json] ---- "2016-01-01" ---- -LocalDateTime -^^^^^^^^^^^^^ +==== LocalDateTime [source,json] ---- "2016-01-01T12:30" ---- -LocalTime -^^^^^^^^^ +==== LocalTime [source,json] ---- "12:30:45" ---- -MonthDay -^^^^^^^^ +==== MonthDay [source,json] ---- "--01-01" ---- -OffsetDateTime -^^^^^^^^^^^^^^ +==== OffsetDateTime [source,json] ---- "2016-10-04T08:17:19.613-04:00" ---- -OffsetTime -^^^^^^^^^^ +==== OffsetTime [source,json] ---- "08:17:19.620-04:00" ---- -Period -^^^^^^ +==== Period The following example is a `Period` of one year, six months and fifteen days. @@ -1456,8 +1425,7 @@ The following example is a `Period` of one year, six months and fifteen days. "P1Y6M15D" ---- -Year -^^^^ +==== Year The following example is of the `Year` "2016". @@ -1466,8 +1434,7 @@ The following example is of the `Year` "2016". "2016" ---- -YearMonth -^^^^^^^^^ +==== YearMonth The following example is a `YearMonth` of "June 2016" @@ -1476,16 +1443,14 @@ The following example is a `YearMonth` of "June 2016" "2016-06" ---- -ZonedDateTime -^^^^^^^^^^^^^ +==== ZonedDateTime [source,json] ---- "2016-10-04T08:17:19.633-04:00[America/New_York]" ---- -ZoneOffset -^^^^^^^^^^ +==== ZoneOffset The following example is a `ZoneOffset` of three hours, six minutes, and nine seconds. @@ -1495,8 +1460,7 @@ The following example is a `ZoneOffset` of three hours, six minutes, and nine se ---- [[graphson-2d0]] -Version 2.0 ------------ +== Version 2.0 Version 2.0 of GraphSON was first introduced on TinkerPop 3.2.2. It was designed to be less tied to link:https://github.com/FasterXML/jackson-databind[Jackson] (a JVM library) and to be less lossy as it pertained to @@ -1512,11 +1476,9 @@ composed of two parts: a namespace and a type name, in the format "namespace:typ providers and users to categorize custom types that they may implement and avoid collision with existing TinkerPop types. By default, TinkerPop types will have the namespace "g" (or "gx" for "extended" types). -Core -~~~~ +=== Core -Class -^^^^^ +==== Class [source,json] ---- @@ -1526,8 +1488,7 @@ Class } ---- -Date -^^^^ +==== Date [source,json] ---- @@ -1537,8 +1498,7 @@ Date } ---- -Double -^^^^^^ +==== Double [source,json] ---- @@ -1548,8 +1508,7 @@ Double } ---- -Float -^^^^^ +==== Float [source,json] ---- @@ -1559,8 +1518,7 @@ Float } ---- -Integer -^^^^^^^ +==== Integer [source,json] ---- @@ -1570,8 +1528,7 @@ Integer } ---- -Long -^^^^ +==== Long [source,json] ---- @@ -1581,8 +1538,7 @@ Long } ---- -Timestamp -^^^^^^^^^ +==== Timestamp [source,json] ---- @@ -1592,8 +1548,7 @@ Timestamp } ---- -UUID -^^^^ +==== UUID [source,json] ---- @@ -1604,11 +1559,9 @@ UUID ---- -Graph Structure -~~~~~~~~~~~~~~~ +=== Graph Structure -Edge -^^^^ +==== Edge [source,json] ---- @@ -1646,8 +1599,7 @@ Edge } ---- -Path -^^^^ +==== Path [source,json] ---- @@ -1687,8 +1639,7 @@ Path } ---- -Property -^^^^^^^^ +==== Property [source,json] ---- @@ -1704,8 +1655,7 @@ Property } ---- -StarGraph -^^^^^^^^^ +==== StarGraph [source,json] ---- @@ -1852,8 +1802,7 @@ StarGraph } ---- -TinkerGraph -^^^^^^^^^^^ +==== TinkerGraph `TinkerGraph` has a custom serializer that is registered as part of the `TinkerIoRegistry`. @@ -2690,8 +2639,7 @@ TinkerGraph } ---- -Tree -^^^^ +==== Tree [source,json] ---- @@ -3305,8 +3253,7 @@ Tree } ---- -Vertex -^^^^^^ +==== Vertex [source,json] ---- @@ -3412,8 +3359,7 @@ Vertex } ---- -VertexProperty -^^^^^^^^^^^^^^ +==== VertexProperty [source,json] ---- @@ -3431,11 +3377,9 @@ VertexProperty ---- -Graph Process -~~~~~~~~~~~~~ +=== Graph Process -Barrier -^^^^^^^ +==== Barrier [source,json] ---- @@ -3445,8 +3389,7 @@ Barrier } ---- -Binding -^^^^^^^ +==== Binding A "Binding" refers to a `Bytecode.Binding`. @@ -3464,8 +3407,7 @@ A "Binding" refers to a `Bytecode.Binding`. } ---- -Bytecode -^^^^^^^^ +==== Bytecode The following `Bytecode` example represents the traversal of `g.V().hasLabel('person').out().in().tree()`. Obviously the serialized `Bytecode` woudl be quite different for the endless variations of commands that could be used together in the Gremlin language. @@ -3488,8 +3430,7 @@ The following `Bytecode` example represents the traversal of `g.V().hasLabel('pe } ---- -Cardinality -^^^^^^^^^^^ +==== Cardinality [source,json] ---- @@ -3499,8 +3440,7 @@ Cardinality } ---- -Column -^^^^^^ +==== Column [source,json] ---- @@ -3510,8 +3450,7 @@ Column } ---- -Direction -^^^^^^^^^ +==== Direction [source,json] ---- @@ -3521,8 +3460,7 @@ Direction } ---- -Operator -^^^^^^^^ +==== Operator [source,json] ---- @@ -3532,8 +3470,7 @@ Operator } ---- -Order -^^^^^ +==== Order [source,json] ---- @@ -3543,8 +3480,7 @@ Order } ---- -Pop -^^^ +==== Pop [source,json] ---- @@ -3554,8 +3490,7 @@ Pop } ---- -Lambda -^^^^^^ +==== Lambda [source,json] ---- @@ -3569,8 +3504,7 @@ Lambda } ---- -Metrics -^^^^^^^ +==== Metrics [source,json] ---- @@ -3630,8 +3564,7 @@ Metrics } ---- -P -^ +==== P [source,json] ---- @@ -3647,8 +3580,7 @@ P } ---- -P and -^^^^^ +==== P and [source,json] ---- @@ -3679,8 +3611,7 @@ P and } ---- -P or -^^^^ +==== P or [source,json] ---- @@ -3717,8 +3648,7 @@ P or } ---- -Scope -^^^^^ +==== Scope [source,json] ---- @@ -3728,8 +3658,7 @@ Scope } ---- -T -^ +==== T [source,json] ---- @@ -3739,8 +3668,7 @@ T } ---- -TraversalMetrics -^^^^^^^^^^^^^^^^ +==== TraversalMetrics [source,json] ---- @@ -3860,8 +3788,7 @@ TraversalMetrics } ---- -Traverser -^^^^^^^^^ +==== Traverser [source,json] ---- @@ -3977,11 +3904,9 @@ Traverser ---- -RequestMessage -~~~~~~~~~~~~~~ +=== RequestMessage -Authentication Response -^^^^^^^^^^^^^^^^^^^^^^^ +==== Authentication Response The following `RequestMessage` is an example of the response that should be made to a SASL-based authentication challenge. @@ -4001,8 +3926,7 @@ The following `RequestMessage` is an example of the response that should be made } ---- -Session Eval -^^^^^^^^^^^^ +==== Session Eval The following `RequestMessage` is an example of a simple session request for a script evaluation with parameters. @@ -4032,8 +3956,7 @@ The following `RequestMessage` is an example of a simple session request for a s } ---- -Session Eval -^^^^^^^^^^^^ +==== Session Eval The following `RequestMessage` is an example of a session request for a script evaluation with an alias that binds the `TraversalSource` of "g" to "social". @@ -4066,8 +3989,7 @@ The following `RequestMessage` is an example of a session request for a script e } ---- -Session Close -^^^^^^^^^^^^^ +==== Session Close The following `RequestMessage` is an example of a request to close a session. @@ -4089,8 +4011,7 @@ The following `RequestMessage` is an example of a request to close a session. } ---- -Sessionless Eval -^^^^^^^^^^^^^^^^ +==== Sessionless Eval The following `RequestMessage` is an example of a simple sessionless request for a script evaluation with parameters. @@ -4116,8 +4037,7 @@ The following `RequestMessage` is an example of a simple sessionless request for } ---- -Sessionless Eval -^^^^^^^^^^^^^^^^ +==== Sessionless Eval The following `RequestMessage` is an example of a sessionless request for a script evaluation with an alias that binds the `TraversalSource` of "g" to "social". @@ -4146,11 +4066,9 @@ The following `RequestMessage` is an example of a sessionless request for a scri } ---- -ResponseMessage -~~~~~~~~~~~~~~~ +=== ResponseMessage -Authentication Challenge -^^^^^^^^^^^^^^^^^^^^^^^^ +==== Authentication Challenge When authentication is enabled, an initial request to the server will result in an authentication challenge. The typical response message will appear as follows, but handling it could be different dependending on the SASL implementation (e.g. multiple challenges maybe requested in some cases, but not in the default provided by Gremlin Server). @@ -4170,8 +4088,7 @@ When authentication is enabled, an initial request to the server will result in } ---- -Standard Result -^^^^^^^^^^^^^^^ +==== Standard Result The following `ResponseMessage` is a typical example of the typical successful response Gremlin Server will return when returning results from a script. @@ -4291,8 +4208,7 @@ The following `ResponseMessage` is a typical example of the typical successful r ---- -Extended -~~~~~~~~ +=== Extended Note that the "extended" types require the addition of the separate `GraphSONXModuleV2d0` module as follows: @@ -4304,8 +4220,7 @@ mapper = GraphSONMapper.build(). version(GraphSONVersion.V2_0).create().createMapper() ---- -BigDecimal -^^^^^^^^^^ +==== BigDecimal [source,json] ---- @@ -4315,8 +4230,7 @@ BigDecimal } ---- -BigInteger -^^^^^^^^^^ +==== BigInteger [source,json] ---- @@ -4326,8 +4240,7 @@ BigInteger } ---- -Byte -^^^^ +==== Byte [source,json] ---- @@ -4337,8 +4250,7 @@ Byte } ---- -ByteBuffer -^^^^^^^^^^ +==== ByteBuffer [source,json] ---- @@ -4348,8 +4260,7 @@ ByteBuffer } ---- -Char -^^^^ +==== Char [source,json] ---- @@ -4359,8 +4270,7 @@ Char } ---- -Duration -^^^^^^^^ +==== Duration The following example is a `Duration` of five days. @@ -4372,8 +4282,7 @@ The following example is a `Duration` of five days. } ---- -InetAddress -^^^^^^^^^^^ +==== InetAddress [source,json] ---- @@ -4383,8 +4292,7 @@ InetAddress } ---- -Instant -^^^^^^^ +==== Instant [source,json] ---- @@ -4394,8 +4302,7 @@ Instant } ---- -LocalDate -^^^^^^^^^ +==== LocalDate [source,json] ---- @@ -4405,8 +4312,7 @@ LocalDate } ---- -LocalDateTime -^^^^^^^^^^^^^ +==== LocalDateTime [source,json] ---- @@ -4416,8 +4322,7 @@ LocalDateTime } ---- -LocalTime -^^^^^^^^^ +==== LocalTime [source,json] ---- @@ -4427,8 +4332,7 @@ LocalTime } ---- -MonthDay -^^^^^^^^ +==== MonthDay [source,json] ---- @@ -4438,8 +4342,7 @@ MonthDay } ---- -OffsetDateTime -^^^^^^^^^^^^^^ +==== OffsetDateTime [source,json] ---- @@ -4449,8 +4352,7 @@ OffsetDateTime } ---- -OffsetTime -^^^^^^^^^^ +==== OffsetTime [source,json] ---- @@ -4460,8 +4362,7 @@ OffsetTime } ---- -Period -^^^^^^ +==== Period The following example is a `Period` of one year, six months and fifteen days. @@ -4473,8 +4374,7 @@ The following example is a `Period` of one year, six months and fifteen days. } ---- -Short -^^^^^ +==== Short [source,json] ---- @@ -4484,8 +4384,7 @@ Short } ---- -Year -^^^^ +==== Year The following example is of the `Year` "2016". @@ -4497,8 +4396,7 @@ The following example is of the `Year` "2016". } ---- -YearMonth -^^^^^^^^^ +==== YearMonth The following example is a `YearMonth` of "June 2016" @@ -4510,8 +4408,7 @@ The following example is a `YearMonth` of "June 2016" } ---- -ZonedDateTime -^^^^^^^^^^^^^ +==== ZonedDateTime [source,json] ---- @@ -4521,8 +4418,7 @@ ZonedDateTime } ---- -ZoneOffset -^^^^^^^^^^ +==== ZoneOffset The following example is a `ZoneOffset` of three hours, six minutes, and nine seconds. http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/cff12774/docs/src/dev/io/gryo.asciidoc ---------------------------------------------------------------------- diff --git a/docs/src/dev/io/gryo.asciidoc b/docs/src/dev/io/gryo.asciidoc index 61afdb0..775c9ac 100644 --- a/docs/src/dev/io/gryo.asciidoc +++ b/docs/src/dev/io/gryo.asciidoc @@ -15,8 +15,7 @@ See the License for the specific language governing permissions and limitations under the License. //// [[gryo]] -Gryo -==== += Gryo image:gremlin-kryo.png[width=400,float=left] Gryo uses the popular link:https://github.com/EsotericSoftware/kryo[Kryo] library to handle binary serialization for the JVM. There currently aren't any Kryo implementations in other languages @@ -60,4 +59,4 @@ to be compatible. Calls to `addCustom` will be applied first, prior to calls to `addCustom`). It is possible to disable registration by setting `registrationRequired` on the `GryoMapper.Builder` to `false`, but -Gryo is less efficient with this feature is turned off. \ No newline at end of file +Gryo is less efficient with this feature is turned off. http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/cff12774/docs/src/dev/io/index.asciidoc ---------------------------------------------------------------------- diff --git a/docs/src/dev/io/index.asciidoc b/docs/src/dev/io/index.asciidoc index 9eaf02a..f2f4141 100644 --- a/docs/src/dev/io/index.asciidoc +++ b/docs/src/dev/io/index.asciidoc @@ -20,8 +20,7 @@ image::apache-tinkerpop-logo.png[width=500,link="http://tinkerpop.apache.org"] :toc-position: left -IO Reference -============ += IO Reference image:gremlin-io2.png[width=300] @@ -34,4 +33,4 @@ include::graphml.asciidoc[] include::graphson.asciidoc[] -include::gryo.asciidoc[] \ No newline at end of file +include::gryo.asciidoc[]
