You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tinkerpop.apache.org by dk...@apache.org on 2017/09/26 13:25:30 UTC
[3/3] tinkerpop git commit: Merge branch 'asciidoc-header' into
asciidoc-header-master
Merge branch 'asciidoc-header' into asciidoc-header-master
Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo
Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/a297b0dd
Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/a297b0dd
Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/a297b0dd
Branch: refs/heads/asciidoc-header-master
Commit: a297b0dd94e6c1f9d2d9822eb09293f2ccff8815
Parents: be8a90f cff1277
Author: Daniel Kuppitz <da...@hotmail.com>
Authored: Tue Sep 26 06:25:06 2017 -0700
Committer: Daniel Kuppitz <da...@hotmail.com>
Committed: Tue Sep 26 06:25:06 2017 -0700
----------------------------------------------------------------------
CHANGELOG.asciidoc | 217 +++------
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 | 60 +--
docs/src/dev/developer/index.asciidoc | 6 +-
docs/src/dev/developer/meetings.asciidoc | 11 +-
docs/src/dev/developer/release.asciidoc | 33 +-
docs/src/dev/future/index.asciidoc | 14 +-
docs/src/dev/io/graphml.asciidoc | 5 +-
docs/src/dev/io/graphson.asciidoc | 479 +++++++------------
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 | 192 +++-----
docs/src/reference/gremlin-variants.asciidoc | 56 +--
.../reference/implementations-giraph.asciidoc | 8 +-
.../implementations-hadoop-end.asciidoc | 30 +-
.../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 | 39 +-
docs/src/reference/the-graphcomputer.asciidoc | 33 +-
docs/src/reference/the-traversal.asciidoc | 270 ++++-------
.../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 | 378 +++++----------
docs/src/upgrade/release-3.3.x.asciidoc | 108 ++---
.../archetype-resources/README.asciidoc | 11 +-
.../archetype-resources/README.asciidoc | 11 +-
.../archetype-resources/README.asciidoc | 11 +-
gremlin-server/src/test/scripts/README.asciidoc | 2 +-
61 files changed, 948 insertions(+), 1858 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/a297b0dd/CHANGELOG.asciidoc
----------------------------------------------------------------------
diff --cc CHANGELOG.asciidoc
index 6002694,09f3543..93c2d53
--- a/CHANGELOG.asciidoc
+++ b/CHANGELOG.asciidoc
@@@ -14,233 -14,9 +14,230 @@@ WITHOUT WARRANTIES OR CONDITIONS OF AN
See the License for the specific language governing permissions and
limitations under the License.
////
- TinkerPop3 CHANGELOG
- ====================
+ = TinkerPop3 CHANGELOG
- TinkerPop 3.3.0 (Gremlin Symphony #40 in G Minor)
- -------------------------------------------------
++<<<<<<< HEAD
++== TinkerPop 3.3.0 (Gremlin Symphony #40 in G Minor)
+
+image::https://raw.githubusercontent.com/apache/tinkerpop/master/docs/static/images/gremlin-mozart.png[width=185]
+
+[[release-3-3-1]]
- TinkerPop 3.3.1 (Release Date: NOT OFFICIALLY RELEASED YET)
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
++=== TinkerPop 3.3.1 (Release Date: NOT OFFICIALLY RELEASED YET)
+
+This release also includes changes from <<release-3-2-7, 3.2.7>>.
+
+* `PageRankVertexProgram` supports `maxIterations` but will break out early if epsilon-based convergence occurs.
+* Added support for epsilon-based convergence in `PageRankVertexProgram`.
+* Fixed two major bugs in how PageRank was being calculated in `PageRankVertexProgram`.
+* Added `Io.requiresVersion(Object)` to allow graph providers a way to check the `Io` type and version being constructed.
+* Defaulted `IoCore.gryo()` and `IoCore.graphson()` to both use their 3.0 formats which means that `Graph.io()` will use those by default.
+* Bumped Neo4j 3.2.3
+
+
+[[release-3-3-0]]
- TinkerPop 3.3.0 (Release Date: August 21, 2017)
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
++=== TinkerPop 3.3.0 (Release Date: August 21, 2017)
+
+This release also includes changes from <<release-3-2-6, 3.2.6>>.
+
+* Removed previously deprecated `ScriptElementFactory`.
+* Added `GraphTraversalSource.addE(String)` in support of `g.addE().from().to()`.
+* Added support for `to(Vertex)` and `from(Vertex)` as a shorthand for `to(V(a))` and `from(V(b))`.
+* Bumped to support Spark 2.2.0.
+* Detected if type checking was required in `GremlinGroovyScriptEngine` and disabled related infrastructure if not.
+* Removed previously deprecated `GraphTraversal.selectV3d0()` step.
+* Removed previously deprecated `DetachedEdge(Object,String,Map,Pair,Pair)` constructor.
+* Removed previously deprecated `Bindings` constructor. It is now a private constructor.
+* Removed previously deprecated `TraversalSource.withBindings()`.
+* Removed previously deprecated `GraphTraversal.sack(BiFunction,String)`.
+* `TraversalMetrics` and `Metrics` Gryo 1.0 formats changed given internal changes to their implementations.
+* Made `TraversalMetrics` safe to write to from multiple threads.
+* Removed previously deprecated `TraversalSideEffects` methods.
+* Removed previously deprecated `finalization.LazyBarrierStrategy` (moved to `optimization.LazyBarrierStrategy`).
+* Removed previously deprecated `Constants` in Hadoop.
+* Removed previously deprecated `VertexComputing.generateComputer(Graph)`.
+* Removed previously deprecated `ConfigurationTraversal`.
+* Established the Gryo 3.0 format.
+* `GryoVersion` now includes a default `ClassResolver` to supply to the `GryoMapper`.
+* `GryoClassResolver` renamed to `GryoClassResolverV1d0` which has an abstract class that for providers to extend in `AbstractGryoClassResolver`.
+* Removed previously deprecated `Order` enums of `keyIncr`, `keyDecr`, `valueIncr`, and `valueDecr.`
+* Removed previously deprecated `GraphTraversal.mapKeys()` step.
+* Removed previously deprecated `GraphTraversal.mapValues()` step.
+* Removed previously deprecated `GraphTraversal#addV(Object...)`.
+* Removed previously deprecated `GraphTraversal#addE(Direction, String, String, Object...)`.
+* Removed previously deprecated `GraphTraversal#addOutE(String, String, Object...)`.
+* Removed previously deprecated `GraphTraversal#addInV(String, String, Object...)`.
+* Removed previously deprecated `GraphTraversal.groupV3d0()` and respective `GroupSideEffectStepV3d0` and `GroupStepV3d0`.
+* Removed previously deprecated `TraversalSource.Builder` class.
+* Removed previously deprecated `ConnectiveP`, `AndP`, `OrP` constructors.
+* Removed previously deprecated `TraversalScriptFunction` class.
+* Removed previously deprecated `TraversalScriptHelper` class.
+* Removed previously deprecated `ScriptEngineCache` class.
+* Removed previously deprecated `CoreImports` class.
+* Removed previously deprecated `GremlinJythonScriptEngine#()` constructor.
+* Removed access to previously deprecated `CoreGremlinPlugin#INSTANCE` field.
+* `gremlin.sh` and `gremln.bat` no longer support the option to pass a script as an argument for execution mode without using the `-i` option.
+* Graphite and Ganglia are no longer packaged with the Gremlin Server distribution.
+* `TransactionException` is no longer a class of `AbstractTransaction` and it extends `RuntimeException`.
+* Included an ellipse on long property names that are truncated.
+* Renamed `RangeByIsCountStrategy` to `CountStrategy`.
+* Added more specific typing to various `__` traversal steps. E.g. `<A,Vertex>out()` is `<Vertex,Vertex>out()`.
+* Updated Docker build scripts to include Python dependencies (NOTE: users should remove any previously generated TinkerPop Docker images).
+* Added "attachment requisite" `VertexProperty.element()` and `Property.element()` data in GraphSON serialization.
+* GraphSON 3.0 is now the default serialization format in TinkerGraph and Gremlin Server.
+* Changed `ServerGremlinExecutor` to not use generics since there really is no flexibility in the kind of `ScheduledExecutorService` that will be used.
+* Removed support for passing a byte array on the `sasl` parameter.
+* Removed previously deprecated `GraphSONMapper$Builder#embedTypes` option.
+* Removed previously deprecated `:remote config timeout max`.
+* Removed previously deprecated `ConnectionPoolSettings.sessionId` and `ConnectionPoolSettings.optionalSessionId()`.
+* Removed previously deprecated `reconnectInitialDelay` setting from the Java driver.
+* Removed previously deprecated `useMapperFromGraph` option.
+* Established the GraphSON 3.0 format with new `g:Map`, `g:List` and `g:Set` types.
+* Removed previously deprecated `Io.Builder#registry(IoRegistry)` method.
+* Removed previously deprecated `GryoMessageSerializerV1d0(GryoMapper)` constructor.
+* Removed previously deprecated `TinkerIoRegistry`.
+* Removed previously deprecated `getInstance()` methods on all TinkerPop classes.
+* Removed previously deprecated `VertexPropertyFeatures.supportsAddProperty()`.
+* Removed previously deprecated TinkerGraph configuration member variables.
+* Removed previously deprecated `Transaction.submit(Function)`.
+* Removed previously deprecated `OpSelectorHandler.errorMeter` and `AbstractEvalOpProcessor.errorMeter` fields.
+* Removed previously deprecated `AbstractEvalOpProcessor.validBindingName` field.
+* Removed previously deprecated `SimpleAuthenticator.CONFIG_CREDENTIALS_LOCATION` field.
+* Removed previously deprecated `IteratorHandler`, `NioGremlinResponseEncoder` and `WsGremlinResponseEncoder` classes.
+* Removed previously deprecated `Session.kill()` and `Session.manualKill()`.
+* Removed previously deprecated `Authenticator.newSaslNegotiator()` and its method implementations in classes that were assignable to that interface.
+* Removed `gremlin-groovy-test`.
+* Removed previously deprecated "G" functions in `gremlin-groovy` (i.e. `GFunction`).
+* Removed references to the old `GremlinPlugin` system that was in `gremlin-groovy` - the revised `GremlinPlugin` system in `gremlin-core` is the only one now in use.
+* `GremlinGroovyScriptEngine` no longer implements the now removed `DependencyManager`.
+* Added `Vertex`, `Edge`, `VertexProperty`, and `Property` serializers to Gremlin-Python and exposed tests that use graph object arguments.
+* `Bytecode.getSourceInstructions()` and `Bytecode.getStepInstructions()` now returns `List<Instruction>` instead of `Iterable<Instruction>`.
+* Added various `TraversalStrategy` registrations with `GryoMapper`.
+* Fixed a naming mistake in Gremlin-Python: `IdentityRemoveStrategy` is now called `IdentityRemovalStrategy`.
+* Added `TranslationStrategy` test infrastructure that verifies `Bytecode` generated from a translation is equal to the original `Bytecode`.
+* Moved `NumberHelper` into the `org.apache.tinkerpop.gremlin.util` package.
+* Added `Pop.mixed` instead of using `null` to represent such semantics.
+* `select()`-step now defaults to using `Pop.last` instead of `Pop.mixed`.
+* Added `gremlin-io-test` module to validate IO formats.
+* `RequestMessage` and `ResponseMessage` are now registered with `GryoMapper` as part of the TinkerPop range of type identifiers.
+* Removed previously deprecated `Console` constructor that took a `String` as an argument from `gremlin-console`.
+* Removed previously deprecated `ConcurrentBindings` from `gremlin-groovy`.
+* Removed previously deprecated `ScriptExecutor` from `gremlin-groovy`.
+* Removed previously deprecated `SandboxExtension` from `gremlin-groovy`.
+* Removed previously deprecated `GremlinGroovyScriptEngine` constructor that took `ImportCustomizerProvider` as an argument from `gremlin-groovy`.
+* Removed previously deprecated `GremlinGroovyScriptEngine#plugins()` from `gremlin-groovy`.
+* Added `OptionalStep` for use with `optional()` to better handle issues associated with branch side-effects.
+* `UnfoldStep` now supports unfolding of arrays.
+* Removed all performance tests that were not part of `gremlin-benchmark`.
+* Removed dependency on `junit-benchmarks` and it's related reference to `h2`.
+* Moved the source for the "home page" into the repository under `/site` so that it easier to accept contributions.
+* Added `UnshadedKryoShimService` as the new default serializer model for `SparkGraphComputer`.
+* `GryoRegistrator` is more efficient than the previous `GryoSerializer` model in `SparkGraphComputer`.
+* Added support for `IoRegistry` custom serialization in Spark/Giraph and provided a general `hadoop-gremlin` test suite.
+* Replaced term `REST` with `HTTP` to remove any confusion as to the design of the API.
+* Moved `gremlin-benchmark` under `gremlin-tools` module.
+* Added `gremlin-tools` and its submodule `gremlin-coverage`.
+* Removed `tryRandomCommit()` from `AbstractGremlinTest`.
+* Changed `gremlin-benchmark` system property for the report location to `benchmarkReportDir` for consistency.
+* Added SysV and systemd init scripts.
+* `GraphTraversal.valueMap(includeTokens,propertyKeys...)` now returns a `Map<Object,E>` since keys could be `T.id` or `T.label`.
+* Added `skip(long)` and `skip((Scope,long)` which call the `range(low,high)` equivalents with -1 as the high.
+* Added Kerberos authentication to `gremlin-server` for websockets and nio transport.
+* Added audit logging of authenticated users and gremlin queries to `gremlin-server`.
+
- Bugs
- ^^^^
++==== Bugs
+
+* TINKERPOP-1211 UnfoldStep should unfold arrays. *(breaking)*
+* TINKERPOP-1426 GryoSerializer should implement Java serialization interface
+* TINKERPOP-1465 Remove deprecated newSaslNegotiator *(breaking)*
+* TINKERPOP-1483 PropertyMapStep returns Map<String,E> but puts non String keys in it!
+* TINKERPOP-1520 Difference between 'has' step generated graphson2.0 in java and python glv implementation
+* TINKERPOP-1533 Storage and IoRegistry
+* TINKERPOP-1597 PathRetractionStrategy messing up certain traversals
+* TINKERPOP-1635 gremlin-python: Duplicate serialization of element property in PropertySerializer
+* TINKERPOP-1658 Graphson2 map keys are serialised as strings
+* TINKERPOP-1716 Traversal strategies are not applied with remote in Gremlin Console
+
- Improvements
- ^^^^^^^^^^^^
++==== Improvements
+
+* TINKERPOP-832 Remove deprecated addV/E/InE/OutE methods *(breaking)*
+* TINKERPOP-833 Remove deprecated GremlinGroovyScriptEngine constructor and plugins() *(breaking)*
+* TINKERPOP-834 Remove deprecated sack() method *(breaking)*
+* TINKERPOP-880 Remove deprecated GroupStepV3d0 and GroupSideEffectStepV3d0 *(breaking)*
+* TINKERPOP-929 Remove Deprecated TinkerGraph public static methods. *(breaking)*
+* TINKERPOP-980 Add a service script or daemon mode in the distribution *(breaking)*
+* TINKERPOP-999 ServerGremlinExecutor construction need not use generics for ExecutorService *(breaking)*
+* TINKERPOP-1004 Make Transaction.commit() failures consistent across implementations. *(breaking)*
+* TINKERPOP-1010 Remove deprecated credentialsDbLocation for SimpleAuthenticator *(breaking)*
+* TINKERPOP-1024 Remove deprecated tryRandomCommit() *(breaking)*
+* TINKERPOP-1028 Remove deprecated ConnectionPoolSettings session settings *(breaking)*
+* TINKERPOP-1040 Remove deprecated SandboxExtension *(breaking)*
+* TINKERPOP-1046 Remove deprecated Gremlin Server handler implementations *(breaking)*
+* TINKERPOP-1049 Remove deprecated error meter member variables in Gremlin Server handlers *(breaking)*
+* TINKERPOP-1094 Remove deprecated VertexPropertyFeatures.FEATURE_ADD_PROPERTY *(breaking)*
+* TINKERPOP-1116 Some anonymous traversal steps can be hard typed. *(breaking)*
+* TINKERPOP-1130 Each release should store Kryo/GraphSON/GraphML versions to ensure future compatibility *(breaking)*
+* TINKERPOP-1142 Remove deprecated valueIncr, valueDecr, keyIncr, keyDecr. *(breaking)*
+* TINKERPOP-1169 Remove deprecated TraversalScriptFunction and TraversalScriptHelper *(breaking)*
+* TINKERPOP-1170 Remove deprecated ConfigurationTraversal. *(breaking)*
+* TINKERPOP-1171 Remove deprecated TraversalSource.Builder *(breaking)*
+* TINKERPOP-1235 Remove deprecated ProcessPerformanceSuite and TraversalPerformanceTest *(breaking)*
+* TINKERPOP-1275 Remove deprecated max setting for :remote *(breaking)*
+* TINKERPOP-1283 Remove deprecated ScriptExecutor *(breaking)*
+* TINKERPOP-1289 Remove deprecated ConnectiveP, AndP, and OrP constructors. *(breaking)*
+* TINKERPOP-1291 Remove deprecated mapValues and mapKeys methods *(breaking)*
+* TINKERPOP-1313 Rename RangeByIsCountStrategy *(breaking)*
+* TINKERPOP-1316 Remove deprecated constructor from GryoMessageSerializers *(breaking)*
+* TINKERPOP-1327 Bring GryoRegistrator to the forefront and deprecate GryoSerializer *(breaking)*
+* TINKERPOP-1363 Cleanup Docker build script for next major release *(breaking)*
+* TINKERPOP-1369 Replace REST API with HTTP API
+* TINKERPOP-1389 Support Spark 2.0.0
+* TINKERPOP-1399 NumberHelper needs to go into util and have a private constructor *(breaking)*
+* TINKERPOP-1404 Path/label optimization
+* TINKERPOP-1408 Remove Deprecated Io.Builder.registry() *(breaking)*
+* TINKERPOP-1414 Change default GraphSON version to 3.0 *(breaking)*
+* TINKERPOP-1420 Remove deprecated ConcurrentBindings in gremlin-groovy *(breaking)*
+* TINKERPOP-1421 Remove deprecated ControlOps *(breaking)*
+* TINKERPOP-1427 GraphSON 3.0 needs collection types and consistent number typing.
+* TINKERPOP-1443 Use an API checker during build
+* TINKERPOP-1445 Large nested VertexProperties and Properties do not get printed well
+* TINKERPOP-1454 Create Serializers for Graph objects in Gremlin-Python
+* TINKERPOP-1481 Remove deprecated reconnectInitialDelay in Java driver *(breaking)*
+* TINKERPOP-1485 Move source for TinkerPop site to source code repo
+* TINKERPOP-1506 Optional/Coalesce should not allow sideEffect traversals.
+* TINKERPOP-1514 Restructure for gremlin-tools module *(breaking)*
+* TINKERPOP-1524 Bytecode.getXXXInstructions should return a List, not Iterable.
+* TINKERPOP-1526 Remove deprecated Session kill() overloads *(breaking)*
+* TINKERPOP-1536 Include GLVs in Docker build
+* TINKERPOP-1541 Select should default to Pop.last semantics *(breaking)*
+* TINKERPOP-1549 Implement skip()
+* TINKERPOP-1550 Make Graphite and Ganglia optional dependencies
+* TINKERPOP-1563 Remove deprecated getInstance() methods *(breaking)*
+* TINKERPOP-1565 Setup GraphSON 3.0
+* TINKERPOP-1566 Kerberos authentication for gremlin-server
+* TINKERPOP-1574 Get rid of untyped GraphSON in 3.0
+* TINKERPOP-1603 Remove support for SASL byte array in protocol *(breaking)*
+* TINKERPOP-1612 Remove gremlin-groovy-test module *(breaking)*
+* TINKERPOP-1621 Remove deprecated GremlnPlugin and related infrastructure *(breaking)*
+* TINKERPOP-1622 Remove deprecated G functions in gremlin-groovy *(breaking)*
+* TINKERPOP-1651 Remove deprecated gremlin.sh init syntax *(breaking)*
+* TINKERPOP-1686 Make TraversalMetrics thread safe *(breaking)*
+* TINKERPOP-1698 Gryo 3.0
+* TINKERPOP-1699 Remove deprecated userMapperFromGraph *(breaking)*
+* TINKERPOP-1700 Remove deprecated embedTypes option
+* TINKERPOP-1706 Remove deprecated ScriptEngineCache and related dead code *(breaking)*
+* TINKERPOP-1715 Bump to Spark 2.2
+* TINKERPOP-1719 Remove deprecated Traversal related code *(breaking)*
+* TINKERPOP-1720 Remove deprecated Hadoop code *(breaking)*
+* TINKERPOP-1721 Remove deprecated Bindings related code *(breaking)*
+* TINKERPOP-1724 Remove deprecated ScriptElementFactory
+* TINKERPOP-1729 Remove deprecated select steps.
+* TINKERPOP-1740 Add vertex parameter overload to to() and from()
+* TINKERPOP-1747 Streamline inheritance for gremlin-python GraphSON serializer classes
+
- TinkerPop 3.2.0 (Nine Inch Gremlins)
- ------------------------------------
++== TinkerPop 3.2.0 (Nine Inch Gremlins)
++=======
+ == TinkerPop 3.2.0 (Nine Inch Gremlins)
++>>>>>>> asciidoc-header
image::https://raw.githubusercontent.com/apache/tinkerpop/master/docs/static/images/nine-inch-gremlins.png[width=185]
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/a297b0dd/docs/src/dev/developer/development-environment.asciidoc
----------------------------------------------------------------------
diff --cc docs/src/dev/developer/development-environment.asciidoc
index 8c6d75d,c619e19..f7c9077
--- a/docs/src/dev/developer/development-environment.asciidoc
+++ b/docs/src/dev/developer/development-environment.asciidoc
@@@ -23,11 -22,10 +22,10 @@@ this complexity, it remains relatively
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
+and link:https://maven.apache.org/download.cgi[Maven 3.2.5+]. Maven is used as the common build system, which even
controls the builds of non-JVM link:http://tinkerpop.apache.org/docs/current/tutorials/gremlin-language-variants/[GLVs]
such as `gremlin-python`. Java and Maven are described as a "minimum" for a development environment, because they
will only build JVM portions of TinkerPop and many integration tests will not fire with this simple setup. It is
@@@ -205,17 -198,11 +198,16 @@@ mvn -Dmaven.javadoc.skip=true --project
* Integration Tests: `mvn verify -DskipIntegrationTests=false`
** Execute with the `-DincludeNeo4j` option to include transactional tests.
** Execute with the `-DuseEpoll` option to try to use Netty native transport (works on Linux, but will fallback to Java NIO on other OS).
-* Performance Tests: `mvn verify -DskipPerformanceTests=false`
* Benchmarks: `mvn verify -DskipBenchmarks=false`
+** Reports are generated to the console and to `gremlin-tools/gremlin-benchmark/target/reports/benchmark`.
+* Test coverage report: `mvn clean install -Dcoverage` - note that the `install` is necessary because report aggregation is bound to that part of the lifecycle.
+** Reports are generated to `gremlin-tools/gremlin-coverage/target/site`.
+* `cd site`
+** Generate web site locally: `bin/generate-home.sh`
+** Publish web site: `bin/publish-home.sh <username>`
[[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
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/a297b0dd/docs/src/dev/developer/for-committers.asciidoc
----------------------------------------------------------------------
diff --cc docs/src/dev/developer/for-committers.asciidoc
index 980d7b4,c62f1da..27fd06a
--- a/docs/src/dev/developer/for-committers.asciidoc
+++ b/docs/src/dev/developer/for-committers.asciidoc
@@@ -439,24 -422,8 +421,22 @@@ uploaded to the server and should prese
Please see the <<building-testing,Building and Testing>> section for more information on how to generate the
documentation.
+[[site]]
- Site
- ----
++== Site
+
+The content for the TinkerPop home page and related pages that make up the web site at link://tinkerpop.apache.org[tinkerpop.apache.org]
+is stored in the git repository under `/docs/site`. In this way, it becomes easier for the community to provide content
+presented there, because the content can be accepted via the standard workflow of a pull request. To generate the site
+for local viewing, run `bin/generate-home.sh`, which will build the site in `target/site/`. PMC members can officially
+publish the site with `bin/publish-home.sh <username>`.
+
+"Publishing" does not publish documentation (e.g. reference docs, javadocs, etc) and only publishes what is generated
+from the content in `/docs/site`. Publishing the site can be performed out of band with the release cycle and is no
+way tied to a version. The `master` branch should always be considered the "current" web site and publishing should
+only happen from that branch.
+
[[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/a297b0dd/docs/src/dev/developer/release.asciidoc
----------------------------------------------------------------------
diff --cc docs/src/dev/developer/release.asciidoc
index e4e8967,dac28b3..1e33001
--- a/docs/src/dev/developer/release.asciidoc
+++ b/docs/src/dev/developer/release.asciidoc
@@@ -235,11 -222,10 +229,10 @@@ for generating javadoc and without tha
. Submit for `[VOTE]` at `dev@tinkerpop.apache.org` (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]
+. Deploy the GLVs
.. This build will likely occur from the tag for the release, so be sure to checkout the tag first before executing this step.
.. `mvn clean install -DskipTests -Dnuget`
.. `mvn deploy -pl gremlin-python -DskipTests -Dpypi`
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/a297b0dd/docs/src/dev/future/index.asciidoc
----------------------------------------------------------------------
diff --cc docs/src/dev/future/index.asciidoc
index 0bb7ca4,0000000..63900e8
mode 100644,000000..100644
--- a/docs/src/dev/future/index.asciidoc
+++ b/docs/src/dev/future/index.asciidoc
@@@ -1,124 -1,0 +1,120 @@@
+////
+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.
+////
+image::apache-tinkerpop-logo.png[width=500,link="http://tinkerpop.apache.org"]
+
+*4.0.0*
+
+:toc-position: left
+
- TinkerPop 4.x Design Ideas
- ==========================
++= TinkerPop 4.x Design Ideas
+
+TinkerPop 4.x is not a version considered on the immediate horizon, but there are often points in the day to day
+development of TinkerPop 3.x where there are changes of importance, novelty and usefulness that are so big that they
+could only be implemented under a major new version. This document is meant to track these concepts as they develop,
+so that at some point in the future they can be referenced in a single place.
+
+There is no particular layout or style to this document. Simple bullet points, open questions posed as single
+sentences, or fully structured document headers and content are all acceptable. The main point is to capture ideas
+for future consideration when 4.x becomes the agenda of the day for The TinkerPop.
+
+image:tp4-think.png[]
+
- The Main Features
- -----------------
++== The Main Features
+
+TinkerPop4 should focus on the most successful aspects of TinkerPop3 and it should avoid the traps realized in TinkerPop3.
+These items include:
+
+* The concept of Gremlin as both a virtual machine and language.
+** A standard bytecode specification should be provided.
+** A standard machine architecture should be provided.
+* The concept of Gremlin language variants.
+** It should be easy to create Gremlin variants in every major programming language.
+** A standard template should be followed for all languages.
+** Apache TinkerPop should provide variants in all major programming languges.
+* The concept of `Traversal` as the sole means of interacting with the graph.
+** The role of Blueprints should be significantly reduced.
+** The role of Gremlin should be significantly increased.
+
+
- Hiding Blueprints
- -----------------
++== Hiding Blueprints
+
+Originally from the link:https://lists.apache.org/thread.html/b4d80072ad36849b4e9cd3308f87115660574e3e7a4abb7ee68e959b@%3Cdev.tinkerpop.apache.org%3E[mailing list]:
+
+Throughout our documentation we show uses of the “Blueprints API” (i.e. Graph/Vertex/Edge/etc. classes & methods) as
+well as the use of the Traversal API (i.e. Gremlin).
+
+Enabling users to have two ways of interacting with the graph system has its problems:
+
+1. The DetachedXXX problem — how much data should a returned vertex/edge/etc. have associated with it?
+2. `graph.addVertex()` and `g.addV()` — which should I use? The first is faster but is not recommended.
+3. `SubgraphStrategy` leaking — I get subgraphs with Gremlin, but can then directly interact with the vertex objects to see more than I should.
+4. `VertexProgram` model — I write traversals with Traversal API, but then develop VertexPrograms with the Blueprints API. That’s weird.
+5. GremlinServer returning fat objects — Serializers are created property-rich vertices and edges. The awkward HaltedTraversalStrategy solution.
+6. … various permutations of these source problems.
+
+In TinkerPop4 the solution might be as follows:
+
+There should be two “Graph APIs.”
+
+1. Provider Graph API: This is the current Blueprints API with `Graph.addVertex()`, `Vertex.edges()`, `Edge.inVertex()`, etc.
+2. User Graph API: This is a ReferenceXXX API.
+
+The first API is well known, but the second bears further discussion. `ReferenceGraph` is simply a reference/dummy/proxy
+to the provider Graph API. `ReferenceGraph` has the following API:
+
+* `ReferenceGraph.open()`
+* `ReferenceGraph.close()`
+* `ReferenceGraph.tx()` // assuming we like the current transaction model (??)
+* `ReferenceGraph.traversal()`
+
+That is it. What does this entail? Assume the following traversal:
+
+[source,java]
+----
+g = ReferenceGraph.open(config).traversal()
+g.V(1).out(‘knows’)
+----
+
+`ReferenceGraph` is almost like a `RemoteGraph` (`RemoteStrategy`) in that it makes a connection (remote or inter-JVM)
+to the provider Graph API. When `g.V(1).out(‘knows’)` executes, it is really sending the bytecode to the provider Graph
+for execution (as specified by the config of `ReferenceGraph.open()`). Thus, once it hits the provider's graph,
+`ProviderVertex`, `ProviderEdge`, etc. are the objects being processed. However, what the traversal’s `Iterator<Vertex>`
+returns is `ReferenceVertex`! That is, it never returns `ProviderVertex`. In this way, regardless if the user is
+going “over the wire” or within the same JVM or against a different provider’s graph database or from
+Gremlin-Python/C#/etc., all the vertices are simply ‘reference vertices’ (id + label). This makes it so that users
+never interact with the graph element objects themselves directly. They can ONLY interact with the graph via
+traversals! At most they can `ReferenceVertex.id()` and `ReferenceVertex.label()`. Thats it, — no mutations, not
+walking edges, nada! And moreover, since ReferenceXXX has enough information to re-attach to the source graph, they
+can always do the following to get more information:
+
+[source,java]
+----
+v = g.V(1).out(‘knows’).next()
+g.V(v).values(‘name’)
+----
+
+This split into two Graph APIs will enables us to make a hard boundary between what the provider (vendor) needs to
+implement and what the user (developer) gets to access.
+
- Comments
- ~~~~~~~~
++=== Comments
+
+There is a question mark next to `ReferenceGraph.tx()` - Transactions are a bit of an open question for future versions
+of TinkerPop and likely deserve their own section in this document. The model used for last three version of TinkerPop
+now is rooted in the Neo4j approach to transactions and is often more trouble than it should be for us and providers.
+Distributed transactions are a challenge and don't apply to every provider. Transactions are further complicated by
+GLVs. The idea of local subgraphs for mutations and transaction management might be good but that goes against having
- just `ReferenceGraph`.
++just `ReferenceGraph`.