You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tinkerpop.apache.org by sp...@apache.org on 2016/08/31 17:33:41 UTC

[01/11] tinkerpop git commit: Use pytest-runner to properly build deps on test invocation

Repository: tinkerpop
Updated Branches:
  refs/heads/master 6bf9fbd52 -> c16be11d0


Use pytest-runner to properly build deps on test invocation


Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo
Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/56737a13
Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/56737a13
Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/56737a13

Branch: refs/heads/master
Commit: 56737a134fc08e56848eed8adc61201bdd0802df
Parents: 0462430
Author: davebshow <da...@gmail.com>
Authored: Mon Aug 29 15:27:49 2016 -0400
Committer: davebshow <da...@gmail.com>
Committed: Mon Aug 29 15:27:49 2016 -0400

----------------------------------------------------------------------
 gremlin-python/pom.xml                   | 7 +++----
 gremlin-python/src/main/jython/setup.cfg | 7 +++++--
 gremlin-python/src/main/jython/setup.py  | 8 +++++---
 3 files changed, 13 insertions(+), 9 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/56737a13/gremlin-python/pom.xml
----------------------------------------------------------------------
diff --git a/gremlin-python/pom.xml b/gremlin-python/pom.xml
index c830790..deaf17e 100644
--- a/gremlin-python/pom.xml
+++ b/gremlin-python/pom.xml
@@ -323,9 +323,8 @@
                                 <configuration>
                                     <outputDirectory>${project.build.testOutputDirectory}</outputDirectory>
                                     <libraries>
-                                        <param>aenum</param>
-                                        <param>requests</param>
-                                        <param>tornado</param>
+                                        <param>aenum==1.4.5</param>
+                                        <param>tornado==4.4.1</param>
                                     </libraries>
                                 </configuration>
                             </execution>
@@ -551,4 +550,4 @@ log.info("Gremlin Server shutdown")
             </build>
         </profile>
     </profiles>
-</project>
\ No newline at end of file
+</project>

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/56737a13/gremlin-python/src/main/jython/setup.cfg
----------------------------------------------------------------------
diff --git a/gremlin-python/src/main/jython/setup.cfg b/gremlin-python/src/main/jython/setup.cfg
index f8bab76..d025b3a 100644
--- a/gremlin-python/src/main/jython/setup.cfg
+++ b/gremlin-python/src/main/jython/setup.cfg
@@ -17,5 +17,8 @@
 [bdist_wheel]
 universal=1
 
-[pytest]
-addopts = --junitxml=../python-reports/TEST-native-python.xml
\ No newline at end of file
+[aliases]
+test=pytest
+
+[tool:pytest]
+addopts = --junitxml=../python-reports/TEST-native-python.xml

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/56737a13/gremlin-python/src/main/jython/setup.py
----------------------------------------------------------------------
diff --git a/gremlin-python/src/main/jython/setup.py b/gremlin-python/src/main/jython/setup.py
index 52e6fe4..7540654 100644
--- a/gremlin-python/src/main/jython/setup.py
+++ b/gremlin-python/src/main/jython/setup.py
@@ -64,12 +64,14 @@ setup(
     long_description=open("README").read(),
     test_suite="tests",
     cmdclass = {'test': PyTest},
+    setup_requires=[
+        'pytest-runner',
+    ],
     tests_require=[
         'pytest'
     ],
     install_requires=[
-        'aenum',
-        'requests',
-        'tornado'
+        'aenum==1.4.5',
+        'tornado==4.4.1'
     ]
 )


[04/11] tinkerpop git commit: Merge branch 'pr-393' into virtualenv

Posted by sp...@apache.org.
Merge branch 'pr-393' into virtualenv


Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo
Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/334470ff
Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/334470ff
Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/334470ff

Branch: refs/heads/master
Commit: 334470ffb07cbb9f105d3c287ac183f123d4c3c6
Parents: d2fc54f d148031
Author: Stephen Mallette <sp...@genoprime.com>
Authored: Tue Aug 30 08:29:39 2016 -0400
Committer: Stephen Mallette <sp...@genoprime.com>
Committed: Tue Aug 30 08:29:39 2016 -0400

----------------------------------------------------------------------
 gremlin-python/pom.xml                   |  7 +++----
 gremlin-python/src/main/jython/setup.cfg |  8 ++++++--
 gremlin-python/src/main/jython/setup.py  | 20 +++++---------------
 3 files changed, 14 insertions(+), 21 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/334470ff/gremlin-python/pom.xml
----------------------------------------------------------------------


[08/11] tinkerpop git commit: Updated dev docs on the build environment CTR

Posted by sp...@apache.org.
Updated dev docs on the build environment CTR


Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo
Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/4752a5d0
Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/4752a5d0
Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/4752a5d0

Branch: refs/heads/master
Commit: 4752a5d05bc45dcbd3ca7b1e5f2819e73e14c600
Parents: d1c1969
Author: Stephen Mallette <sp...@genoprime.com>
Authored: Wed Aug 31 10:32:32 2016 -0400
Committer: Stephen Mallette <sp...@genoprime.com>
Committed: Wed Aug 31 10:32:32 2016 -0400

----------------------------------------------------------------------
 .../developer/development-environment.asciidoc  | 93 ++++++++++++++++++--
 1 file changed, 87 insertions(+), 6 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/4752a5d0/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 0d11d85..d6fc9a7 100644
--- a/docs/src/dev/developer/development-environment.asciidoc
+++ b/docs/src/dev/developer/development-environment.asciidoc
@@ -17,16 +17,96 @@ limitations under the License.
 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
+--------------------
+
+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
+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
+possible to get a clean and successful build with this minimum, but it will not be possible to build non-JVM aspects
+of the project and those will go untested.
+
+To gain the ability to execute all aspects of the TinkerPop build system, other environmental configurations must be
+established. Those prerequisites are defined in the following subsections.
+
+IMPORTANT: For those who intend to offer a contribution, building with a minimal configuration may not be sufficient
+when submitting a pull request. Consider setting up the full environment.
+
+NOTE: For those using Windows, efforts have been made to keep the build OS independent, but, in practice, it is likely
+that TinkerPop's build system will only allow for a minimum build at best.
+
+[[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.
+
+To generate documentation, it is required that link:https://hadoop.apache.org[Hadoop 2.7.x] is running in
+link:https://hadoop.apache.org/docs/r2.7.1/hadoop-project-dist/hadoop-common/SingleCluster.html#Pseudo-Distributed_Operation[pseudo-distributed]
+mode. Be sure to set the `HADOOP_GREMLIN_LIBS` environment variable as described in the
+link:http://tinkerpop.apache.org/docs/current/reference/#hadoop-gremlin[reference documentation]. It is also important
+to set the `CLASSPATH` to point at the directory containing the Hadoop configuration files, like `map-red-site.xml`.
+
+Also note that link:http://www.grymoire.com/Unix/Awk.html[awk] version `4.0.1` is required for documentation generation.
+
+[[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
+Java tests that require Python code will be skipped. Developers should also install link:https://pypi.python.org/pypi/pip[pip]
+and link:https://virtualenv.pypa.io/en/stable/[virtualenv].
+
+[[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]
+in the Apache documentation for instructions on to set up gpg. Keys should be added to KEYS files in both the
+link:https://dist.apache.org/repos/dist/dev/tinkerpop/KEYS[development] and
+link:https://dist.apache.org/repos/dist/release/tinkerpop/KEYS[release] distribution directories.
+
+Uploading to pypi uses link:https://pypi.python.org/pypi/twine[twine] which is automatically installed by the build
+process in maven. Twine refers to `HOME/.pypirc` file for configuration on the pypi deploy environments and username
+and password combinations. The file typically looks like this:
+
+[source,text]
+----
+[distutils]
+index-servers=
+    pypi
+    pypitest
+
+[pypitest]
+repository = https://testpypi.python.org/pypi
+username = <username>
+password =
+
+[pypi]
+repository = https://pypi.python.org/pypi
+username = <username>
+password =
+----
+
+If the `password` is left blank then the deployment process in Maven will prompt for it at deployment time.
+
 [[building-testing]]
 Building and Testing
 --------------------
 
-TinkerPop requires `Java 1.8.0_40+` for standard building and operations. In addition, it optionally requires 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 Java tests that require Python code will be skipped. It will also not be possible to do
-deployments.
+The following commands are a mix of Maven flags and shell scripts that handle different build operations
 
-* Build Project: `mvn clean install`
+* Build project: `mvn clean install`
+* Build a specific module (e.g. `gremlin-python`) within the project: `mvn clean install -pl gremlin-python`
 ** Specify specific tests in a TinkerPop Suite to run with the `GREMLIN_TESTS` environment variable, along with the
 Maven project list argument, e.g.:
 +
@@ -41,7 +121,7 @@ mvn -Dmaven.javadoc.skip=true --projects tinkergraph-gremlin test
 * Regenerate test data (only necessary given changes to IO classes): `mvn clean install -Dio` from `tinkergraph-gremlin` directory
 ** If there are changes to the Gryo format, it may be necessary to generate the Grateful Dead dataset from GraphSON (see `IoDataGenerationTest.shouldWriteGratefulDead`)
 * Check license headers are present: `mvn apache-rat:check`
-* Build AsciiDocs (Hadoop must be running and link:http://www.grymoire.com/Unix/Awk.html[awk] version `4.0.1` is required): `bin/process-docs.sh`
+* Build AsciiDocs (see <<documentation-environment,Documentation Environment>>): `bin/process-docs.sh`
 ** Build AsciiDocs (but don't evaluate code blocks): `bin/process-docs.sh --dryRun`
 ** Build AsciiDocs (but don't evaluate code blocks in specific files): `bin/process-docs.sh --dryRun docs/src/reference/the-graph.asciidoc,docs/src/tutorial/getting-started,...`
 ** Build AsciiDocs (but evaluate code blocks only in specific files): `bin/process-docs.sh --fullRun docs/src/reference/the-graph.asciidoc,docs/src/tutorial/getting-started,...`
@@ -55,6 +135,7 @@ mvn -Dmaven.javadoc.skip=true --projects tinkergraph-gremlin test
 ** 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`
+* Build and execute with native Python tests (see <<python-environment,Python Environment>>: `mvn clean install -DglvPython`
 
 [[docker-integration]]
 Docker Integration


[09/11] tinkerpop git commit: Minor fix to doc formatting

Posted by sp...@apache.org.
Minor fix to doc formatting


Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo
Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/e4d6b618
Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/e4d6b618
Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/e4d6b618

Branch: refs/heads/master
Commit: e4d6b6181dc6641f10d47a553cd0235b738a8c05
Parents: 4752a5d
Author: Stephen Mallette <sp...@genoprime.com>
Authored: Wed Aug 31 10:32:47 2016 -0400
Committer: Stephen Mallette <sp...@genoprime.com>
Committed: Wed Aug 31 10:32:47 2016 -0400

----------------------------------------------------------------------
 docs/src/reference/gremlin-applications.asciidoc | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/e4d6b618/docs/src/reference/gremlin-applications.asciidoc
----------------------------------------------------------------------
diff --git a/docs/src/reference/gremlin-applications.asciidoc b/docs/src/reference/gremlin-applications.asciidoc
index 495aadd..4c01096 100644
--- a/docs/src/reference/gremlin-applications.asciidoc
+++ b/docs/src/reference/gremlin-applications.asciidoc
@@ -192,8 +192,11 @@ Colors can contain a comma-separated combination of 1 each of foreground, backgr
 |=========================================================
 
 Example:
-```:set gremlin.color bg_black,green,bold```
 
+[source,text]
+----
+:set gremlin.color bg_black,green,bold
+----
 
 Dependencies and Plugin Usage
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


[11/11] tinkerpop git commit: Merge remote-tracking branch 'origin/virtualenv'

Posted by sp...@apache.org.
Merge remote-tracking branch 'origin/virtualenv'


Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo
Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/c16be11d
Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/c16be11d
Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/c16be11d

Branch: refs/heads/master
Commit: c16be11d0f19b89d3e628a54769528c4e7c18587
Parents: 6bf9fbd 7be929f
Author: Stephen Mallette <sp...@genoprime.com>
Authored: Wed Aug 31 13:01:53 2016 -0400
Committer: Stephen Mallette <sp...@genoprime.com>
Committed: Wed Aug 31 13:01:53 2016 -0400

----------------------------------------------------------------------
 docs/src/dev/developer/administration.asciidoc  |   5 +-
 .../developer/development-environment.asciidoc  |  93 +++++++-
 .../src/reference/gremlin-applications.asciidoc |   5 +-
 gremlin-python/pom.xml                          | 221 ++++++++++---------
 gremlin-python/src/main/jython/setup.cfg        |   8 +-
 gremlin-python/src/main/jython/setup.py         |  20 +-
 6 files changed, 219 insertions(+), 133 deletions(-)
----------------------------------------------------------------------



[10/11] tinkerpop git commit: Added a note about creating new committer accounts CTR

Posted by sp...@apache.org.
Added a note about creating new committer accounts CTR


Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo
Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/7be929f9
Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/7be929f9
Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/7be929f9

Branch: refs/heads/master
Commit: 7be929f986242ef48bdee4bf17716aac3b348fb2
Parents: e4d6b61
Author: Stephen Mallette <sp...@genoprime.com>
Authored: Wed Aug 31 11:10:56 2016 -0400
Committer: Stephen Mallette <sp...@genoprime.com>
Committed: Wed Aug 31 11:10:56 2016 -0400

----------------------------------------------------------------------
 docs/src/dev/developer/administration.asciidoc | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/7be929f9/docs/src/dev/developer/administration.asciidoc
----------------------------------------------------------------------
diff --git a/docs/src/dev/developer/administration.asciidoc b/docs/src/dev/developer/administration.asciidoc
index 7c1acf8..39fea01 100644
--- a/docs/src/dev/developer/administration.asciidoc
+++ b/docs/src/dev/developer/administration.asciidoc
@@ -79,9 +79,10 @@ established the PMC chair will then need to:
 
 1. Validate that the iCLA is on file either through link:https://svn.apache.org/repos/private/foundation/officers/[svn]
 or through link:http://people.apache.org/committer-index.html[people.apache.org].
-2. Once verified, provide the new committer access to the repository, which is most easily done through
+1. Request that the account be created. The PMC Chair may do this through the link:http://infra.apache.org/[Account Request Form].
+1. Once verified, provide the new committer access to the repository, which is most easily done through
 link:https://whimsy.apache.org/roster/committee/[Whimsy].
-3. Send an announcement email to the developer and user mailing lists with the template below.
+1. Send an announcement email to the developer and user mailing lists with the template below.
 
 [source,text]
 ----


[05/11] tinkerpop git commit: Massive cleanup to gremlin-python pom.xml

Posted by sp...@apache.org.
Massive cleanup to gremlin-python pom.xml

Restructured to use virtualenv in all native python calls.


Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo
Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/24eba0ca
Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/24eba0ca
Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/24eba0ca

Branch: refs/heads/master
Commit: 24eba0ca4d4e767a83ddc23a6b0c22a0504dc985
Parents: 334470f
Author: Stephen Mallette <sp...@genoprime.com>
Authored: Tue Aug 30 12:57:21 2016 -0400
Committer: Stephen Mallette <sp...@genoprime.com>
Committed: Tue Aug 30 12:57:21 2016 -0400

----------------------------------------------------------------------
 gremlin-python/pom.xml | 189 ++++++++++++++++++++++----------------------
 1 file changed, 93 insertions(+), 96 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/24eba0ca/gremlin-python/pom.xml
----------------------------------------------------------------------
diff --git a/gremlin-python/pom.xml b/gremlin-python/pom.xml
index 30bba03..bc41c57 100644
--- a/gremlin-python/pom.xml
+++ b/gremlin-python/pom.xml
@@ -318,49 +318,7 @@
                             </systemPropertyVariables>
                         </configuration>
                     </plugin>
-                    <!-- get a clean copy of the python files for native processing -->
-                    <plugin>
-                        <artifactId>maven-resources-plugin</artifactId>
-                        <executions>
-                            <execution>
-                                <id>copy-py-files-to-target</id>
-                                <phase>process-resources</phase>
-                                <goals>
-                                    <goal>copy-resources</goal>
-                                </goals>
-                                <configuration>
-                                    <outputDirectory>${basedir}/target/python</outputDirectory>
-                                    <resources>
-                                        <resource>
-                                            <directory>${basedir}/src/main/jython</directory>
-                                            <filtering>true</filtering>
-                                        </resource>
-                                    </resources>
-                                </configuration>
-                            </execution>
-                        </executions>
-                    </plugin>
-                    <plugin>
-                        <groupId>org.codehaus.mojo</groupId>
-                        <artifactId>exec-maven-plugin</artifactId>
-                        <version>1.2.1</version>
-                        <executions>
-                            <execution>
-                                <id>build-python</id>
-                                <phase>generate-test-resources</phase>
-                                <goals>
-                                    <goal>exec</goal>
-                                </goals>
-                                <configuration>
-                                    <executable>python</executable>
-                                    <workingDirectory>${basedir}/target/python</workingDirectory>
-                                    <commandlineArgs>setup.py build --build-lib ${project.build.testOutputDirectory}/Lib
-                                    </commandlineArgs>
-                                </configuration>
-                            </execution>
-                        </executions>
-                    </plugin>
-                    <!-- required for the jython tests -->
+                    <!-- required for the jython tests  -->
                     <plugin>
                         <groupId>net.sf.mavenjython</groupId>
                         <artifactId>jython-compile-maven-plugin</artifactId>
@@ -395,7 +353,7 @@
                         <executions>
                             <execution>
                                 <id>create-python-reports-directory</id>
-                                <phase>process-resources</phase>
+                                <phase>initialize</phase>
                                 <goals>
                                     <goal>run</goal>
                                 </goals>
@@ -403,14 +361,101 @@
                                     <tasks>
                                         <delete dir="${build.directory}/python-reports"/>
                                         <mkdir dir="${build.directory}/python-reports"/>
+                                        <delete dir="${build.directory}/python"/>
+                                        <mkdir dir="${project.build.directory}/python/env"/>
+                                        <delete dir="${build.directory}/python-packaged"/>
+                                        <mkdir dir="${project.build.directory}/python-packaged/env"/>
                                     </tasks>
                                 </configuration>
                             </execution>
+                            <!-- copy files in jython directory to target/py and run virtual env to sandbox python.
+                                 there is no need to "activate" the virtualenv because all calls to python occur
+                                 directly from bin/ -->
+                            <execution>
+                                <id>setup-py-env</id>
+                                <phase>process-resources</phase>
+                                <goals>
+                                    <goal>run</goal>
+                                </goals>
+                                <configuration>
+                                    <tasks>
+                                        <!-- seems like we need a few different copies of the same source. all the
+                                             different python/jython stuff doesn't seem to want to share. we use
+                                             /python for basic tests and stuff, /jython for jython compilation with
+                                             the jython plugin, /python-packaged for distribution tasks. some of the
+                                             problem seems to stem from the python lifecycle not binding perfectly well
+                                             to the maven lifecycle (integration tests seems to cause troubles
+                                             specifically) -->
+                                        <copy todir="${project.build.directory}/python">
+                                            <fileset dir="src/main/jython"/>
+                                        </copy>
+                                        <copy todir="${project.build.directory}/python-packaged">
+                                            <fileset dir="src/main/jython"/>
+                                        </copy>
+                                        <exec dir="${project.build.directory}/python" executable="virtualenv"
+                                              failonerror="true">
+                                            <arg value="env"/>
+                                        </exec>
+                                        <exec dir="${project.build.directory}/python-packaged" executable="virtualenv"
+                                              failonerror="true">
+                                            <arg value="env"/>
+                                        </exec>
+                                        <copy todir="${project.build.directory}/jython">
+                                            <fileset dir="src/main/jython"/>
+                                        </copy>
+                                    </tasks>
+                                </configuration>
+                            </execution>
+                            <execution>
+                                <id>native-python-build</id>
+                                <phase>generate-test-resources</phase>
+                                <goals>
+                                    <goal>run</goal>
+                                </goals>
+                                <configuration>
+                                    <skip>${skipTests}</skip>
+                                    <target>
+                                        <exec executable="env/bin/python" dir="${project.build.directory}/python"
+                                              failonerror="true">
+                                            <arg line="setup.py build --build-lib ${project.build.testOutputDirectory}/Lib"/>
+                                        </exec>
+                                    </target>
+                                </configuration>
+                            </execution>
+
+                            <!--
+                            build/package python source distribution and wheel archive. the version is bound to an
+                            environment variable that gets used in setup.py to dynamically construct a module
+                            __version__file
+                             -->
+                            <execution>
+                                <id>package-py</id>
+                                <phase>package</phase>
+                                <goals>
+                                    <goal>run</goal>
+                                </goals>
+                                <configuration>
+                                    <target>
+                                        <exec executable="env/bin/python" dir="${project.build.directory}/python-packaged"
+                                              failonerror="true">
+                                            <env key="VERSION" value="${project.version}"/>
+                                            <arg line="setup.py sdist"/>
+                                        </exec>
+                                        <exec executable="env/bin/python" dir="${project.build.directory}/python-packaged"
+                                              failonerror="true">
+                                            <env key="VERSION" value="${project.version}"/>
+                                            <arg line="setup.py bdist_wheel"/>
+                                        </exec>
+                                    </target>
+                                </configuration>
+                            </execution>
+
                             <!--
                             use pytest to execute native python tests - output of xunit output is configured in setup.cfg.
                             had to use the ant plugin - maven-exec-plugin
                             -->
                             <execution>
+                                <id>native-python-test</id>
                                 <phase>integration-test</phase>
                                 <goals>
                                     <goal>run</goal>
@@ -418,11 +463,9 @@
                                 <configuration>
                                     <skip>${skipTests}</skip>
                                     <target>
-                                        <exec executable="python"
-                                              dir="${basedir}/target/python"
+                                        <exec executable="env/bin/python" dir="${project.build.directory}/python"
                                               failonerror="true">
-                                            <arg value="setup.py"/>
-                                            <arg value="test"/>
+                                            <arg line="setup.py test"/>
                                         </exec>
                                     </target>
                                 </configuration>
@@ -536,52 +579,6 @@ log.info("Gremlin Server shutdown")
                         <groupId>org.apache.maven.plugins</groupId>
                         <artifactId>maven-antrun-plugin</artifactId>
                         <executions>
-                            <!-- copy files in jython directory to target/py and run virtual env to sandbox python -->
-                            <execution>
-                                <id>setup-py-env</id>
-                                <phase>generate-resources</phase>
-                                <goals>
-                                    <goal>run</goal>
-                                </goals>
-                                <configuration>
-                                    <tasks>
-                                        <mkdir dir="${project.build.directory}/py/env"/>
-                                        <copy todir="${project.build.directory}/py">
-                                            <fileset dir="src/main/jython"/>
-                                        </copy>
-                                        <exec dir="${project.build.directory}/py" executable="virtualenv"
-                                              failonerror="true">
-                                            <arg line="env"/>
-                                        </exec>
-                                    </tasks>
-                                </configuration>
-                            </execution>
-                            <!--
-                            build/package python source distribution and wheel archive. the version is bound to an
-                            environment variable that gets used in setup.py to dynamically construct a module
-                            __version__file
-                             -->
-                            <execution>
-                                <id>package-py</id>
-                                <phase>package</phase>
-                                <goals>
-                                    <goal>run</goal>
-                                </goals>
-                                <configuration>
-                                    <tasks>
-                                        <exec dir="${project.build.directory}/py" executable="env/bin/python"
-                                              failonerror="true">
-                                            <env key="VERSION" value="${project.version}"/>
-                                            <arg line="setup.py sdist"/>
-                                        </exec>
-                                        <exec dir="${project.build.directory}/py" executable="env/bin/python"
-                                              failonerror="true">
-                                            <env key="VERSION" value="${project.version}"/>
-                                            <arg line="setup.py bdist_wheel"/>
-                                        </exec>
-                                    </tasks>
-                                </configuration>
-                            </execution>
                             <!-- deploy to pypi. assumes that ~/.pypirc is configured appropriately -->
                             <execution>
                                 <id>deploy-py</id>
@@ -591,11 +588,11 @@ log.info("Gremlin Server shutdown")
                                 </goals>
                                 <configuration>
                                     <tasks>
-                                        <exec dir="${project.build.directory}/py" executable="env/bin/pip"
+                                        <exec dir="${project.build.directory}/python-packaged" executable="env/bin/pip"
                                               failonerror="true">
                                             <arg line="install twine"/>
                                         </exec>
-                                        <exec dir="${project.build.directory}/py" executable="env/bin/twine"
+                                        <exec dir="${project.build.directory}/python-packaged" executable="env/bin/twine"
                                               failonerror="true">
                                             <arg line="upload dist/* -r pypitest"/>
                                         </exec>


[02/11] tinkerpop git commit: remove unneeded custom command

Posted by sp...@apache.org.
remove unneeded custom command


Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo
Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/5c9d9927
Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/5c9d9927
Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/5c9d9927

Branch: refs/heads/master
Commit: 5c9d9927d20c7f56b9a0bc9c5c1ae0fe5a58f4bf
Parents: 56737a1
Author: davebshow <da...@gmail.com>
Authored: Mon Aug 29 15:33:51 2016 -0400
Committer: davebshow <da...@gmail.com>
Committed: Mon Aug 29 15:33:51 2016 -0400

----------------------------------------------------------------------
 gremlin-python/src/main/jython/setup.py | 12 ------------
 1 file changed, 12 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/5c9d9927/gremlin-python/src/main/jython/setup.py
----------------------------------------------------------------------
diff --git a/gremlin-python/src/main/jython/setup.py b/gremlin-python/src/main/jython/setup.py
index 7540654..c37191f 100644
--- a/gremlin-python/src/main/jython/setup.py
+++ b/gremlin-python/src/main/jython/setup.py
@@ -43,17 +43,6 @@ import __version__
 
 version = __version__.version
 
-class PyTest(Command):
-    user_options = []
-    def initialize_options(self):
-        pass
-    def finalize_options(self):
-        pass
-    def run(self):
-        import sys,subprocess
-        errno = subprocess.call([sys.executable, 'runtest.py'])
-        raise SystemExit(errno)
-
 setup(
     name='gremlinpython',
     version=version,
@@ -63,7 +52,6 @@ setup(
     description='Gremlin-Python for Apache TinkerPop',
     long_description=open("README").read(),
     test_suite="tests",
-    cmdclass = {'test': PyTest},
     setup_requires=[
         'pytest-runner',
     ],


[07/11] tinkerpop git commit: More config cleanup for native python build.

Posted by sp...@apache.org.
More config cleanup for native python build.

Force virtualenv to use python2. Clean up a bit around python "deploy" phase.


Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo
Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/d1c19691
Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/d1c19691
Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/d1c19691

Branch: refs/heads/master
Commit: d1c1969153f7e0d3f0db3cf0e8e2325bcbb3d57b
Parents: 70b3489
Author: Stephen Mallette <sp...@genoprime.com>
Authored: Tue Aug 30 16:49:25 2016 -0400
Committer: Stephen Mallette <sp...@genoprime.com>
Committed: Tue Aug 30 16:49:25 2016 -0400

----------------------------------------------------------------------
 gremlin-python/pom.xml | 25 +++++++++++++------------
 1 file changed, 13 insertions(+), 12 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/d1c19691/gremlin-python/pom.xml
----------------------------------------------------------------------
diff --git a/gremlin-python/pom.xml b/gremlin-python/pom.xml
index cbee8ad..d455ec8 100644
--- a/gremlin-python/pom.xml
+++ b/gremlin-python/pom.xml
@@ -359,11 +359,8 @@
                                 </goals>
                                 <configuration>
                                     <tasks>
-                                        <delete dir="${build.directory}/python-reports"/>
-                                        <mkdir dir="${build.directory}/python-reports"/>
-                                        <delete dir="${build.directory}/python"/>
+                                        <mkdir dir="${project.build.directory}/python-reports"/>
                                         <mkdir dir="${project.build.directory}/python/env"/>
-                                        <delete dir="${build.directory}/python-packaged"/>
                                         <mkdir dir="${project.build.directory}/python-packaged/env"/>
                                     </tasks>
                                 </configuration>
@@ -396,7 +393,7 @@
                                         </copy>
                                         <exec dir="${project.build.directory}/python" executable="virtualenv"
                                               failonerror="true">
-                                            <arg value="env"/>
+                                            <arg line="--python=python2 env"/>
                                         </exec>
                                         <exec dir="${project.build.directory}/python" executable="env/bin/pip"
                                               failonerror="true">
@@ -404,7 +401,7 @@
                                         </exec>
                                         <exec dir="${project.build.directory}/python-packaged" executable="virtualenv"
                                               failonerror="true">
-                                            <arg value="env"/>
+                                            <arg line="--python=python2 env"/>
                                         </exec>
                                         <exec dir="${project.build.directory}/python-packaged" executable="env/bin/pip"
                                               failonerror="true">
@@ -515,6 +512,8 @@ import org.apache.tinkerpop.gremlin.server.GremlinServer
 import org.apache.tinkerpop.gremlin.server.Settings
 import org.apache.tinkerpop.gremlin.server.Settings.ScriptEngineSettings
 
+if (${skipTests}) return
+
 log.info("Starting Gremlin Server instances for native testing of gremlin-python")
 def settings = Settings.read("${gremlin.server.dir}/conf/gremlin-server-modern-py.yaml")
 settings.graphs.graph = "${gremlin.server.dir}/conf/tinkergraph-empty.properties"
@@ -555,6 +554,8 @@ log.info("Gremlin Server with authentication started on port 8183")
                                             <![CDATA[
 import org.apache.tinkerpop.gremlin.server.GremlinServer
 
+if (${skipTests}) return
+
 log.info("Tests for native gremlin-python complete - shutting down Gremlin Server")
 project.getContextValue("gremlin.py.server").stop().join()
 project.getContextValue("gremlin.py.server.secure").stop().join()
@@ -570,17 +571,17 @@ log.info("Gremlin Server shutdown")
             </build>
         </profile>
         <!--
-        Provides a way to deploy the gremlinpython GLV to pypi. Requires installation of pip/virtualenv. See the
-        developer docs for more information on how to configure these settings to get this profile to work. The profile
-        largely uses antrun to execute raw pip/twine/python commands against a copy of what's in the jython directory
-        which is copied to target/py.
+        Provides a way to deploy the gremlinpython GLV to pypi. This cannot be part of the standard maven execution
+        because pypi does not have a staging environment like sonatype for releases. As soon as the release is
+        published it is public. In our release workflow, deploy occurs prior to vote on the release and we can't
+        make this stuff public until the vote is over.
         -->
         <profile>
             <id>glv-python-deploy</id>
             <activation>
                 <activeByDefault>false</activeByDefault>
                 <property>
-                    <name>glvPythonDeploy</name>
+                    <name>pypi</name>
                 </property>
             </activation>
             <build>
@@ -604,7 +605,7 @@ log.info("Gremlin Server shutdown")
                                         </exec>
                                         <exec dir="${project.build.directory}/python-packaged" executable="env/bin/twine"
                                               failonerror="true">
-                                            <arg line="upload dist/* -r pypitest"/>
+                                            <arg line="upload dist/* -r pypitest -s"/>
                                         </exec>
                                     </tasks>
                                 </configuration>


[03/11] tinkerpop git commit: add lib/lib64 to norecursedirs in pytest config

Posted by sp...@apache.org.
add lib/lib64 to norecursedirs in pytest config


Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo
Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/d1480314
Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/d1480314
Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/d1480314

Branch: refs/heads/master
Commit: d1480314f0994e331e0b6dff2fcebdd998837941
Parents: 5c9d992
Author: davebshow <da...@gmail.com>
Authored: Tue Aug 30 00:06:31 2016 -0400
Committer: davebshow <da...@gmail.com>
Committed: Tue Aug 30 00:06:31 2016 -0400

----------------------------------------------------------------------
 gremlin-python/src/main/jython/setup.cfg | 1 +
 1 file changed, 1 insertion(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/d1480314/gremlin-python/src/main/jython/setup.cfg
----------------------------------------------------------------------
diff --git a/gremlin-python/src/main/jython/setup.cfg b/gremlin-python/src/main/jython/setup.cfg
index d025b3a..b9e5f22 100644
--- a/gremlin-python/src/main/jython/setup.cfg
+++ b/gremlin-python/src/main/jython/setup.cfg
@@ -22,3 +22,4 @@ test=pytest
 
 [tool:pytest]
 addopts = --junitxml=../python-reports/TEST-native-python.xml
+norecursedirs = '.*', 'build', 'dist', 'CVS', '_darcs', '{arch}', '*.egg' lib lib64


[06/11] tinkerpop git commit: Do a safety install of whell in case virtualenv is an older version.

Posted by sp...@apache.org.
Do a safety install of whell in case virtualenv is an older version.


Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo
Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/70b34892
Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/70b34892
Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/70b34892

Branch: refs/heads/master
Commit: 70b34892a0e01dac461dbaf9a12032f643ba8e6c
Parents: 24eba0c
Author: Stephen Mallette <sp...@genoprime.com>
Authored: Tue Aug 30 13:42:04 2016 -0400
Committer: Stephen Mallette <sp...@genoprime.com>
Committed: Tue Aug 30 13:42:04 2016 -0400

----------------------------------------------------------------------
 gremlin-python/pom.xml | 12 +++++++++++-
 1 file changed, 11 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/70b34892/gremlin-python/pom.xml
----------------------------------------------------------------------
diff --git a/gremlin-python/pom.xml b/gremlin-python/pom.xml
index bc41c57..cbee8ad 100644
--- a/gremlin-python/pom.xml
+++ b/gremlin-python/pom.xml
@@ -385,7 +385,9 @@
                                              the jython plugin, /python-packaged for distribution tasks. some of the
                                              problem seems to stem from the python lifecycle not binding perfectly well
                                              to the maven lifecycle (integration tests seems to cause troubles
-                                             specifically) -->
+                                             specifically). note that the commands to install wheel are largely for
+                                             safety in case someone is using an older version of virtualenv (which
+                                             doesn't install wheel by default) -->
                                         <copy todir="${project.build.directory}/python">
                                             <fileset dir="src/main/jython"/>
                                         </copy>
@@ -396,10 +398,18 @@
                                               failonerror="true">
                                             <arg value="env"/>
                                         </exec>
+                                        <exec dir="${project.build.directory}/python" executable="env/bin/pip"
+                                              failonerror="true">
+                                            <arg line="install wheel"/>
+                                        </exec>
                                         <exec dir="${project.build.directory}/python-packaged" executable="virtualenv"
                                               failonerror="true">
                                             <arg value="env"/>
                                         </exec>
+                                        <exec dir="${project.build.directory}/python-packaged" executable="env/bin/pip"
+                                              failonerror="true">
+                                            <arg line="install wheel"/>
+                                        </exec>
                                         <copy todir="${project.build.directory}/jython">
                                             <fileset dir="src/main/jython"/>
                                         </copy>