You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by dw...@apache.org on 2021/03/24 15:22:01 UTC
[lucene] 04/06: Correct soft task ordering between tidy and any
other dependency of regenerate.
This is an automated email from the ASF dual-hosted git repository.
dweiss pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/lucene.git
commit 4c2de7ef43fd56b3f9f34701ee4378a7d5540abe
Author: Dawid Weiss <da...@carrotsearch.com>
AuthorDate: Wed Mar 24 15:38:34 2021 +0100
Correct soft task ordering between tidy and any other dependency of regenerate.
---
gradle/generation/jflex.gradle | 2 +-
gradle/generation/regenerate.gradle | 18 ++++++++++++++++--
2 files changed, 17 insertions(+), 3 deletions(-)
diff --git a/gradle/generation/jflex.gradle b/gradle/generation/jflex.gradle
index f08d340..8f6f5ca 100644
--- a/gradle/generation/jflex.gradle
+++ b/gradle/generation/jflex.gradle
@@ -134,7 +134,7 @@ configure(project(":lucene:analysis:common")) {
heapSize = "12g"
doFirst {
- logger.lifecycle("Regenerating UAX29URLEmailTokenizerImpl. This may take a long time (and requires tons of memory).")
+ logger.lifecycle("Regenerating UAX29URLEmailTokenizerImpl. This may take a long time (and requires ${heapSize} of memory!).")
}
doLast {
diff --git a/gradle/generation/regenerate.gradle b/gradle/generation/regenerate.gradle
index 322c27a..6e3f29a 100644
--- a/gradle/generation/regenerate.gradle
+++ b/gradle/generation/regenerate.gradle
@@ -30,12 +30,26 @@ configure([
group "generation"
}
- // Make sure tidy dependency runs after any other generation task.
+ // Make sure 'tidy' and its dependencies run after any other task in the dependencies
+ // of 'regenerate'. This ensures proper execution ordering so that tidy tasks run
+ // after whatever has been generated is complete.
afterEvaluate {
Set<Task> deps = regenerate.getTaskDependencies().getDependencies(regenerate)
def tidy = deps.find { it.name == "tidy" }
if (tidy) {
- tidy.mustRunAfter (deps - [tidy])
+ TaskDependency dep = tidy.taskDependencies
+ Set<Task> visited = new HashSet<>()
+ Queue<Task> queue = new ArrayDeque<>()
+ queue.add(tidy)
+ while (!queue.isEmpty()) {
+ Task t = queue.removeFirst()
+ if (visited.add(t)) {
+ queue.addAll(dep.getDependencies(t))
+ }
+ }
+
+ def otherDeps = deps - [tidy]
+ visited.each { Task t -> t.mustRunAfter(otherDeps) }
}
}
}
\ No newline at end of file