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 2017/04/17 15:46:38 UTC

[3/9] tinkerpop git commit: Finalize Revapi setup: * Switched off by default with only gremlin-core having it active * Explicitly sets the severity of problems to fail the build with to "potentiallyBreaking". * The parent pom only includes common setup

Finalize Revapi setup:
* Switched off by default with only gremlin-core having it active
* Explicitly sets the severity of problems to fail the build with to
  "potentiallyBreaking".
* The parent pom only includes common setup.
* Other setup (like what packages to include in a check and what changes
  to ignore because they are intentional) is externalized into
  per-module configuration files.


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

Branch: refs/heads/master
Commit: d73933bf4f103c61ba063cd616c29b354f21c4cf
Parents: ddb76a6
Author: Lukas Krejci <lk...@redhat.com>
Authored: Mon Nov 28 23:28:06 2016 +0100
Committer: Stephen Mallette <sp...@genoprime.com>
Committed: Thu Apr 6 06:53:20 2017 -0400

----------------------------------------------------------------------
 gremlin-core/api-changes.json  | 28 ++++++++++++++++++++++++
 gremlin-core/api-contents.json | 22 +++++++++++++++++++
 gremlin-core/pom.xml           |  3 +++
 gremlin-python/pom.xml         |  1 -
 gremlin-test/pom.xml           |  3 ---
 pom.xml                        | 43 ++++++++++++++++++++++++++-----------
 6 files changed, 84 insertions(+), 16 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/d73933bf/gremlin-core/api-changes.json
----------------------------------------------------------------------
diff --git a/gremlin-core/api-changes.json b/gremlin-core/api-changes.json
new file mode 100644
index 0000000..95b8038
--- /dev/null
+++ b/gremlin-core/api-changes.json
@@ -0,0 +1,28 @@
+// Example:
+// {
+//   "3.3.0": {
+//      "revapi": {
+//       "ignore": [
+//         {
+//           "code": "java.method.addedToInterface",
+//           "new": "method void org.apache.tinkerpop.gremlin.structure.Graph::solveWorldHunger()",
+//           "justification": "Gremlin became sentient and self-aware. This is what it/she/he did first."
+//         }
+//       ]
+//     }
+//   },
+//   "3.3.1": {
+//     "revapi": {
+//       "ignore": [
+//         {
+//           "code": "java.method.removed",
+//           "old": "method void org.apache.tinkerpop.gremlin.structure.Graph::solveWorldHunger()",
+//           "justification": "Gremlin has a strange sense of humour."
+//         }
+//       ]
+//     }
+//   },
+//   ...
+// }
+{
+}

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/d73933bf/gremlin-core/api-contents.json
----------------------------------------------------------------------
diff --git a/gremlin-core/api-contents.json b/gremlin-core/api-contents.json
new file mode 100644
index 0000000..aca7f54
--- /dev/null
+++ b/gremlin-core/api-contents.json
@@ -0,0 +1,22 @@
+{
+  "revapi": {
+    "java": {
+      "filter": {
+        "packages": {
+          "regex": true,
+          //gremlin-shaded includes a lot of stuff from 3rd party libraries that break their API between
+          //versions. Let's just not consider them part of Tinkerpop API. -->
+          "exclude": ["org\\.apache\\.tinkerpop\\.shaded(\\..+)?"],
+          "include": [
+            //Be aware that the definitions below do NOT include the subpackages...
+            "org\\.apache\\.tinkerpop\\.gremlin\\.structure",
+            "org\\.apache\\.tinkerpop\\.gremlin\\.structure\\.io",
+            "org\\.apache\\.tinkerpop\\.gremlin\\.process\\.computer",
+            "org\\.apache\\.tinkerpop\\.gremlin\\.process\\.traversal",
+            "org\\.apache\\.tinkerpop\\.gremlin\\.process\\.traversal.dsl.graph"
+          ]
+        }
+      }
+    }
+  }
+}

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/d73933bf/gremlin-core/pom.xml
----------------------------------------------------------------------
diff --git a/gremlin-core/pom.xml b/gremlin-core/pom.xml
index 91a4055..c2a6b76 100644
--- a/gremlin-core/pom.xml
+++ b/gremlin-core/pom.xml
@@ -24,6 +24,9 @@ limitations under the License.
     </parent>
     <artifactId>gremlin-core</artifactId>
     <name>Apache TinkerPop :: Gremlin Core</name>
+    <properties>
+        <revapi.skip>false</revapi.skip>
+    </properties>
     <dependencies>
         <dependency>
             <groupId>org.apache.tinkerpop</groupId>

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/d73933bf/gremlin-python/pom.xml
----------------------------------------------------------------------
diff --git a/gremlin-python/pom.xml b/gremlin-python/pom.xml
index 3d552cf..711514a 100644
--- a/gremlin-python/pom.xml
+++ b/gremlin-python/pom.xml
@@ -75,7 +75,6 @@
         <maven.test.skip>false</maven.test.skip>
         <skipTests>${maven.test.skip}</skipTests>
         <gremlin.server.dir>${project.parent.basedir}/gremlin-server</gremlin.server.dir>
-        <revapi.skip>true</revapi.skip>
     </properties>
     <build>
         <directory>${basedir}/target</directory>

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/d73933bf/gremlin-test/pom.xml
----------------------------------------------------------------------
diff --git a/gremlin-test/pom.xml b/gremlin-test/pom.xml
index 6c8fdd2..f316188 100644
--- a/gremlin-test/pom.xml
+++ b/gremlin-test/pom.xml
@@ -25,9 +25,6 @@ limitations under the License.
     </parent>
     <artifactId>gremlin-test</artifactId>
     <name>Apache TinkerPop :: Gremlin Test</name>
-    <properties>
-        <revapi.skip>true</revapi.skip>
-    </properties>
     <dependencies>
         <dependency>
             <groupId>org.apache.tinkerpop</groupId>

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/d73933bf/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index 17bd23b..4b79fb7 100644
--- a/pom.xml
+++ b/pom.xml
@@ -159,6 +159,9 @@ limitations under the License.
         <log4j-silent.properties>file:target/test-classes/log4j-silent.properties</log4j-silent.properties>
 
         <muteTestLogs>false</muteTestLogs>
+
+        <!-- By default API checks are not run. Modules can opt in by setting this property to false in their poms. -->
+        <revapi.skip>true</revapi.skip>
     </properties>
     <build>
         <directory>${basedir}/target</directory>
@@ -326,6 +329,20 @@ limitations under the License.
                     </dependency>
                 </dependencies>
             </plugin>
+            <!-- Needed to figure out the version components when reading revapi API check config below -->
+            <plugin>
+                <groupId>org.codehaus.mojo</groupId>
+                <artifactId>build-helper-maven-plugin</artifactId>
+                <executions>
+                    <execution>
+                        <id>parse-version</id>
+                        <goals>
+                            <goal>parse-version</goal>
+                        </goals>
+                        <phase>validate</phase>
+                    </execution>
+                </executions>
+            </plugin>
             <plugin>
                 <groupId>org.revapi</groupId>
                 <artifactId>revapi-maven-plugin</artifactId>
@@ -338,21 +355,11 @@ limitations under the License.
                     </dependency>
                 </dependencies>
                 <configuration>
-
+                    <skip>${revapi.skip}</skip>
+                    <failSeverity>potentiallyBreaking</failSeverity>
                     <analysisConfiguration><![CDATA[
                     {
                       "revapi": {
-                        "java": {
-                          "filter": {
-                            //gremlin-shaded includes a lot of stuff from 3rd party libraries that break their API between
-                            //versions. Let's just not consider them part of Tinkerpop API. -->
-                            "packages": {
-                              "regex": true,
-                              "exclude": ["org\\.apache\\.tinkerpop\\.shaded(\\..+)?"],
-                              "include": ["org\\.apache\\.tinkerpop(\\..+)?"]
-                            }
-                          }
-                        },
                         "semver": {
                           "ignore": {
                             "enabled": true,
@@ -367,6 +374,18 @@ limitations under the License.
                       }
                     }
                     ]]></analysisConfiguration>
+                    <analysisConfigurationFiles>
+                        <configurationFile>
+                            <path>${project.basedir}/api-changes.json</path>
+                            <roots>
+                                <root>${parsedVersion.majorVersion}.${parsedVersion.minorVersion}.${parsedVersion.incrementalVersion}</root>
+                            </roots>
+                        </configurationFile>
+                        <configurationFile>
+                            <path>${project.basedir}/api-contents.json</path>
+                        </configurationFile> 
+                    </analysisConfigurationFiles>
+                    <failOnMissingConfigurationFiles>false</failOnMissingConfigurationFiles>
                 </configuration>
                 <executions>
                     <execution>