lucene-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From dwe...@apache.org
Subject [lucene-solr] branch gradle-master updated: Add verification check that gradle and ant rules are in sync.
Date Tue, 03 Dec 2019 22:09:04 GMT
This is an automated email from the ASF dual-hosted git repository.

dweiss pushed a commit to branch gradle-master
in repository https://gitbox.apache.org/repos/asf/lucene-solr.git


The following commit(s) were added to refs/heads/gradle-master by this push:
     new 64e1499  Add verification check that gradle and ant rules are in sync.
64e1499 is described below

commit 64e1499bc7c85d7ef7b896f5e73a9ff727fc7532
Author: Dawid Weiss <dawid.weiss@carrotsearch.com>
AuthorDate: Tue Dec 3 23:08:57 2019 +0100

    Add verification check that gradle and ant rules are in sync.
---
 build.gradle                                       |  2 +-
 .../ant-compat/forbidden-api-rules-in-sync.gradle  | 37 ++++++++++++++++++++++
 2 files changed, 38 insertions(+), 1 deletion(-)

diff --git a/build.gradle b/build.gradle
index a043c47..2d1c561 100644
--- a/build.gradle
+++ b/build.gradle
@@ -53,4 +53,4 @@ apply from: file('gradle/ant-compat/post-jar.gradle')
 apply from: file('gradle/ant-compat/test-classes-cross-deps.gradle')
 apply from: file('gradle/ant-compat/artifact-naming.gradle')
 apply from: file('gradle/ant-compat/solr-forbidden-apis.gradle')
-
+apply from: file('gradle/ant-compat/forbidden-api-rules-in-sync.gradle')
\ No newline at end of file
diff --git a/gradle/ant-compat/forbidden-api-rules-in-sync.gradle b/gradle/ant-compat/forbidden-api-rules-in-sync.gradle
new file mode 100644
index 0000000..6ead715
--- /dev/null
+++ b/gradle/ant-compat/forbidden-api-rules-in-sync.gradle
@@ -0,0 +1,37 @@
+
+// Just make sure the forbidden API rules are in sync between gradle and ant versions until
+// we get rid of ant build.
+
+def linesOf(FileTree ftree) {
+  return ftree.collectMany { path ->
+    path.readLines("UTF-8")
+      .collect { line -> line.trim() }
+      .findAll { line -> !line.startsWith("#") }
+      .unique()
+      .collect { line -> [path: path, line: line] }
+  }.groupBy { e -> e.line }
+}
+
+configure(rootProject) {
+  task verifyForbiddenApiRulesInSync() {
+    doFirst {
+      // Read all rules line by line from ant, gradle, remove comments, uniq.
+      // Rule sets should be identical.
+      def gradleRules = linesOf(fileTree("gradle/validation/forbidden-apis", { include "**/*.txt"
}))
+      def antRules = linesOf(project(":lucene").fileTree("tools/forbiddenApis", { include
"**/*.txt" }))
+
+      def antOnlyLines = antRules.keySet() - gradleRules.keySet()
+      def gradleOnlyLines = gradleRules.keySet() - antRules.keySet()
+
+      if (!gradleOnlyLines.isEmpty() || !antOnlyLines.isEmpty()) {
+        project.logger.log(LogLevel.ERROR, "The following rules don't have counterparts:\n"
+
+          (gradleRules.findAll { gradleOnlyLines.contains(it.key) } + antRules.findAll {
antOnlyLines.contains(it.key)})
+            .collectMany { it.value }
+            .join("\n"))
+        throw new GradleException("Forbidden APIs rules out of sync.")
+      }
+    }
+  }
+
+  check.dependsOn verifyForbiddenApiRulesInSync
+}


Mime
View raw message